@keyframes checkFlash{0%,to{background-color:transparent}30%{background-color:var(--primary-light)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes toastSlideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes toastSlideOut{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@keyframes refreshSpin{to{transform:rotate(360deg)}}:root{color-scheme:light;font-family:"Inter","Segoe UI",system-ui,sans-serif;--bg:#faf8f5;--bg-gradient:linear-gradient(135deg, #faf8f5 0%, #f5f0eb 50%, #fef3c7 100%);--card:#ffffff;--text:#1c1917;--muted:#57534e;--primary:#d97706;--primary-dark:#b45309;--primary-light:#fef3c7;--secondary:#6b8f71;--secondary-dark:#4d7c54;--border:#d6d3d1;--border-light:#e7e5e4;--danger:#c53030;--success:#16a34a;--accent:#ea580c}*{box-sizing:border-box}body{margin:0;background:var(--bg);background-image:var(--bg-gradient);color:var(--text);min-height:100vh;max-width:100vw}.skip-link{position:absolute;left:.75rem;top:-100px;z-index:3000;background:#111827;color:#fff;padding:.6rem .85rem;border-radius:8px;text-decoration:none;font-weight:600}.skip-link:focus{top:.75rem}#app{display:grid;grid-template-columns:1fr;max-width:100vw;overflow-x:hidden;gap:0;padding:0}.app-header{display:flex;align-items:center;gap:1rem;background:linear-gradient(to right,#fff,#f8fafc);padding:1rem 1.5rem;border-bottom:2px solid var(--border);box-shadow:0 4px 12px rgba(15,23,42,.08);position:sticky;top:0;z-index:100}.header-logo{flex-shrink:0}.header-logo .logo{width:48px;height:48px;border-radius:10px;box-shadow:0 2px 8px rgba(217,119,6,.2)}.header-content{display:flex;align-items:center;gap:1rem;flex:1}.header-title{flex:1}.app-header h1{margin:0;font-size:1.5rem}.subtitle{margin:.25rem 0 0;color:var(--muted);font-size:.9rem}.status{padding:.4rem .75rem;background:linear-gradient(135deg,#fef3c7,#fde68a);color:#78350f;border-radius:999px;font-weight:600;font-size:.85rem;white-space:nowrap;border:1px solid var(--border)}.auth-status,.user-avatar{position:relative}.avatar-circle{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;cursor:pointer;border:2px solid var(--border);box-shadow:0 2px 8px rgba(217,119,6,.2);transition:transform .15s ease,box-shadow .15s ease}.avatar-circle:hover{transform:scale(1.05);box-shadow:0 4px 12px rgba(217,119,6,.3)}.avatar-dropdown{position:absolute;top:calc(100% + .5rem);right:0;background:#fff;border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.15);border:1px solid var(--border-light);min-width:180px;opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .2s ease,transform .2s ease;z-index:500}.avatar-dropdown.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.dropdown-item{display:flex;align-items:center;gap:.5rem;width:100%;padding:.75rem 1rem;background:0 0;border:0;border-radius:0;color:var(--text);text-align:left;font-weight:500;font-size:.9rem;cursor:pointer;transition:background .15s ease}.dropdown-item:first-child{border-radius:12px 12px 0 0}.dropdown-item:last-child{border-radius:0 0 12px 12px}.dropdown-item:hover{background:#f9fafb;transform:none;box-shadow:none}.dropdown-item span{font-size:1.1rem}.hamburger{display:none;flex-direction:column;justify-content:space-between;width:28px;height:24px;background:0 0;border:0;padding:0;cursor:pointer}.hamburger span{width:100%;height:3px;background:var(--primary-dark);border-radius:2px;transition:all .3s ease}.hamburger.open span:nth-child(1){transform:rotate(45deg) translate(10px,10px)}.hamburger.open span:nth-child(2){opacity:0}.hamburger.open span:nth-child(3){transform:rotate(-45deg) translate(7px,-7px)}@media (max-width:768px){.hamburger{display:flex}.app-header{flex-wrap:wrap}}.app-nav,.nav-button{display:flex;align-items:center;gap:.5rem;background:var(--card)}.app-nav{flex-wrap:wrap;padding:.75rem 1.5rem;border-bottom:1px solid var(--border-light)}.app-nav.hidden,.app-nav.hidden.open{display:none}.nav-button{padding:.6rem 1rem;border-radius:8px;border:1px solid var(--border);color:var(--text);cursor:pointer;font-weight:600;transition:all .2s ease}.nav-button:hover{border-color:var(--primary);background:var(--primary-light)}.nav-button.active{border-color:var(--primary);background:linear-gradient(135deg,#fef3c7,#fde68a);color:#78350f}.nav-button:focus-visible,.subtab-button:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(217,119,6,.4);outline-offset:2px}.nav-icon{font-size:1.2rem}@media (max-width:768px){.app-nav,.nav-button{justify-content:flex-start}.app-nav{display:none;flex-direction:column;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(255,255,255,.98);backdrop-filter:blur(8px);padding:5rem 1.5rem 2rem;border:0;z-index:150;align-items:stretch;overflow-y:auto}.app-nav.open{display:flex}.nav-button{width:100%;padding:1rem 1.25rem;font-size:1.1rem}}.app-main,.view.active{display:grid;align-content:start}.app-main{gap:0;padding:1.5rem;min-height:calc(100vh - 150px);max-width:100%;overflow-x:hidden}.view{display:none;gap:1.5rem}.view.active{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.view.protected:not(.active)+:not(.protected){display:none}.card-full{grid-column:1/-1}.card{background:var(--card);padding:1.25rem;border-radius:16px;box-shadow:0 6px 18px rgba(15,23,42,.08);border:1px solid var(--border-light);max-width:100%;overflow:hidden}.card h2{margin-bottom:1rem}.card h2,.card h3{margin-top:0}.table-container{overflow-x:auto;margin-bottom:1rem;max-width:100%;-webkit-overflow-scrolling:touch}table{width:100%;border-collapse:collapse}table thead{border-bottom:2px solid var(--border)}table th{padding:.75rem;text-align:left;font-weight:600;color:var(--text)}table td{padding:.75rem;border-bottom:1px solid var(--border)}table tbody tr:hover,table thead{background:#f9fafb}table a{color:var(--primary);text-decoration:none;font-weight:500;cursor:pointer}.modal-switch a:hover,table a:hover{text-decoration:underline}.form-grid{display:grid;gap:.75rem}.form-grid input,.form-grid select,.form-grid textarea{padding:.55rem .75rem;border-radius:8px;border:1px solid var(--border);font-size:.95rem;font-family:inherit}.form-grid button,.nav-button,button.danger,button.secondary,table{font-size:.95rem}button{padding:.6rem .9rem;border-radius:10px;border:0;background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;cursor:pointer;font-weight:600;transition:transform .15s ease,box-shadow .15s ease}button:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(217,119,6,.3)}button:active{transform:translateY(0)}button.secondary{background:linear-gradient(135deg,#e7e5e4,#d6d3d1);color:#1c1917;border:1px solid #a8a29e}button.danger{background:var(--danger);color:#fff}button:disabled{opacity:.6;cursor:not-allowed}.actions{display:flex;gap:.75rem;align-items:center;margin-bottom:.75rem}.actions-between{justify-content:space-between}.actions-wrap{flex-wrap:wrap}.actions-end{justify-content:flex-end}.profile-actions-vertical{flex-direction:column;align-items:stretch}.profile-actions-vertical button{width:100%}.align-center{align-items:center}.button-group{display:flex;gap:.5rem;flex-wrap:wrap}.gap-sm{gap:.5rem}.gap-md{gap:1rem}.mt-1{margin-top:1rem}.mt-2{margin-top:1.5rem}.mb-1{margin-bottom:1rem}.mb-half{margin-bottom:.5rem}.m-0{margin:0}.label-strong{margin:0;font-weight:600}.is-hidden,.modal-body .form-grid label.is-hidden{display:none}.scroll-panel{max-height:200px;overflow-y:auto;border:1px solid var(--border-light);border-radius:8px;padding:.5rem}.scroll-panel-tall{max-height:300px}.search-input{padding:.5rem;border:1px solid var(--border-light);border-radius:6px;background:var(--card);color:var(--text)}.select-search-input{width:100%;margin-bottom:.35rem}#recipeSearch{margin-left:.4rem}.btn-compact{font-size:.875rem;padding:.375rem .75rem}.btn-small{font-size:.8rem;padding:.3rem .6rem;border-radius:6px}.badge{display:inline-block;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;line-height:1.3;text-transform:uppercase;letter-spacing:.03em}.badge-success{background:#dcfce7;color:#166534}.badge-danger{background:#fee2e2;color:#991b1b}.badge-warning{background:#fef3c7;color:#92400e}h2 .badge{vertical-align:middle;font-size:.65rem;margin-left:.5rem}.inline-check-label{margin:0;display:flex;align-items:center;gap:.5rem;font-size:.9rem}.checkbox-inline{width:auto;margin:0}.list{display:grid;gap:.75rem}.list-item{padding:.75rem;border:1px solid var(--border);border-radius:10px;background:#f9fafb}.empty-state,.placeholder{text-align:center;color:var(--muted)}.placeholder{font-size:.95rem;padding:1.5rem 1rem}.empty-state{display:flex;flex-direction:column;align-items:center;padding:2.5rem 1rem}.empty-state-icon{width:80px;height:80px;margin-bottom:1rem;opacity:.5}.empty-state-icon svg{width:100%;height:100%}.empty-state-title{margin:0 0 .5rem;font-size:1.1rem;font-weight:600;color:var(--text)}.empty-state-text{margin:0;font-size:.95rem;max-width:300px;line-height:1.5}.shopping-check-col{width:3rem}.shopping-item-row-checked{text-decoration:line-through;color:#888;opacity:.65;transition:background-color .4s ease,opacity .3s ease,color .3s ease}.shopping-item-row-flash{animation:checkFlash .6s ease-out}.row-clickable,.shopping-item-checkbox,.sortable-header{cursor:pointer}.shopping-item-checkbox:disabled{cursor:not-allowed}.instruction-list{padding-left:1.5rem;margin:0}.instruction-list-item{margin-bottom:.75rem;line-height:1.5}.detail-table{width:100%;border-collapse:collapse}.detail-th-left,.detail-th-right{padding:.5rem;border-bottom:1px solid #e5e7eb}.detail-th-left{text-align:left}.detail-th-right{text-align:right}.detail-row{border-bottom:1px solid #f3f4f6}.detail-td,.detail-td-right{padding:.5rem}.detail-td-right{text-align:right}.btn-xs{font-size:.75rem;padding:.25rem .5rem}.mr-xs{margin-right:.25rem}.empty-list-note{padding:1.5rem 1rem;text-align:center;color:var(--muted);font-size:.95rem}.method-step-row{display:flex;gap:.5rem;margin-bottom:.5rem;align-items:stretch}.method-step-index{font-weight:600;color:var(--muted);min-width:24px;padding-top:.5rem}.method-step-textarea{flex:1;padding:.5rem;border:1px solid var(--border);border-radius:6px;resize:vertical;font-family:inherit;font-size:.95rem}.method-step-actions{display:flex;flex-direction:column;gap:.25rem}.log{display:grid;gap:.6rem;max-height:420px;overflow-y:auto;font-size:.9rem}.log-entry{padding:.5rem .75rem;border-radius:8px;background:#f3f4f6}.muted,[data-theme=dark] .profile-section-header::after{color:var(--muted)}.app-sidebar{position:relative;padding:0 1.5rem 1.5rem}.app-footer{padding:1.5rem;background:var(--bg);border-top:1px solid var(--border)}.loader{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(17,24,39,.35);opacity:0;pointer-events:none;transition:opacity .2s ease;z-index:2000}.loader.visible{opacity:1;pointer-events:auto}.loader-card{display:inline-flex;align-items:center;gap:.75rem;padding:.9rem 1.1rem;background:rgba(255,255,255,.98);border:1px solid var(--border);border-radius:14px;box-shadow:0 12px 30px rgba(15,23,42,.12)}.loader-ring{width:22px;height:22px;border-radius:50%;border:3px solid #e5e7eb;border-top-color:var(--primary);animation:spin .8s linear infinite}.loader-text,.modal-body .form-grid label{font-weight:600;color:var(--text);font-size:.9rem}@media (max-width:768px){#app,.view.active{grid-template-columns:1fr}.app-main{padding:.65rem;min-height:calc(100vh - 200px)}.app-sidebar{padding:0 .65rem .65rem}.app-footer{padding:1rem}.card-full{grid-column:1}.header-logo .logo{width:40px;height:40px}.hamburger{z-index:160}}.welcome-container,.welcome-hero{display:flex;flex-direction:column;align-items:center}.welcome-container{grid-column:1/-1;gap:3rem;padding:2rem 1rem;max-width:800px;margin:0 auto}.welcome-hero{text-align:center;gap:1.5rem}.welcome-logo{width:100px;height:100px;filter:drop-shadow(0 8px 24px rgba(217,119,6,.25))}.welcome-hero h2{font-size:2rem;margin:0;color:var(--text);background:linear-gradient(135deg,var(--primary-dark),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.welcome-text{font-size:1.1rem;color:var(--muted);max-width:500px;line-height:1.6;margin:0}.auth-buttons{display:flex;gap:1rem;margin-top:.5rem}.btn-primary-large,.btn-secondary-large{padding:.9rem 2rem;font-size:1rem;border-radius:12px;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.btn-primary-large{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border:0}.btn-primary-large:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(217,119,6,.35)}.btn-secondary-large{background:#fff;color:var(--primary-dark);border:2px solid var(--border)}.btn-secondary-large:hover{background:var(--primary-light);border-color:var(--primary);transform:translateY(-2px)}.feature-list{display:grid;gap:1.25rem;width:100%;max-width:600px}.feature-item{display:flex;gap:1rem;align-items:flex-start;padding:1.25rem;background:#fff;border-radius:16px;border:1px solid var(--border-light);box-shadow:0 4px 20px rgba(15,23,42,.08);transition:transform .15s ease,box-shadow .15s ease}.feature-item:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,23,42,.12)}.feature-icon{font-size:2rem;flex-shrink:0}.feature-content h3,.modal-body h2{margin:0 0 .25rem;font-size:1.05rem;color:var(--text)}.feature-content p{margin:0;color:var(--muted);font-size:.9rem;line-height:1.5}.modal-overlay{position:fixed;inset:0;background:rgba(2,6,23,.62);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .25s ease;padding:1rem}.modal-overlay.visible{opacity:1;pointer-events:auto}.modal-content{background:var(--card);border-radius:20px;padding:2rem;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 24px 60px rgba(2,6,23,.5);border:1px solid var(--border);position:relative;transform:scale(.95) translateY(10px);transition:transform .25s ease}.modal-overlay.visible .modal-content{transform:scale(1) translateY(0)}.modal-close{position:absolute;top:1rem;right:1rem;background:0 0;border:0;font-size:1.75rem;color:var(--muted);cursor:pointer;padding:.25rem .5rem;line-height:1;border-radius:8px;transition:background .15s ease,color .15s ease}.modal-close:hover{background:#f3f4f6;color:var(--text);transform:none;box-shadow:none}.modal-body h2{margin:0 0 .5rem;font-size:1.5rem}.modal-subtitle{color:var(--muted);margin:0 0 1.5rem;font-size:.95rem}.modal-body .form-grid{gap:1rem}.modal-body .form-grid label{display:flex;flex-direction:column;gap:.35rem;font-weight:500}.modal-body .form-grid input{padding:.7rem .9rem;border:1.5px solid var(--border);border-radius:10px;font-size:.95rem;transition:border-color .15s ease,box-shadow .15s ease}.modal-body .form-grid input:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 3px rgba(217,119,6,.2)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.btn-primary{width:100%;padding:.75rem;margin-top:.5rem;font-size:1rem}.modal-switch{text-align:center;margin:1.25rem 0 0;color:var(--muted);font-size:.9rem}.modal-switch a{color:var(--primary-dark);font-weight:600;text-decoration:none}.toast-container{position:fixed;top:1.5rem;right:1.5rem;z-index:400;display:flex;flex-direction:column;gap:.75rem;pointer-events:none}.toast{display:flex;align-items:center;gap:.75rem;padding:.9rem 1.1rem;background:#fff;border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.15);border-left:4px solid var(--muted);pointer-events:auto;animation:toastSlideIn .3s ease;max-width:380px}.toast.toast-error{border-left-color:var(--danger);background:#fef2f2}.toast.toast-success{border-left-color:var(--success);background:#ecfdf5}.toast.toast-info{border-left-color:var(--primary);background:#fffbeb}.toast-icon{font-size:1.25rem;flex-shrink:0}.toast-message{flex:1;font-size:.9rem;color:var(--text);line-height:1.4}.toast-close{background:0 0;border:0;color:var(--muted);cursor:pointer;padding:.25rem;font-size:1.25rem;line-height:1;opacity:.7;transition:opacity .15s ease}.toast-close:hover{opacity:1;transform:none;box-shadow:none}.toast.toast-hiding{animation:toastSlideOut .25s ease forwards}@media (max-width:768px){.toast-container{top:auto;bottom:1rem;left:1rem;right:1rem}.toast{max-width:none}.welcome-hero h2{font-size:1.5rem}.welcome-logo{width:80px;height:80px}.auth-buttons{flex-direction:column;width:100%}.btn-primary-large,.btn-secondary-large{width:100%}.form-row{grid-template-columns:1fr}}.recipe-detail-layout{display:grid;grid-template-columns:1fr;gap:1.5rem;margin-bottom:1.5rem}.recipe-image{order:1}.recipe-image img{width:100%;border-radius:12px;box-shadow:0 4px 12px rgba(0,0,0,.1);display:block}.recipe-info{order:2}@media (min-width:769px){.recipe-detail-layout{grid-template-columns:1fr 400px;gap:2rem}.recipe-image{order:2}.recipe-info{order:1}.recipe-image img{max-height:400px;object-fit:cover}}.recipe-info{min-width:0}.recipe-info,.recipe-info a,.recipe-info p{overflow-wrap:break-word;word-wrap:break-word}.recipe-info a{word-break:break-all;max-width:100%;display:inline-block}.subtabs{display:flex;gap:.5rem;margin:.75rem 0 1rem;border-bottom:1px solid var(--border-light);padding-bottom:.5rem}.subtab-button{border:1px solid var(--border);background:var(--card);color:var(--text);border-radius:8px;padding:.5rem .8rem}.subtab-button.active{border-color:var(--primary);background:var(--primary-light);color:#78350f}.subtab-panel[hidden]{display:none}[data-theme=dark]{color-scheme:dark;--bg:#0c0a09;--bg-gradient:linear-gradient(135deg, #0c0a09 0%, #1c1917 50%, #292524 100%);--card:#1c1917;--text:#e7e5e4;--muted:#a8a29e;--primary:#fbbf24;--primary-dark:#f59e0b;--primary-light:#78350f;--secondary:#86efac;--secondary-dark:#6b8f71;--border:#44403c;--border-light:#292524;--danger:#f87171;--success:#4ade80;--accent:#fb923c}[data-theme=dark] .app-header{background:linear-gradient(to right,#1c1917,#292524)}[data-theme=dark] .avatar-dropdown,[data-theme=dark] .form-grid input,[data-theme=dark] .form-grid select,[data-theme=dark] .form-grid textarea,[data-theme=dark] .loader-card,[data-theme=dark] .modal-body .form-grid input,[data-theme=dark] .modal-content,[data-theme=dark] .toast{background:#1c1917;color:var(--text);border-color:var(--border)}[data-theme=dark] .modal-content{box-shadow:0 28px 72px rgba(12,10,9,.72)}[data-theme=dark] .dropdown-item:hover,[data-theme=dark] .list-item,[data-theme=dark] .placeholder,[data-theme=dark] table tbody tr:hover,[data-theme=dark] table thead{background:#292524}[data-theme=dark] button.secondary{background:linear-gradient(135deg,#44403c,#292524);color:#e7e5e4;border-color:#57534e}[data-theme=dark] .nav-button.active,[data-theme=dark] .subtab-button.active{background:linear-gradient(135deg,#fbbf24,#f59e0b);border-color:#f59e0b;color:#1c1917;text-shadow:none}[data-theme=dark] .nav-button.active .nav-icon,[data-theme=dark] .subtab-button.active .nav-icon{color:#1c1917}@media (prefers-reduced-motion:reduce){*,::after,::before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}[data-theme=dark] .badge-success{background:#064e3b;color:#6ee7b7}[data-theme=dark] .badge-danger{background:#7f1d1d;color:#fca5a5}[data-theme=dark] .badge-warning{background:#78350f;color:#fcd34d}[data-theme=dark] .bottom-tab-bar{background:#1c1917;border-color:var(--border);box-shadow:0-2px 12px rgba(0,0,0,.3)}[data-theme=dark] .modal-close:hover{background:#292524}#recipesList{display:block}.overflow-menu button,.recipe-card{color:var(--text);font-weight:500;cursor:pointer}.recipe-card{display:flex;align-items:center;justify-content:space-between;padding:.85rem 1rem;background:var(--card);border:1px solid var(--border-light);border-radius:10px;text-decoration:none;transition:background .15s ease,border-color .15s ease}.recipe-card:hover{border-color:var(--primary)}.recipe-card-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:.15rem}.recipe-card-meta,.recipe-card-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recipe-card-meta{font-size:.8rem;color:var(--muted);font-weight:400}.recipe-card-arrow{flex-shrink:0;font-size:1.3rem;color:var(--muted);margin-left:.75rem}.row-actions-inline{display:flex;gap:.25rem;flex-wrap:wrap}.row-actions-overflow{display:none;position:relative}.overflow-menu,.overflow-trigger{background:var(--card);border:1px solid var(--border)}.overflow-trigger{border-radius:8px;font-size:1.25rem;padding:.35rem .6rem;cursor:pointer;line-height:1;color:var(--text)}.overflow-trigger:hover,.recipe-card:hover{background:var(--primary-light)}.overflow-menu{display:none;position:absolute;right:0;top:100%;z-index:200;border-radius:10px;box-shadow:0 8px 24px rgba(15,23,42,.15);min-width:140px;padding:.35rem 0}.overflow-menu.visible{display:block}.overflow-menu button{display:block;width:100%;text-align:left;padding:.65rem 1rem;background:0 0;border:0;border-radius:0;font-size:.9rem}.overflow-menu button:hover{background:#f3f4f6;transform:none;box-shadow:none}.overflow-menu button.danger{color:var(--danger);background:0 0}.overflow-menu button.danger:hover{background:#fef2f2}[data-theme=dark] .overflow-menu{background:#1e293b;border-color:var(--border)}[data-theme=dark] .overflow-menu button:hover{background:#334155}[data-theme=dark] .overflow-menu button.danger:hover{background:#7f1d1d}.bottom-tab-bar{display:none}@media (max-width:768px){.bottom-tab-bar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--card);border-top:1px solid var(--border-light);z-index:900;padding:.25rem 0 env(safe-area-inset-bottom,.25rem);justify-content:space-around;align-items:stretch;box-shadow:0-2px 12px rgba(0,0,0,.06)}.bottom-tab-bar.is-hidden{display:none}.app-main{padding-bottom:72px}}.bottom-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;background:0 0;border:0;padding:.4rem .5rem;font-size:.65rem;color:var(--muted);cursor:pointer;flex:1;min-height:52px;transition:color .15s ease;-webkit-tap-highlight-color:transparent}.bottom-tab svg{width:22px;height:22px}.bottom-tab.active{color:var(--primary)}.bottom-tab.active svg{stroke-width:2.5}.profile-section{border:1px solid var(--border-light)}.profile-section-header{cursor:pointer;display:flex;align-items:center;justify-content:space-between;list-style:none;padding:0}.profile-section-header::-webkit-details-marker{display:none}.profile-section-header::after{content:"▸";font-size:1.1rem;color:var(--muted);transition:transform .2s ease;flex-shrink:0}details.profile-section[open]>.profile-section-header::after{transform:rotate(90deg)}.profile-section-header h3{margin:0}.pull-to-refresh{text-align:center;overflow:hidden;height:0;transition:height .2s ease;color:var(--muted);font-size:.85rem;display:flex;align-items:center;justify-content:center}.pull-to-refresh.pulling,.pull-to-refresh.pulling .pull-to-refresh-icon{transition:none}.pull-to-refresh.refreshing{height:48px}.pull-to-refresh-icon{display:inline-block;transition:transform .2s ease}.pull-to-refresh.ready .pull-to-refresh-icon{transform:rotate(180deg)}.pull-to-refresh.refreshing .pull-to-refresh-icon{animation:refreshSpin .8s linear infinite}@media (min-width:769px){#mealPlanDetailCard .card,#recipeDetailCard .card,#shoppingListDetailCard .card,.view .card.card-full{background:0 0;border:0;box-shadow:none;border-radius:0;border-left:none;padding:0}#mealPlanDetailCard .card,#recipeDetailCard .card,#shoppingListDetailCard .card{margin-top:.75rem}}@media (max-width:768px){#view-admin #adminListCard,#view-meal-plans #mealPlanDetailCard,#view-meal-plans #mealPlanListCard,#view-recipes #recipeDetailCard,#view-recipes #recipeListCard,#view-shopping-lists #shoppingListDetailCard,#view-shopping-lists #shoppingListListCard{background:0 0;border:0;box-shadow:none;padding:.5rem 0 0;border-radius:0;border-left:none}#adminListCard h2,#itemsManagementCard h2,#mealPlanDetailCard h2,#mealPlanListCard h2,#profileCard h2,#recipeDetailCard h2,#recipeListCard h2,#shoppingListDetailCard h2,#shoppingListListCard h2,#unitsManagementCard h2{font-size:1.15rem;margin-bottom:.5rem;padding:0 .25rem}#adminListCard .modal-subtitle{padding:0 .25rem;margin-bottom:.5rem}#adminListCard .actions,#mealPlanListCard .actions,#recipeListCard .actions,#shoppingListListCard .actions{padding:0 .25rem;margin-bottom:.5rem;gap:.4rem}#adminListCard .actions button,#itemsManagementCard .actions button,#mealPlanDetailCard>.actions button,#mealPlanListCard .actions button,#profileCard .actions button,#recipeDetailCard>.actions button,#recipeListCard .actions button,#shoppingListDetailCard>.actions button,#shoppingListListCard .actions button,#unitsManagementCard .actions button{font-size:.8rem;padding:.45rem .65rem;min-height:38px}#adminUsersList,#itemsList,#mealPlansList,#recipesList,#shoppingListsList,#unitsList{margin-bottom:0;background:var(--card);border-radius:12px;overflow:hidden;border:1px solid var(--border-light)}#adminUsersList table,#itemsList table,#mealPlansList table,#shoppingListsList table,#unitsList table{border:0;margin:0}#mealPlansList thead,#shoppingListsList thead{display:none}#mealPlansList tbody tr,#recipesList tbody tr,#shoppingListsList tbody tr{display:flex;flex-direction:column;padding:.75rem .85rem;border-bottom:1px solid var(--border-light);gap:.15rem;cursor:pointer}#mealPlansList tbody tr:last-child,#recipesList tbody tr:last-child,#shoppingListsList tbody tr:last-child{border-bottom:none}#mealPlansList tbody tr:active,#recipesList tbody tr:active,#shoppingListsList tbody tr:active{background:var(--primary-light)}#mealPlansList td,#shoppingListsList td{padding:0;border:0}#mealPlansList td:first-child,#shoppingListsList td:first-child{font-weight:500;font-size:.95rem}#mealPlansList td:first-child a,#shoppingListsList td:first-child a{text-decoration:none;color:var(--text)}#mealPlansList td:not(:first-child),#shoppingListsList td:not(:first-child){font-size:.8rem;color:var(--muted)}#adminUsersList table td,#adminUsersList table th,#itemsList table td,#itemsList table th,#unitsList table td,#unitsList table th{padding:.6rem .5rem;font-size:.8rem}#adminUsersList tbody tr,#itemsList tbody tr,#mealPlanDetailCard .card .table-container tbody tr,#recipeDetailCard .card .table-container tbody tr,#shoppingListDetailCard .card .table-container tbody tr,#unitsList tbody tr{border-bottom:1px solid var(--border-light)}#adminUsersList tbody tr:last-child,#itemsList tbody tr:last-child,#mealPlanDetailCard .card .table-container tbody tr:last-child,#recipeDetailCard .card .table-container tbody tr:last-child,#shoppingListDetailCard .card .table-container tbody tr:last-child,#unitsList tbody tr:last-child{border-bottom:none}#adminUsersList .empty-state,#mealPlansList .empty-state,#recipesList .empty-state,#shoppingListsList .empty-state{padding:1.5rem 1rem}#mealPlanListCard .inline-check-label,#shoppingListListCard .inline-check-label{font-size:.8rem}#mealPlanDetailCard>.actions,#recipeDetailCard>.actions,#shoppingListDetailCard>.actions{padding:0 .25rem;margin-bottom:.5rem;gap:.4rem}#mealPlanDetailCard .card,#recipeDetailCard .card,#shoppingListDetailCard .card{background:0 0;border:0;box-shadow:none;border-radius:0;border-left:none;padding:0 .25rem;margin-top:.5rem}#mealPlanDetailCard .card h3,#recipeDetailCard .card h3,#shoppingListDetailCard .card h3{font-size:1rem;margin-bottom:.5rem;padding:0}#mealPlanDetailCard .card .table-container,#recipeDetailCard .card .table-container,#shoppingListDetailCard .card .table-container{background:var(--card);border:1px solid var(--border-light);border-radius:12px;overflow:hidden;margin-bottom:0}#mealPlanDetailCard .card .table-container table,#recipeDetailCard .card .table-container table,#shoppingListDetailCard .card .table-container table{margin:0;border:0}#recipeDetailCard .subtabs,#shoppingListDetailCard .subtabs{margin-left:0;margin-right:0;padding:0 .25rem .5rem}#recipeDetailCard .recipe-detail-layout{margin-bottom:.75rem;gap:.75rem;padding:0 .25rem}#recipeDetailCard .recipe-info{padding:0}#recipeDetailCard .recipe-image img{border-radius:10px}#mealPlanDetailCard>#mealPlanDetails{padding:0 .25rem;margin-bottom:.75rem}#view-profile #profileCard{background:0 0;border:0;box-shadow:none;padding:.5rem 0 0;border-radius:0;border-left:none}#profileCard #profileDetails{padding:0 .25rem}#profileCard .actions{padding:0 .25rem;gap:.4rem}#view-profile .profile-section.card{border-radius:12px;padding:.85rem;box-shadow:none;border-left-width:1px;margin-top:.5rem}#view-profile .profile-section .modal-subtitle,.recipe-info a,table{font-size:.85rem}#view-profile .profile-section .form-grid{gap:.5rem}#view-items #itemsManagementCard,#view-units #unitsManagementCard{background:0 0;border:0;box-shadow:none;padding:.5rem 0 0;border-radius:0;border-left:none}#itemsManagementCard .actions,#unitsManagementCard .actions{padding:0 .25rem;margin-bottom:.5rem;gap:.4rem}.actions{flex-wrap:wrap}table td,table th{padding:.5rem .35rem;min-width:0}table td:first-child,table th:first-child{max-width:40%;overflow-wrap:break-word;word-wrap:break-word}.table-container table button{font-size:.7rem;padding:.25rem .4rem;white-space:nowrap}.btn-compact,.btn-small,.btn-xs,.subtab-button,button{min-height:44px}input[type=checkbox],input[type=radio]{width:22px;height:22px;min-width:22px;min-height:22px;margin:.25rem}.btn-small,.btn-xs{font-size:.85rem;padding:.5rem .65rem}.btn-compact{font-size:.9rem;padding:.5rem .75rem}.button-group{width:100%}.button-group>button{flex:1 1 auto}.actions.actions-between{flex-direction:column;align-items:stretch;gap:.5rem}.row-actions-inline,.shopping-col-category,.shopping-col-notes{display:none}.row-actions-overflow{display:block}.modal-overlay{align-items:flex-end;padding:0}.modal-content{border-radius:20px 20px 0 0;max-height:92vh;padding:1.25rem 1rem 2rem;width:100%;max-width:100%;transform:translateY(100%)}.modal-overlay.visible .modal-content{transform:translateY(0)}.modal-content::before{content:"";display:block;width:36px;height:4px;background:var(--border);border-radius:2px;margin:0 auto 1rem}.modal-close{top:.75rem;right:.75rem;font-size:2rem;padding:.5rem;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center}}