:root{--primary:#2563eb;--primary-hover:#1d4ed8;--danger:#dc2626;--danger-hover:#b91c1c;--success:#16a34a;--bg:#f8fafc;--surface:#fff;--border:#e2e8f0;--text:#1e293b;--text-muted:#64748b;--radius:6px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5}.app-header{background:var(--primary);color:#fff;z-index:100;align-items:center;gap:2rem;height:56px;padding:0 1.5rem;display:flex;position:sticky;top:0}.app-header .header-logo{border-radius:4px;width:auto;height:40px}.app-header h1{white-space:nowrap;font-size:1.2rem;font-weight:600}.app-header nav{gap:.25rem;display:flex}.app-header nav a{color:#fffc;border-radius:var(--radius);padding:.5rem 1rem;font-size:.9rem;text-decoration:none;transition:background .15s}.app-header nav a:hover,.app-header nav a.active{color:#fff;background:#ffffff26}.page{max-width:1200px;margin:0 auto;padding:1.5rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.page-header h2{font-size:1.5rem}.btn{border-radius:var(--radius);cursor:pointer;white-space:nowrap;border:none;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger-hover)}.btn-secondary{color:var(--text);background:#bfdbfe}.btn-secondary:hover{background:#93c5fd}.btn-sm{padding:.3rem .6rem;font-size:.8rem}.btn:disabled{opacity:.5;cursor:not-allowed}input,select{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);color:var(--text);padding:.5rem .75rem;font-family:inherit;font-size:.875rem}input:focus,select:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 2px #2563eb33}.data-table{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-collapse:collapse;width:100%;font-size:.875rem}.data-table th,.data-table td{text-align:left;border-bottom:1px solid var(--border);padding:.6rem .75rem}.data-table th{text-transform:uppercase;color:var(--text-muted);background:#bfdbfe;font-size:.8rem;font-weight:600}.data-table tr:last-child td{border-bottom:none}.data-table tr:hover td{background:#f8fafc}.sortable-th{cursor:pointer;-webkit-user-select:none;user-select:none}.sortable-th:hover{background:#93c5fd}.data-table input,.data-table select{width:100%;padding:.3rem .5rem;font-size:.85rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;padding:1.25rem}.card-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.card-header h3{font-size:1.1rem}.filters{flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;display:flex}.filters input,.filters select{min-width:150px}.searchable-select{position:relative}.searchable-select input{width:100%}.searchable-select .dropdown{background:var(--surface);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);z-index:50;border-top:none;max-height:200px;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 4px 12px #0000001a}.searchable-select .dropdown-item{cursor:pointer;padding:.5rem .75rem;font-size:.85rem}.searchable-select .dropdown-item:hover,.searchable-select .dropdown-item.highlighted{background:#e2e8f0}.searchable-select .dropdown-item.selected{background:#dbeafe;font-weight:500}.searchable-select .dropdown-item.selected.highlighted{background:#bfdbfe}.searchable-select .dropdown-check{color:var(--primary);font-weight:700}.toast-container{z-index:1000;flex-direction:column;gap:.5rem;display:flex;position:fixed;bottom:1rem;right:1rem}.toast{border-radius:var(--radius);color:#fff;max-width:400px;padding:.75rem 1rem;font-size:.875rem;animation:.2s slideIn;box-shadow:0 4px 12px #00000026}.toast-success{background:var(--success)}.toast-error{background:var(--danger)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.dialog-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog{background:var(--surface);border-radius:var(--radius);width:90%;max-width:400px;padding:1.5rem;box-shadow:0 8px 32px #0003}.dialog h3{margin-bottom:.5rem}.dialog p{color:var(--text-muted);margin-bottom:1rem}.dialog-actions{justify-content:flex-end;gap:.5rem;display:flex}.list-item{border-bottom:1px solid var(--border);cursor:pointer;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:background .1s;display:flex}.list-item:hover{background:#f8fafc}.list-item:last-child{border-bottom:none}.list-item-info{flex-direction:column;display:flex}.list-item-title{font-weight:500}.list-item-subtitle{color:var(--text-muted);font-size:.8rem}.shopping-store{margin-bottom:1.5rem}.shopping-store-header{background:var(--primary);color:#fff;border-radius:var(--radius) var(--radius) 0 0;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:.6rem 1rem;display:flex}.shopping-store-header h3{color:#fff;margin:0;font-size:1rem}.shopping-store-header .hide-bought-label{color:#ffffffe6;cursor:pointer;align-items:center;gap:.35rem;font-size:.85rem;font-weight:400;display:flex}.shopping-dept{border:1px solid var(--border);border-top:none}.shopping-dept-header{color:var(--text-muted);cursor:pointer;background:#f1f5f9;justify-content:space-between;align-items:center;padding:.4rem 1rem;font-size:.85rem;font-weight:600;display:flex}.shopping-item{border-top:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.4rem 1rem;font-size:.875rem;display:flex}.shopping-item-name{cursor:pointer;-webkit-user-select:none;user-select:none}.shopping-item-name:hover{color:var(--primary)}.shopping-item-toggle{width:1rem;color:var(--text-muted);font-size:.7rem;display:inline-block}.shopping-item-total{white-space:nowrap;text-align:right;min-width:3rem}.shopping-bought-label{text-align:center;min-width:3rem;font-size:.75rem}.shopping-item-bought{text-align:center;min-width:3rem}.shopping-item-bought input[type=checkbox]{cursor:pointer;width:1rem;height:1rem}.shopping-item-detail{color:var(--text-muted);margin:.3rem 0 .2rem 1rem;font-size:.8rem}.shopping-item-breakdown{justify-content:space-between;gap:1rem;padding:.15rem 0;display:flex}.shopping-item-print-splits{display:none}.inline-form{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.meal-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:1rem;scroll-margin-top:68px}.meal-header{border-radius:var(--radius) var(--radius) 0 0;background:#bfdbfe;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.meal-recipe{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:.5rem;padding:.5rem 1rem;display:flex}.loading,.empty{text-align:center;color:var(--text-muted);padding:2rem}.back-link{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem;text-decoration:none;display:inline-block}.back-link:hover{color:var(--text)}.beta-feedback-link{color:#ffffffd9;border-radius:var(--radius);white-space:nowrap;border:1px solid #fff6;margin-left:auto;padding:.35rem .75rem;font-size:.8rem;font-weight:500;text-decoration:none;transition:background .15s,border-color .15s}.beta-feedback-link:hover,.beta-feedback-link.active{color:#fff;background:#ffffff26;border-color:#fff9}.header-right{align-items:center;gap:.75rem;margin-left:auto;display:flex}.hamburger-btn{display:none}@media (width<=640px){.app-header .desktop-nav,.app-header .desktop-only{display:none}.hamburger-btn{border-radius:var(--radius);color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff80;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;margin-left:auto;font-size:1.25rem;display:flex}.hamburger-btn:hover{background:#ffffff26}.mobile-menu-overlay{z-index:98;position:fixed;inset:0}.mobile-menu{background:var(--primary);z-index:99;flex-direction:column;display:flex;position:fixed;top:56px;left:0;right:0;box-shadow:0 4px 16px #00000040}.mobile-menu a{color:#ffffffd9;border-bottom:1px solid #ffffff1a;padding:.85rem 1.5rem;font-size:1rem;text-decoration:none;transition:background .15s;display:block}.mobile-menu a:hover,.mobile-menu a.active{color:#fff;background:#ffffff26}.mobile-menu .mobile-menu-feedback{border:none;border-bottom:1px solid #ffffff1a;border-radius:0;margin-left:0;padding:.85rem 1.5rem;font-size:1rem}.mobile-menu-footer{justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem 1.5rem;display:flex}.mobile-menu-username{color:#ffffffe6;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}}.feedback-form{margin-bottom:1.5rem}.feedback-list{flex-direction:column;gap:.5rem;display:flex}.feedback-type-badge{white-space:nowrap;border-radius:9999px;padding:.15rem .5rem;font-size:.75rem;font-weight:600;display:inline-block}.feedback-type-bug{color:#991b1b;background:#fee2e2}.feedback-type-feature{color:#1e40af;background:#dbeafe}.feedback-type-improvement{color:#166534;background:#dcfce7}.settings-card-header{-webkit-user-select:none;user-select:none}.settings-card-chevron{color:var(--text-muted);font-size:.8rem}.print-only{display:none}.drag-handle{cursor:grab;color:var(--text-muted);border-radius:var(--radius);touch-action:none;background:0 0;border:none;justify-content:center;align-items:center;padding:.25rem;display:inline-flex}.drag-handle:hover{color:var(--text);background:var(--border)}.drag-handle:active{cursor:grabbing}.qty-recipe-cell{position:relative}.qty-recipe-cell .qty-display{cursor:text;color:var(--primary);padding:.3rem .5rem;display:block}.qty-recipe-cell:after{content:"Click to edit amounts";background:var(--primary);color:#fff;border-radius:var(--radius);white-space:nowrap;pointer-events:none;opacity:0;z-index:10;padding:.2rem .5rem;font-size:.72rem;transition:opacity .15s;position:absolute;bottom:calc(100% + 5px);left:50%;transform:translate(-50%)}.qty-recipe-cell:hover:not(:focus-within):after{opacity:1}.qty-recipe-cell .qty-input{opacity:0;width:100%;height:100%;position:absolute;top:0;left:0}.qty-recipe-cell .qty-input:focus{opacity:1;width:100%;height:auto;position:relative}.qty-recipe-cell .qty-input:focus+.qty-display{display:none}.splash{cursor:pointer;z-index:9999;opacity:1;background:#1a1a2e;flex-direction:column;justify-content:center;align-items:center;width:100vw;height:100vh;transition:opacity .6s;display:flex;position:fixed;top:0;left:0}.splash.splash-fade{opacity:0;pointer-events:none}.splash-img{border-radius:16px;max-width:min(90vw,500px);max-height:70vh;animation:.6s ease-out splashPop;box-shadow:0 8px 40px #00000080}.splash-hint{color:#ffffff80;margin-top:1.5rem;font-size:.9rem;animation:.6s ease-out 1s both splashHint}@keyframes splashPop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes splashHint{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.pantry-pull-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.pantry-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:1rem;padding:.5rem 1rem;font-size:.875rem;display:flex}.pantry-item:last-child{border-bottom:none}.pantry-item-name{cursor:pointer;-webkit-user-select:none;user-select:none}.pantry-item-name:hover{color:var(--primary)}.pantry-item-toggle{width:1rem;color:var(--text-muted);font-size:.7rem;display:inline-block}.pantry-item-total{white-space:nowrap;text-align:right;min-width:3rem}.pantry-item-pulled{text-align:center;min-width:3rem}.pantry-item-pulled input[type=checkbox]{cursor:pointer;width:1rem;height:1rem}.pantry-item-detail{color:var(--text-muted);margin:.3rem 0 .2rem 1rem;font-size:.8rem}.pantry-item-breakdown{justify-content:space-between;gap:1rem;padding:.15rem 0;display:flex}.pantry-table{border-collapse:collapse;width:100%;font-size:.875rem}.pantry-table th{text-transform:uppercase;color:var(--text-muted);text-align:left;border-bottom:1px solid var(--border);background:#bfdbfe;padding:.35rem .75rem;font-size:.75rem;font-weight:600}.pantry-table td{border-bottom:1px solid var(--border);padding:.45rem .75rem}.pantry-table tr:last-child td{border-bottom:none}.pantry-table tr:hover td{background:#f8fafc}.pantry-table .pantry-num{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}.unit-changed-warning{color:#b45309;font-size:.75rem;font-weight:500}@media print{.app-header,.btn,.no-print,.filters,.back-link{display:none!important}.print-only{display:block!important}.page{max-width:100%;padding:0}.shopping-store-header{border-bottom:2px solid var(--text);background:0 0;border-radius:0;padding-left:0}.shopping-store-header h3{color:var(--text)}.shopping-dept{border:none}.shopping-item{padding-left:1.5rem}.shopping-item-toggle,.shopping-item-alt{display:none}.print-splits .shopping-item-print-splits{color:var(--text-muted);margin:.1rem 0 .3rem 1rem;font-size:.75rem;display:block!important}.shopping-item-bought input[type=checkbox]{appearance:auto;width:.9rem;height:.9rem}.card{border:none;margin-bottom:.5rem;padding:.5rem 0}.card-header{margin-bottom:.25rem}.card-header h3{font-size:1rem}.data-table th,.data-table td{border:none;border-bottom:1px solid #ccc;padding:.2rem .5rem}.data-table input{box-shadow:none!important;background:0 0!important;border:none!important;padding:0!important}.data-table th:nth-child(3),.data-table td:nth-child(3),.data-table th:nth-child(5),.data-table td:nth-child(5),.searchable-select{display:none}textarea{resize:none!important;field-sizing:content!important;border:none!important;height:auto!important;padding:0!important;overflow:visible!important}.inline-form select,.inline-form input[type=text]{background:0 0!important;border:none!important;padding:0!important}.qty-recipe-cell .qty-input{display:none!important}.qty-recipe-cell .qty-display{padding:0!important;display:block!important}.tag-pill-print{-webkit-print-color-adjust:exact;print-color-adjust:exact;border:1px solid #93c5fd;border-radius:9999px;margin-right:.3rem;padding:.15rem .5rem;font-size:.8rem;display:inline-block;color:#1e40af!important;background:#dbeafe!important}.pantry-notes-section{margin-bottom:.5rem!important}.pantry-notes-lines{background-image:repeating-linear-gradient(#0000,#0000 calc(1.6rem - 1px),#ccc calc(1.6rem - 1px) 1.6rem);background-size:100% 1.6rem;border:1px solid #ccc;border-top:none;height:8rem;padding:0 .5rem}.pantry-recipe-header{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:.85rem;border-radius:0!important;padding:.2rem .5rem!important}.pantry-pull-list{border:none;margin-bottom:.5rem!important}.pantry-item{padding:.1rem 0;font-size:.8rem}.pantry-item-total{min-width:2rem}.pantry-item-pulled{min-width:1.5rem}.pantry-item-toggle{display:none}.pantry-table th,.pantry-table td{padding:.15rem .4rem;font-size:.8rem}.pantry-table th{-webkit-print-color-adjust:exact;print-color-adjust:exact}.pantry-item-pulled input[type=checkbox]{appearance:auto;width:.8rem;height:.8rem}}
