*{box-sizing:border-box}html,body,#root{margin:0;padding:0;width:100%;height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}:root{--bg-primary: #1a1a2e;--bg-secondary: #2d2b4a;--bg-tertiary: #3d3a5c;--text-primary: #f8f8f2;--text-secondary: #8b7fc7;--accent: #a855f7;--success: #50fa7b;--warning: #ffb86c;--error: #e94560;--border: #4a4670}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);padding:20px}.login-card{width:100%;max-width:400px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:12px;padding:40px}.login-header{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:32px;color:var(--accent)}.login-header h1{margin:0;font-size:1.75rem;font-weight:600;color:var(--text-primary)}.login-form{display:flex;flex-direction:column;gap:20px}.login-error{background:#e9456026;border:1px solid var(--error);color:var(--error);padding:12px 16px;border-radius:6px;font-size:.9em;text-align:center}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:.9em;font-weight:500;color:var(--text-secondary)}.form-group input{padding:12px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;font-size:1em;color:var(--text-primary);transition:border-color .15s}.form-group input:focus{outline:none;border-color:var(--accent)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.login-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:14px 24px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:1em;font-weight:500;cursor:pointer;transition:background .15s,transform .1s;margin-top:8px}.login-btn:hover:not(:disabled){background:#9333ea}.login-btn:active:not(:disabled){transform:scale(.98)}.login-btn:disabled{opacity:.6;cursor:not-allowed}.loading-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;background:var(--bg-primary);color:var(--text-secondary)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.logout-btn{color:var(--text-secondary);border-color:var(--border)}.logout-btn:hover{background:#e9456026;border-color:var(--error);color:var(--error)}body{background:var(--bg-primary);color:var(--text-primary)}.app{height:100vh;width:100vw;display:flex;flex-direction:column;overflow:hidden}.app-header{display:flex;align-items:center;gap:12px;padding:16px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.app-header h1{margin:0;font-size:1.5rem;font-weight:600}.app-nav{display:flex;gap:8px;margin-left:auto}.nav-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:6px;font-size:.9em;cursor:pointer;transition:all .15s}.nav-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.nav-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.app-main{display:grid;grid-template-columns:300px 1fr 320px;flex:1;min-height:0;overflow:hidden}.app-main-full{flex:1;min-height:0;overflow:hidden}.sidebar,.restock-sidebar{background:var(--bg-secondary);border-right:1px solid var(--border);overflow-y:auto;padding:16px;height:100%}.restock-sidebar{border-right:none;border-left:1px solid var(--border)}.content{padding:24px;overflow-y:auto;height:100%}.bin-tree h2{margin:0 0 16px;font-size:1rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.bin-node{-webkit-user-select:none;user-select:none}.bin-header{display:flex;align-items:center;gap:4px;padding:6px 8px;border-radius:6px;cursor:pointer;transition:background .15s}.bin-header:hover{background:var(--bg-tertiary)}.bin-header.selected{background:var(--accent)}.expand-btn{background:none;border:none;padding:0;color:var(--text-secondary);cursor:pointer;display:flex;align-items:center}.bin-icon{color:var(--accent);flex-shrink:0}.bin-name{font-weight:500;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bin-location{color:var(--text-secondary);font-size:.85em}.bin-children{margin-left:20px;border-left:1px solid var(--border);padding-left:8px}.item-node{display:flex;align-items:center;gap:6px;padding:4px 8px;font-size:.9em;color:var(--text-secondary)}.item-node.low-stock{color:var(--warning)}.item-icon{flex-shrink:0}.item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.item-qty{font-family:monospace;font-size:.85em}.restock-at{color:var(--text-secondary)}.search-results{display:flex;flex-direction:column;gap:4px}.search-result-item{padding:8px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;cursor:pointer;transition:border-color .15s}.search-result-item:hover{border-color:var(--accent)}.search-result-item.low-stock{border-left:3px solid var(--warning)}.search-result-name{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--text-primary)}.search-result-name .item-qty{margin-left:auto;font-family:monospace;font-size:.85em;color:var(--text-secondary)}.search-result-name .item-units{font-size:.8em;color:var(--text-secondary)}.search-result-path{font-size:.8em;color:var(--text-secondary);margin-top:2px;margin-left:20px}.restock-list h2{display:flex;align-items:center;gap:8px;margin:0 0 16px;font-size:1rem;font-weight:600}.warning-icon{color:var(--warning)}.count{background:var(--accent);padding:2px 8px;border-radius:12px;font-size:.85em}.store-filter{display:flex;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;background:var(--bg-tertiary);border-radius:6px;color:var(--text-secondary)}.store-select{flex:1;padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:.9rem;cursor:pointer}.store-select:focus{outline:none;border-color:var(--accent)}.restock-items{display:flex;flex-direction:column;gap:8px}.restock-item{display:flex;justify-content:space-between;align-items:center;padding:12px;background:var(--bg-tertiary);border-radius:8px;border-left:3px solid var(--warning)}.restock-item.clickable{cursor:pointer;transition:background-color .15s ease,transform .1s ease}.restock-item.clickable:hover{background:var(--bg-secondary);transform:translate(2px)}.item-info{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.item-details{display:flex;flex-direction:column;min-width:0}.item-details .item-name{font-weight:500;color:var(--text-primary)}.item-bin{font-size:.85em;color:var(--text-secondary)}.item-stock{display:flex;align-items:center;gap:4px;font-family:monospace}.item-stock .current{color:var(--warning);font-weight:600}.item-stock .separator,.item-stock .threshold{color:var(--text-secondary)}.order-qty{margin-left:8px;padding:2px 6px;background:var(--accent);border-radius:4px;font-size:.85em}.expiring-header{margin-top:24px}.item-expiry{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.expiry-date{font-size:.9em;color:var(--text-secondary)}.expiry-date.expiring-soon{color:var(--warning);font-weight:600}.expiry-date.expired{color:var(--error);font-weight:600}.restock-item.expiring-soon{border-left-color:var(--warning)}.restock-item.expired{border-left-color:var(--error);background:#ef44441a}.item-expiry .qty{font-size:.85em;color:var(--text-secondary)}.bin-details{max-width:1200px}.bin-header-details{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}.bin-header-details svg{color:var(--accent);flex-shrink:0;margin-top:4px}.bin-header-details h2{margin:0;font-size:1.5rem}.bin-path{margin:4px 0 0;color:var(--text-secondary);font-size:.9em}.description{color:var(--text-secondary);line-height:1.5}.bin-meta{display:flex;gap:24px;margin:16px 0}.meta-item{display:flex;align-items:center;gap:6px;color:var(--text-secondary);font-size:.9em}.bin-stats{display:flex;gap:24px;margin:24px 0}.stat{padding:16px 24px;background:var(--bg-secondary);border-radius:8px;text-align:center}.stat.warning{border:1px solid var(--warning)}.stat-value{display:block;font-size:2rem;font-weight:700}.stat.warning .stat-value{color:var(--warning)}.stat-label{color:var(--text-secondary);font-size:.85em}.bin-details h3{margin:32px 0 16px;font-size:1rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.items-table{background:var(--bg-secondary);border-radius:8px;overflow:hidden}.items-table table{width:100%;border-collapse:collapse}.items-table th,.items-table td{padding:12px 16px;text-align:left}.items-table th{background:var(--bg-tertiary);font-weight:600;font-size:.85em;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.items-table tr:not(:last-child) td{border-bottom:1px solid var(--border)}.items-table tr.low-stock{background:#fbbf241a}.items-table td:first-child{display:flex;align-items:center;gap:8px}.status-badge{padding:4px 8px;border-radius:4px;font-size:.8em;font-weight:600}.status-badge.ok{background:#4ade8033;color:var(--success)}.status-badge.warning{background:#fbbf2433;color:var(--warning)}.status-badge.error{background:#e9456033;color:var(--accent)}.expired-date{color:var(--accent);font-weight:600}.expiring-date{color:var(--warning);font-weight:500}.items-table tr.expired{background:#e945601a}.items-table tr.expiring-soon{background:#fbbf241a}.tags-wrapper{display:flex;flex-wrap:wrap;gap:4px}.tag-badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:12px;font-size:.75em;font-weight:500;background:var(--bg-tertiary);color:var(--text-secondary);white-space:nowrap}.tag-remove{display:flex;align-items:center;justify-content:center;background:none;border:none;padding:0;margin-left:2px;cursor:pointer;color:inherit;opacity:.7}.tag-remove:hover{opacity:1}.tags-editor{display:flex;flex-direction:column;gap:6px}.tag-select{padding:4px 8px;border:1px solid var(--border);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:.8em;cursor:pointer}.tag-select:focus{outline:none;border-color:var(--accent)}.items-table tbody tr{cursor:pointer;transition:background .15s}.items-table tbody tr:hover:not(.editing){background:var(--bg-tertiary)}.items-table tr.editing{background:var(--bg-tertiary)}.edit-input{width:80px;padding:6px 10px;border:1px solid var(--accent);border-radius:4px;background:var(--bg-primary);color:var(--text-primary);font-size:.95em;font-family:monospace}.edit-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #e945604d}.actions{display:flex;gap:8px}.btn-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border:none;border-radius:4px;cursor:pointer;transition:background .15s}.btn-icon.save{background:var(--success);color:#000}.btn-icon.save:hover{background:#22c55e}.btn-icon.cancel{background:var(--text-secondary);color:#000}.btn-icon.cancel:hover{background:#888}.btn-icon:disabled{opacity:.5;cursor:not-allowed}.hint{margin:0 0 16px;font-size:.85em;color:var(--text-secondary)}.section-header{display:flex;align-items:center;justify-content:space-between;margin:32px 0 8px}.section-header h3{margin:0}.btn-add{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--accent);color:#fff;border:none;border-radius:6px;font-size:.9em;font-weight:500;cursor:pointer;transition:background .15s}.btn-add:hover{background:#d63d56}.btn-add.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border)}.btn-add.btn-secondary:hover{background:var(--bg-secondary);border-color:var(--accent)}.section-header-actions{display:flex;gap:8px}.add-bin-row{display:flex;align-items:center;gap:12px;padding:12px;background:#e945601a;border-radius:6px;margin-bottom:16px}.add-bin-row .edit-input{flex:1;min-width:120px}.add-bin-row .name-input{flex:2}.name-input{width:180px}.quantity-with-units{display:flex;gap:4px;align-items:center}.quantity-input{width:60px}.units-select{width:70px;padding:6px 4px}.add-row{background:#e945601a}.empty-row{text-align:center;color:var(--text-secondary);padding:24px!important}.welcome{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;color:var(--text-secondary)}.welcome h2{margin:0 0 8px;color:var(--text-primary)}.loading{display:flex;align-items:center;gap:8px;color:var(--text-secondary);padding:16px}.spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.error{color:var(--accent);padding:16px}.empty{color:var(--text-secondary);padding:16px;text-align:center}.empty.success{color:var(--success)}@media(max-width:1200px){.app-main{grid-template-columns:280px 1fr}.restock-sidebar{display:none}}.mobile-bin-toggle,.mobile-bin-overlay{display:none}@media(max-width:768px){.app-header{padding:12px 16px;flex-wrap:wrap;gap:8px}.app-header h1{font-size:1.2rem}.app-nav{width:100%;margin-left:0;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}.nav-btn{flex-shrink:0;justify-content:center;padding:8px 12px;font-size:.85em}.nav-btn span{display:none}.app-main{grid-template-columns:1fr}.sidebar{display:none}.mobile-bin-toggle{display:flex;align-items:center;justify-content:center;gap:8px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);z-index:100;padding:12px 24px;background:var(--accent);color:#fff;border:none;border-radius:24px;font-size:.95em;font-weight:500;cursor:pointer;box-shadow:0 4px 12px #0006;transition:transform .15s,box-shadow .15s}.mobile-bin-toggle:hover{transform:translate(-50%) scale(1.05);box-shadow:0 6px 16px #00000080}.mobile-bin-toggle:active{transform:translate(-50%) scale(.98)}.mobile-bin-overlay{display:flex;position:fixed;inset:0;background:#0009;z-index:200;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-bin-drawer{position:absolute;left:0;top:0;bottom:0;width:85%;max-width:320px;background:var(--bg-secondary);display:flex;flex-direction:column;animation:slideIn .25s ease;box-shadow:4px 0 20px #0006}@keyframes slideIn{0%{transform:translate(-100%)}to{transform:translate(0)}}.mobile-bin-header{display:flex;align-items:center;justify-content:space-between;padding:16px;border-bottom:1px solid var(--border);background:var(--bg-tertiary)}.mobile-bin-header h2{margin:0;font-size:1.1rem;font-weight:600}.mobile-bin-close{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);padding:8px;border-radius:6px;cursor:pointer;transition:all .15s}.mobile-bin-close:hover{background:var(--bg-primary);color:var(--text-primary)}.mobile-bin-content{flex:1;overflow-y:auto;padding:16px}.content{padding:16px}.bin-header-details{flex-direction:column;gap:12px}.bin-meta,.bin-stats{flex-wrap:wrap;gap:12px}.stat{flex:1 1 calc(50% - 6px);min-width:120px;padding:12px 16px}.stat-value{font-size:1.5rem}.items-table{overflow-x:auto}.items-table table{min-width:600px}.items-table th,.items-table td{padding:10px 12px;font-size:.9em}.restock-sidebar{display:block;border-left:none;border-top:1px solid var(--border)}}.graph-view{display:flex;flex-direction:column;height:100%;background:var(--bg-primary)}.graph-header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.graph-header h2{margin:0;font-size:1.25rem;font-weight:600}.graph-content{display:flex;flex:1;min-height:0}.graph-sidebar{width:220px;background:var(--bg-secondary);border-right:1px solid var(--border);padding:16px;overflow-y:auto}.filter-section{margin-bottom:16px}.filter-label{display:block;margin-bottom:6px;font-size:.8em;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.bin-search-container{position:relative}.bin-search-input{width:100%;padding:8px 30px 8px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.9em}.bin-search-input:focus{outline:none;border-color:var(--accent)}.bin-search-input::placeholder{color:var(--text-secondary)}.bin-search-clear{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center}.bin-search-clear:hover{color:var(--text-primary)}.bin-search-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;max-height:250px;overflow-y:auto;z-index:100;box-shadow:0 4px 12px #0000004d}.bin-search-option{display:block;width:100%;padding:8px 10px;background:none;border:none;color:var(--text-primary);font-size:.85em;text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bin-search-option:hover{background:var(--bg-tertiary)}.bin-search-option.selected{background:var(--accent);color:#fff}.bin-search-empty{padding:8px 10px;color:var(--text-secondary);font-size:.85em;text-align:center}.filter-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.9em;cursor:pointer;transition:all .15s}.filter-toggle:hover{background:var(--bg-primary)}.filter-toggle.active{background:var(--bg-primary);color:var(--text-primary);border-color:var(--accent)}.filter-count{margin-left:auto;padding:2px 8px;background:var(--bg-secondary);border-radius:10px;font-size:.85em}.filter-list-container{margin-top:8px}.filter-list-header{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;background:none;border:none;color:var(--text-secondary);font-size:.8em;cursor:pointer}.filter-list-header:hover{color:var(--text-primary)}.filter-list{max-height:200px;overflow-y:auto;margin-top:4px}.filter-list-item{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;background:none;border:none;color:var(--text-secondary);font-size:.8em;cursor:pointer;text-align:left;border-radius:4px}.filter-list-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.filter-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.filter-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.graph-legend{display:flex;gap:20px}.legend-item{display:flex;align-items:center;gap:6px;font-size:.85em;color:var(--text-secondary)}.legend-dot{width:12px;height:12px;border-radius:50%}.graph-container{flex:1;min-height:0}.graph-container canvas{width:100%!important;height:100%!important}.graph-stats{display:flex;gap:24px;padding:12px 24px;background:var(--bg-secondary);border-top:1px solid var(--border);font-size:.85em;color:var(--text-secondary)}.graph-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--text-secondary)}.item-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.item-modal{background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border);width:90%;max-width:480px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.item-modal-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.item-modal-header h3{margin:0;flex:1;font-size:1.1em}.item-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.item-modal-close:hover{background:var(--bg-primary);color:var(--text-primary)}.item-modal-content{padding:16px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.item-modal-row{display:flex;flex-direction:column;gap:4px}.item-modal-label{font-size:.8em;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.item-modal-value{display:flex;align-items:center;gap:8px;font-size:1em}.item-modal-value.expired{color:var(--accent)}.item-modal-warning{display:inline-flex;align-items:center;gap:4px;margin-left:8px;padding:2px 8px;border-radius:4px;font-size:.85em;font-weight:500;background:#fbbf2433;color:var(--warning)}.item-modal-value.expired .item-modal-warning{background:#e9456033;color:var(--accent)}.item-modal-path{font-size:.85em;color:var(--text-secondary);margin-left:4px}.item-modal-tags{display:flex;flex-wrap:wrap;gap:6px}.item-modal-tag{padding:4px 10px;border-radius:12px;font-size:.85em;font-weight:500;background:var(--bg-tertiary);color:#fff}.item-modal-open-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin-top:8px;padding:12px 16px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:.95em;font-weight:500;cursor:pointer;transition:all .15s}.item-modal-open-btn:hover{background:#d13a52}.item-modal-edit-btn{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.item-modal-edit-btn:hover{background:var(--bg-primary);color:var(--accent)}.item-modal-input{width:100%;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.95em;transition:border-color .15s}.item-modal-input:focus{outline:none;border-color:var(--accent)}.item-modal-textarea{resize:vertical;min-height:60px;font-family:inherit}.item-modal-actions{display:flex;gap:12px;margin-top:8px}.item-modal-cancel-btn{flex:1;padding:10px 16px;background:var(--bg-tertiary);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;font-size:.95em;cursor:pointer;transition:all .15s}.item-modal-cancel-btn:hover{background:var(--bg-primary)}.item-modal-cancel-btn:disabled{opacity:.5;cursor:not-allowed}.item-modal-save-btn{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 16px;background:var(--success);color:#000;border:none;border-radius:6px;font-size:.95em;font-weight:500;cursor:pointer;transition:all .15s}.item-modal-save-btn:hover{background:#22c55e}.item-modal-save-btn:disabled{opacity:.5;cursor:not-allowed}.history-view{display:flex;flex-direction:column;height:100%;background:var(--bg-primary)}.history-header{display:flex;align-items:center;gap:12px;padding:16px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.history-header h2{margin:0;font-size:1.25rem;font-weight:600}.history-controls{display:flex;align-items:center;gap:16px;padding:16px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.history-type-toggle{display:flex;gap:4px;background:var(--bg-primary);border-radius:8px;padding:4px}.toggle-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);font-size:.9em;cursor:pointer;transition:all .15s}.toggle-btn:hover{color:var(--text-primary)}.toggle-btn.active{background:var(--accent);color:#fff}.history-search{display:flex;align-items:center;gap:8px;flex:1;max-width:400px;padding:8px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px}.history-search input{flex:1;background:none;border:none;color:var(--text-primary);font-size:.95em}.history-search input:focus{outline:none}.history-search input::placeholder{color:var(--text-secondary)}.history-search svg{color:var(--text-secondary)}.history-content{flex:1;overflow-y:auto;padding:24px}.history-list{display:flex;flex-direction:column;gap:8px;max-width:1000px;margin:0 auto}.history-item-group{background:var(--bg-secondary);border-radius:8px;overflow:hidden}.history-item-header{display:flex;align-items:center;gap:10px;width:100%;padding:14px 16px;background:none;border:none;color:var(--text-primary);font-size:.95em;cursor:pointer;transition:background .15s}.history-item-header:hover{background:var(--bg-tertiary)}.history-item-header .item-name{flex:1;text-align:left;font-weight:500}.history-item-header .item-qty{color:var(--text-secondary);font-size:.9em;font-family:monospace}.history-item-header .item-path{color:var(--text-secondary);font-size:.85em}.history-item-header .last-activity{color:var(--text-secondary);font-size:.8em;margin-left:auto;padding:2px 8px;background:var(--bg-primary);border-radius:4px}.history-entries{border-top:1px solid var(--border);padding:12px 16px;background:var(--bg-tertiary)}.history-table{width:100%;border-collapse:collapse;font-size:.9em}.history-table th,.history-table td{padding:10px 12px;text-align:left}.history-table th{color:var(--text-secondary);font-weight:600;font-size:.8em;text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border)}.history-table td{border-bottom:1px solid var(--border)}.history-table tr:last-child td{border-bottom:none}.history-table .date-cell{color:var(--text-secondary);font-size:.9em;white-space:nowrap}.history-table .operation-cell{display:flex;align-items:center;gap:6px;font-weight:500}.op-icon{flex-shrink:0}.op-icon.create{color:var(--success)}.op-icon.delete{color:var(--accent)}.op-icon.update{color:var(--warning)}.history-table tr.operation-create .operation-cell{color:var(--success)}.history-table tr.operation-delete .operation-cell{color:var(--accent)}.history-table tr.operation-update .operation-cell{color:var(--warning)}.quantity-cell .qty-change{display:inline-flex;align-items:center;gap:4px;font-family:monospace}.qty-change.increase{color:var(--success)}.qty-change.decrease{color:var(--accent)}.qty-diff{font-size:.9em;opacity:.8;margin-left:4px}.qty-same{font-family:monospace;color:var(--text-secondary)}.loading-small{display:flex;align-items:center;justify-content:center;padding:16px;color:var(--text-secondary)}.no-history{text-align:center;color:var(--text-secondary);padding:16px;font-size:.9em}.empty-state{text-align:center;color:var(--text-secondary);padding:48px;font-size:1em}.history-tabs{display:flex;gap:4px;padding:12px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.tab-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);font-size:.9em;cursor:pointer;transition:all .15s}.tab-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.tab-btn.active{background:var(--accent);color:#fff}.filter-controls{padding:16px 24px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}.filter-row{display:flex;align-items:center;gap:12px}.search-clear{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:2px}.search-clear:hover{color:var(--text-primary)}.filter-toggle-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;color:var(--text-secondary);font-size:.9em;cursor:pointer;transition:all .15s}.filter-toggle-btn:hover{border-color:var(--text-secondary)}.filter-toggle-btn.active{border-color:var(--accent);color:var(--text-primary)}.filter-badge{background:var(--accent);color:#fff;padding:2px 6px;border-radius:10px;font-size:.75em;font-weight:600}.filter-panel{display:flex;flex-wrap:wrap;gap:20px;margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{font-size:.8em;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.filter-chips{display:flex;flex-wrap:wrap;gap:6px}.chip{padding:6px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:16px;color:var(--text-secondary);font-size:.85em;cursor:pointer;transition:all .15s}.chip:hover{border-color:var(--text-secondary);color:var(--text-primary)}.chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.custom-date-range{display:flex;align-items:center;gap:8px;margin-top:8px}.custom-date-range input{padding:6px 10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.9em}.custom-date-range input:focus{outline:none;border-color:var(--accent)}.custom-date-range span{color:var(--text-secondary);font-size:.9em}.timeline-view{max-width:800px;margin:0 auto}.timeline-day{margin-bottom:24px}.timeline-day-header{display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--bg-secondary);border-radius:8px;margin-bottom:12px;font-weight:600;color:var(--text-primary)}.timeline-day-count{margin-left:auto;font-size:.85em;font-weight:400;color:var(--text-secondary)}.timeline-entries{display:flex;flex-direction:column;gap:0}.timeline-entry{display:flex;gap:12px;padding:12px 0}.timeline-time{width:80px;flex-shrink:0;font-size:.85em;color:var(--text-secondary);text-align:right;padding-top:2px}.timeline-connector{display:flex;flex-direction:column;align-items:center;width:20px;flex-shrink:0}.timeline-dot{width:12px;height:12px;border-radius:50%;background:var(--bg-tertiary);border:2px solid var(--text-secondary);flex-shrink:0}.timeline-entry.operation-create .timeline-dot{border-color:var(--success);background:var(--success)}.timeline-entry.operation-update .timeline-dot{border-color:var(--warning);background:var(--warning)}.timeline-entry.operation-delete .timeline-dot{border-color:var(--accent);background:var(--accent)}.timeline-line{width:2px;flex:1;background:var(--border);margin-top:4px}.timeline-entry:last-child .timeline-line{display:none}.timeline-content{flex:1;background:var(--bg-secondary);border-radius:8px;padding:12px 16px}.timeline-header{display:flex;align-items:center;gap:8px;margin-bottom:4px}.timeline-entity-name{font-weight:500;flex:1}.timeline-operation{display:flex;align-items:center;gap:4px;font-size:.85em;font-weight:500;padding:2px 8px;border-radius:4px;background:var(--bg-tertiary)}.timeline-operation.create{color:var(--success)}.timeline-operation.update{color:var(--warning)}.timeline-operation.delete{color:var(--accent)}.timeline-details{font-size:.9em;color:var(--text-secondary);margin-top:4px}.timeline-quantity{margin-top:8px}.analytics-view{max-width:1200px;margin:0 auto}.analytics-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.analytics-card{background:var(--bg-secondary);border-radius:12px;padding:20px}.analytics-card.wide{grid-column:span 2}.analytics-card h3{margin:0 0 16px;font-size:1em;font-weight:600;color:var(--text-primary)}.top-items-list{display:flex;flex-direction:column;gap:8px}.top-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-tertiary);border-radius:6px}.top-item-rank{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);border-radius:50%;font-size:.8em;font-weight:600;color:var(--text-secondary)}.top-item-name{flex:1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-item-count{font-size:.85em;color:var(--text-secondary)}.pie-chart-container{display:flex;justify-content:center}.heatmap-container{display:flex;flex-direction:column;gap:8px}.heatmap-hours{display:flex;margin-left:40px;font-size:.75em;color:var(--text-secondary)}.heatmap-hours span{width:25%}.heatmap-grid{display:flex;flex-direction:column;gap:2px}.heatmap-row{display:flex;align-items:center;gap:2px}.heatmap-day{width:36px;font-size:.75em;color:var(--text-secondary);flex-shrink:0}.heatmap-cell{flex:1;height:16px;background:var(--bg-tertiary);border-radius:2px;cursor:default;transition:transform .1s}.heatmap-cell:hover{transform:scale(1.2);z-index:1}.recharts-tooltip-wrapper{z-index:100}.recharts-default-tooltip{background:var(--bg-secondary)!important;border:1px solid var(--border)!important;border-radius:6px!important}.recharts-tooltip-label{color:var(--text-primary)!important}.recharts-legend-item-text{color:var(--text-secondary)!important}.top-item.clickable{width:100%;border:none;cursor:pointer;transition:all .15s}.top-item.clickable:hover{background:var(--bg-primary);transform:translate(4px)}.history-modal-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.history-modal{background:var(--bg-secondary);border-radius:12px;border:1px solid var(--border);width:90%;max-width:600px;max-height:80vh;overflow:hidden;display:flex;flex-direction:column}.history-modal-header{display:flex;align-items:center;gap:12px;padding:16px 20px;background:var(--bg-tertiary);border-bottom:1px solid var(--border)}.history-modal-header h3{margin:0;flex:1;font-size:1.1em}.history-modal-close{background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .15s}.history-modal-close:hover{background:var(--bg-primary);color:var(--text-primary)}.history-modal-content{padding:16px 20px;overflow-y:auto;flex:1}.history-modal-stats{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border);font-size:.9em;color:var(--text-secondary)}.history-modal-entries{display:flex;flex-direction:column;gap:12px}.history-modal-entry{background:var(--bg-tertiary);border-radius:8px;padding:12px 16px;border-left:3px solid var(--border)}.history-modal-entry.operation-create{border-left-color:var(--success)}.history-modal-entry.operation-update{border-left-color:var(--warning)}.history-modal-entry.operation-delete{border-left-color:var(--accent)}.history-modal-entry-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.history-modal-operation{display:flex;align-items:center;gap:6px;font-weight:500;font-size:.9em}.history-modal-operation.create{color:var(--success)}.history-modal-operation.update{color:var(--warning)}.history-modal-operation.delete{color:var(--accent)}.history-modal-date{font-size:.85em;color:var(--text-secondary)}.history-modal-quantity{margin-top:4px}.history-modal-details{font-size:.9em;color:var(--text-secondary);margin-top:4px}@media(max-width:900px){.analytics-grid{grid-template-columns:1fr}.analytics-card.wide{grid-column:span 1}}@media(max-width:768px){.graph-view{height:100%}.graph-header{flex-direction:column;align-items:flex-start;gap:12px;padding:12px 16px}.graph-header h2{font-size:1.1rem}.graph-legend{gap:12px;flex-wrap:wrap}.legend-item{font-size:.8em}.graph-content{flex-direction:column}.graph-sidebar{width:100%;max-height:180px;border-right:none;border-bottom:1px solid var(--border);padding:12px;display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;overflow-y:auto}.graph-sidebar .filter-section{flex:1 1 calc(50% - 4px);min-width:140px;margin-bottom:0}.graph-sidebar .filter-section:first-child{flex:1 1 100%}.filter-toggle{padding:8px 10px;font-size:.85em}.filter-list-container{position:absolute;top:100%;left:0;right:0;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;z-index:50;max-height:200px;overflow-y:auto}.bin-search-dropdown{max-height:200px}.graph-container{flex:1;min-height:300px}.graph-stats{flex-wrap:wrap;gap:12px;padding:10px 16px;font-size:.8em}}@media(max-width:768px){.history-view{height:100%}.history-header{padding:12px 16px}.history-header h2{font-size:1.1rem}.history-tabs{padding:10px 16px;overflow-x:auto;gap:2px}.tab-btn{padding:8px 12px;font-size:.85em;white-space:nowrap;flex-shrink:0}.tab-btn span{display:none}.history-controls{padding:12px 16px;flex-direction:column;gap:12px;align-items:stretch}.history-type-toggle{justify-content:center}.toggle-btn{flex:1;justify-content:center;padding:8px 12px}.toggle-btn span{display:none}.filter-controls{padding:12px 16px}.filter-row{flex-direction:column;gap:10px}.history-search{max-width:none}.filter-toggle-btn{width:100%;justify-content:center}.filter-panel{flex-direction:column;gap:16px}.filter-chips{flex-wrap:wrap}.chip{padding:5px 10px;font-size:.8em}.custom-date-range{flex-direction:column;align-items:stretch;gap:8px}.custom-date-range span{text-align:center}.history-content{padding:16px}.history-list{gap:6px}.history-item-header{flex-wrap:wrap;padding:12px;gap:6px}.history-item-header .item-name{flex:1 1 calc(100% - 40px);order:1}.history-item-header .item-qty{order:3;font-size:.85em}.history-item-header .item-path{flex:1 1 100%;order:4;font-size:.8em}.history-item-header .last-activity{order:2;margin-left:0}.history-entries{padding:10px 12px;overflow-x:auto}.history-table{min-width:500px}.history-table th,.history-table td{padding:8px 10px;font-size:.85em}.timeline-view{padding:0}.timeline-day-header{padding:10px 14px;font-size:.9em}.timeline-entry{gap:8px;padding:8px 0}.timeline-time{width:60px;font-size:.75em}.timeline-connector{width:16px}.timeline-dot{width:10px;height:10px}.timeline-content{padding:10px 12px}.timeline-header{flex-wrap:wrap;gap:6px}.timeline-entity-name{flex:1 1 100%;font-size:.95em}.timeline-operation{font-size:.8em}.analytics-view{padding:0}.analytics-grid{grid-template-columns:1fr;gap:16px}.analytics-card{padding:16px}.analytics-card.wide{grid-column:span 1}.analytics-card h3{font-size:.95em}.top-item{padding:6px 10px;gap:8px}.top-item-rank{width:20px;height:20px;font-size:.75em}.top-item-name{font-size:.9em}.top-item-count{font-size:.8em}.heatmap-container{overflow-x:auto}.heatmap-hours{margin-left:30px;font-size:.65em}.heatmap-day{width:28px;font-size:.65em}.heatmap-cell{height:12px;min-width:8px}}@media(max-width:768px){.item-modal{width:95%;max-height:90vh;margin:16px}.item-modal-header{padding:14px 16px}.item-modal-header h3{font-size:1em}.item-modal-content{padding:14px 16px}.item-modal-row{gap:3px}.item-modal-label{font-size:.75em}.item-modal-value{font-size:.95em;flex-wrap:wrap}.item-modal-warning{margin-left:0;margin-top:4px}.item-modal-actions{flex-direction:column}.history-modal{width:95%;max-height:90vh;margin:16px}.history-modal-header,.history-modal-content{padding:14px 16px}.history-modal-entry{padding:10px 12px}.history-modal-entry-header{flex-direction:column;align-items:flex-start;gap:4px}.history-modal-date{font-size:.8em}}@media(max-width:480px){.app-header{padding:10px 12px}.app-header h1{font-size:1.1rem}.nav-btn{padding:6px 10px}.content{padding:12px}.stat{padding:10px 12px}.stat-value{font-size:1.25rem}.stat-label{font-size:.75em}.restock-list h2{font-size:.9em}.restock-item{padding:10px;flex-direction:column;align-items:flex-start;gap:8px}.item-info{width:100%}.item-stock,.item-expiry{align-self:flex-end}.graph-sidebar{max-height:140px;padding:10px}.graph-sidebar .filter-section{min-width:100%}.filter-toggle{padding:6px 8px;font-size:.8em}.graph-container{min-height:250px}.tab-btn{padding:6px 10px}.toggle-btn{padding:6px 10px;font-size:.85em}.timeline-time{width:50px;font-size:.7em}.timeline-entity-name{font-size:.9em}}@supports (padding-top: env(safe-area-inset-top)){.app-header{padding-top:max(12px,env(safe-area-inset-top))}.app-main,.app-main-full{padding-bottom:env(safe-area-inset-bottom)}.item-modal-overlay,.history-modal-overlay{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}}.recipes-view{height:100%;overflow-y:auto;padding:24px;background:var(--bg-primary)}.recipes-header{display:flex;align-items:center;gap:12px;margin-bottom:24px}.recipes-header h2{margin:0;font-size:1.5rem;flex:1}.create-recipe-btn{display:flex;align-items:center;gap:6px;padding:10px 18px;background:var(--accent);color:#fff;border:none;border-radius:8px;font-size:.95em;font-weight:500;cursor:pointer;transition:all .15s}.create-recipe-btn:hover{opacity:.9;transform:translateY(-1px)}.recipes-list{display:flex;flex-direction:column;gap:16px}.recipe-group{background:var(--bg-secondary);border-radius:12px;overflow:hidden}.recipe-group-header{display:flex;align-items:center;gap:10px;width:100%;padding:14px 18px;background:none;border:none;color:var(--text-primary);font-size:1em;font-weight:600;cursor:pointer;text-align:left}.recipe-group-header:hover{background:var(--bg-tertiary)}.group-title{flex:1}.group-count{padding:4px 10px;background:var(--bg-tertiary);border-radius:12px;font-size:.85em;color:var(--text-secondary)}.recipe-group-content{padding:8px;display:grid;gap:8px}.group-empty{padding:16px;text-align:center;color:var(--text-secondary);font-style:italic}.recipe-card{display:block;width:100%;padding:16px;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;text-align:left;cursor:pointer;transition:all .15s}.recipe-card:hover{border-color:var(--accent);transform:translateY(-2px)}.recipe-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:8px}.recipe-card-header h3{margin:0;font-size:1.1em;color:var(--text-primary)}.recipe-description{margin:0 0 12px;font-size:.9em;color:var(--text-secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.recipe-meta{display:flex;gap:16px;font-size:.85em;color:var(--text-secondary)}.recipe-meta>span{display:flex;align-items:center;gap:6px}.availability-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:12px;font-size:.8em;font-weight:500;white-space:nowrap}.availability-badge.can-make{background:#50fa7b26;color:var(--success)}.availability-badge.missing{background:#ffb86c26;color:var(--warning)}.recipe-detail{height:100%;display:flex;flex-direction:column}.recipe-detail.loading{align-items:center;justify-content:center}.recipe-detail-header{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--border);margin-bottom:20px}.back-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.9em;cursor:pointer;transition:all .15s}.back-btn:hover{background:var(--bg-tertiary)}.recipe-detail-actions{display:flex;gap:8px}.action-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.9em;cursor:pointer;transition:all .15s}.action-btn:hover{background:var(--bg-tertiary)}.action-btn.delete:hover{border-color:var(--error);color:var(--error)}.recipe-detail-content{flex:1;overflow-y:auto}.recipe-title-section{display:flex;align-items:center;gap:16px;margin-bottom:16px}.recipe-title-section h2{margin:0;font-size:1.8em}.recipe-info{display:flex;gap:20px;margin-bottom:24px;color:var(--text-secondary)}.recipe-info>span{display:flex;align-items:center;gap:8px}.recipe-section{margin-bottom:24px}.recipe-section h3{margin:0 0 12px;font-size:1.1em;color:var(--text-secondary);border-bottom:1px solid var(--border);padding-bottom:8px}.recipe-section p{margin:0;line-height:1.6}.ingredients-list{list-style:none;margin:0;padding:0}.ingredient-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--bg-secondary);border-radius:8px;margin-bottom:8px}.ingredient-item.available{border-left:3px solid var(--success)}.ingredient-item.missing{border-left:3px solid var(--warning)}.ingredient-status{display:flex;align-items:center}.ingredient-item.available .ingredient-status{color:var(--success)}.ingredient-item.missing .ingredient-status{color:var(--warning)}.ingredient-qty{min-width:60px;font-weight:600;color:var(--accent)}.ingredient-name{flex:1}.ingredient-need{display:flex;align-items:center;gap:4px;padding:4px 10px;background:#ffb86c26;color:var(--warning);border-radius:12px;font-size:.85em}.ingredient-matched{font-size:.85em;color:var(--text-secondary)}.ingredient-notes{font-size:.9em;color:var(--text-secondary);font-style:italic}.recipe-instructions{background:var(--bg-secondary);padding:16px;border-radius:8px}.recipe-instructions p{margin:0 0 12px}.recipe-instructions p:last-child{margin-bottom:0}.shopping-list{margin-top:24px;padding:20px;background:#ffb86c1a;border:1px solid rgba(255,184,108,.3);border-radius:12px}.shopping-list h3{display:flex;align-items:center;gap:10px;margin:0 0 16px;color:var(--warning)}.shopping-list ul{margin:0;padding-left:20px}.shopping-list li{padding:6px 0;color:var(--text-primary)}.recipe-form{height:100%;display:flex;flex-direction:column;background:var(--bg-secondary);border-radius:12px;overflow:hidden}.form-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border)}.form-header h2{margin:0}.close-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;background:var(--bg-tertiary);border:none;border-radius:8px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.close-btn:hover{color:var(--text-primary)}.form-body{flex:1;overflow-y:auto;padding:20px}.form-group{margin-bottom:20px}.form-group label{display:block;margin-bottom:8px;font-size:.9em;font-weight:500;color:var(--text-secondary)}.form-group input[type=text],.form-group input[type=number],.form-group textarea{width:100%;padding:12px 14px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:1em}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--accent)}.form-group textarea{resize:vertical;min-height:80px}.ingredients-form-list{background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;overflow:hidden}.ingredients-header{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr 1.5fr 40px;gap:8px;padding:10px 12px;background:var(--bg-tertiary);font-size:.8em;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em}.ingredient-form-row{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr 1.5fr 40px;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border)}.ingredient-form-row:last-child{border-bottom:none}.ingredient-form-row input{padding:8px 10px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.95em}.ingredient-form-row input:focus{outline:none;border-color:var(--accent)}.remove-ingredient-btn{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:0}.remove-ingredient-btn:hover{color:var(--error)}.add-ingredient-btn{display:flex;align-items:center;gap:6px;margin-top:12px;padding:10px 16px;background:var(--bg-tertiary);border:1px dashed var(--border);border-radius:8px;color:var(--text-secondary);font-size:.9em;cursor:pointer;transition:all .15s}.add-ingredient-btn:hover{border-color:var(--accent);color:var(--accent)}.form-footer{display:flex;justify-content:flex-end;gap:12px;padding:16px 20px;border-top:1px solid var(--border)}.cancel-btn{padding:10px 20px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.95em;cursor:pointer;transition:all .15s}.cancel-btn:hover{background:var(--bg-primary)}.save-btn{display:flex;align-items:center;gap:6px;padding:10px 20px;background:var(--accent);border:none;border-radius:8px;color:#fff;font-size:.95em;font-weight:500;cursor:pointer;transition:all .15s}.save-btn:hover:not(:disabled){opacity:.9}.save-btn:disabled{opacity:.6;cursor:not-allowed}.recipes-view .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px;color:var(--text-secondary);text-align:center}.recipes-view .empty-state h3{margin:16px 0 8px;color:var(--text-primary)}.recipes-view .empty-state p{margin:0 0 20px}.cook-log-section{margin-top:24px}.cook-log-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.cook-log-header h3{display:flex;align-items:center;gap:10px;margin:0;border-bottom:none;padding-bottom:0}.add-cook-log-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;background:var(--accent);border:none;border-radius:6px;color:#fff;font-size:.9em;cursor:pointer;transition:all .15s}.add-cook-log-btn:hover{opacity:.9}.cook-log-form{background:var(--bg-secondary);padding:16px;border-radius:8px;margin-bottom:16px}.cook-log-form .form-group{margin-bottom:12px}.cook-log-form .form-group:last-of-type{margin-bottom:16px}.cook-log-form input[type=datetime-local]{width:100%;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.95em}.cook-log-form textarea{width:100%;padding:10px 12px;background:var(--bg-primary);border:1px solid var(--border);border-radius:6px;color:var(--text-primary);font-size:.95em;resize:vertical}.cook-log-form-actions{display:flex;gap:10px;justify-content:flex-end}.cook-log-form-actions .cancel-btn,.cook-log-form-actions .save-btn{padding:8px 16px;font-size:.9em}.cook-log-loading{display:flex;justify-content:center;padding:20px}.cook-log-empty{background:var(--bg-secondary);padding:20px;border-radius:8px;text-align:center;color:var(--text-secondary)}.cook-log-empty p{margin:0}.cook-log-list{list-style:none;margin:0;padding:0}.cook-log-entry{background:var(--bg-secondary);padding:16px;border-radius:8px;margin-bottom:12px}.cook-log-entry:last-child{margin-bottom:0}.cook-log-entry-header{display:flex;align-items:center;justify-content:space-between}.cook-log-date{display:flex;align-items:center;gap:8px;color:var(--text-secondary);font-size:.95em}.delete-cook-log-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;background:transparent;border:none;border-radius:4px;color:var(--text-secondary);cursor:pointer;transition:all .15s}.delete-cook-log-btn:hover{background:#e9456026;color:var(--error)}.cook-log-notes{display:flex;align-items:flex-start;gap:8px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border);color:var(--text-primary);font-size:.95em;line-height:1.5}.cook-log-notes svg{flex-shrink:0;margin-top:3px;color:var(--text-secondary)}.similar-recipes-section{margin-top:24px}.similar-recipes-section h3{display:flex;align-items:center;gap:10px;margin-bottom:16px;border-bottom:none;padding-bottom:0}.similar-loading{text-align:center;padding:20px;color:var(--text-secondary)}.similar-recipes-list{display:flex;flex-direction:column;gap:12px}.similar-recipe-card{display:flex;flex-direction:column;gap:8px;padding:14px 16px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;cursor:pointer;text-align:left;transition:all .15s}.similar-recipe-card:hover{border-color:var(--accent);background:var(--bg-hover)}.similar-recipe-info{display:flex;flex-direction:column;gap:4px}.similar-recipe-name{font-weight:500;color:var(--text-primary)}.similar-recipe-overlap{font-size:.85em;color:var(--text-secondary)}.similar-recipe-shared{display:flex;flex-wrap:wrap;gap:6px}.shared-ingredient-tag{padding:3px 8px;background:var(--accent);border-radius:12px;font-size:.75em;color:#fff}.shared-ingredient-more{padding:3px 8px;background:var(--bg-tertiary);border-radius:12px;font-size:.75em;color:var(--text-secondary)}.recipes-header-actions{display:flex;align-items:center;gap:12px;margin-left:auto}.grocery-list-btn{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--success);border:none;border-radius:8px;color:#fff;font-size:.9em;font-weight:500;cursor:pointer;transition:all .15s}.grocery-list-btn:hover:not(:disabled){opacity:.9}.grocery-list-btn:disabled{opacity:.6;cursor:not-allowed}.recipe-card-wrapper{display:flex;align-items:stretch;gap:8px;transition:all .15s}.recipe-card-wrapper.selected{background:var(--success-light);border-radius:8px;margin:-4px;padding:4px}.recipe-select-checkbox{display:flex;align-items:center;justify-content:center;width:36px;padding:0;background:transparent;border:none;color:var(--text-secondary);cursor:pointer;transition:all .15s}.recipe-select-checkbox:hover,.recipe-card-wrapper.selected .recipe-select-checkbox{color:var(--success)}.recipe-card-wrapper .recipe-card{flex:1}.grocery-list-view{padding:20px}.grocery-list-header{display:flex;align-items:center;gap:16px;margin-bottom:24px}.grocery-list-header h2{display:flex;align-items:center;gap:10px;margin:0;font-size:1.4em}.grocery-list-content{max-width:800px}.grocery-list-summary{background:var(--bg-secondary);padding:16px 20px;border-radius:8px;margin-bottom:24px}.grocery-list-summary p{margin:0 0 12px;color:var(--text-secondary)}.selected-recipes-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}.selected-recipe-tag{padding:4px 12px;background:var(--accent);border-radius:12px;font-size:.85em;color:#fff}.grocery-summary-stats{display:flex;gap:20px}.grocery-summary-stats .stat{display:flex;align-items:center;gap:6px;font-size:.95em;color:var(--text-secondary)}.grocery-summary-stats .stat.available{color:var(--success)}.grocery-section{margin-bottom:24px}.grocery-section h3{display:flex;align-items:center;gap:10px;margin-bottom:16px;font-size:1.1em}.grocery-section h3.need-to-buy{color:var(--warning)}.grocery-section h3.in-stock{color:var(--success)}.grocery-section h3.low-stock{color:var(--danger)}.grocery-category-group{margin-bottom:16px}.grocery-category-group:last-child{margin-bottom:0}.grocery-category-header{font-size:.85em;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.05em;margin:0 0 8px;padding:8px 12px;background:var(--bg-tertiary);border-radius:6px}.grocery-items-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.grocery-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;background:var(--bg-secondary);border-radius:8px;border-left:3px solid}.grocery-item.need{border-left-color:var(--warning)}.grocery-item.have{border-left-color:var(--success)}.grocery-item.restock{border-left-color:var(--danger);cursor:pointer}.grocery-item.restock:hover{background:var(--hover-bg)}.grocery-item-location{margin-left:auto}.grocery-item-location .bin-tag{font-size:.75em;padding:2px 8px;background:var(--bg-tertiary);color:var(--text-secondary);border-radius:4px}.grocery-item-main{display:flex;align-items:center;gap:8px;min-width:200px}.grocery-item-qty{font-weight:600;color:var(--text-primary)}.grocery-item-name{color:var(--text-primary)}.grocery-item-notes{font-size:.85em;color:var(--text-secondary);font-style:italic}.grocery-item-have{font-size:.85em;color:var(--text-secondary)}.grocery-item-recipes{display:flex;flex-wrap:wrap;gap:4px;margin-left:auto}.grocery-item-recipes .recipe-tag{padding:2px 8px;background:var(--bg-tertiary);border-radius:10px;font-size:.75em;color:var(--text-secondary)}.cart-toggle{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;transition:color .15s,background .15s}.cart-toggle:hover{color:var(--accent);background:var(--bg-tertiary)}.grocery-item.need{cursor:pointer;transition:opacity .15s}.grocery-item.need:hover{background:var(--bg-tertiary)}.grocery-item.in-cart{opacity:.6;border-left-color:var(--success)}.grocery-item.in-cart .grocery-item-name,.grocery-item.in-cart .grocery-item-qty{text-decoration:line-through;color:var(--text-secondary)}.grocery-summary-stats .stat.in-cart{color:var(--success)}.garage-vehicles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;padding:0}.garage-section{background:var(--bg-secondary);border-radius:12px;overflow:hidden;margin-bottom:16px}.garage-section-content{padding:16px}.mileage-display{display:flex;align-items:center;gap:10px;padding:12px 18px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;color:var(--text-primary);font-size:1em;cursor:pointer;transition:all .15s}.mileage-display:hover{border-color:var(--accent);background:var(--bg-tertiary)}.mileage-value{font-size:1.3em;font-weight:600;color:var(--accent)}.mileage-unit{color:var(--text-secondary)}.mileage-edit-icon{margin-left:auto;color:var(--text-secondary)}.garage-status-list{list-style:none;margin:0 0 16px;padding:0}.garage-status-item{display:flex;flex-direction:column;gap:8px;padding:16px;background:var(--bg-primary);border:1px solid var(--border);border-radius:10px;margin-bottom:10px;position:relative}.garage-status-item.overdue{border-left:3px solid var(--error)}.garage-status-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.garage-status-name{font-weight:600;font-size:1.05em}.garage-status-details{display:flex;flex-wrap:wrap;gap:16px}.garage-detail{display:flex;align-items:center;gap:6px;font-size:.9em;color:var(--text-secondary)}.garage-detail.overdue{color:var(--error);font-weight:500}.garage-detail.warning{color:var(--warning);font-weight:500}.garage-detail.last-performed{font-size:.85em;opacity:.8}.garage-status-actions{position:absolute;top:12px;right:12px;display:flex;gap:4px}.garage-log-name{font-weight:600;flex:1}.garage-log-details{display:flex;flex-wrap:wrap;gap:16px;margin-top:8px}.garage-form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.garage-select{width:100%;padding:12px 14px;background:var(--bg-primary);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:1em;cursor:pointer}.garage-select:focus{outline:none;border-color:var(--accent)}.garage-log-entry .cook-log-entry-header{gap:12px}.garage-log-notes{margin-top:8px;padding-top:8px;border-top:1px solid var(--border);font-size:.9em;color:var(--text-secondary);line-height:1.5}.availability-badge.overdue{background:#e9456026;color:var(--error)}.availability-badge.warning{background:#ffb86c26;color:var(--warning)}.mileage-graph-section{background:var(--bg-secondary);border-radius:12px;padding:16px;margin-bottom:16px}.mileage-graph-header{display:flex;align-items:center;gap:8px;font-weight:600;margin-bottom:12px;color:var(--text-primary)}.mileage-period-tabs{display:flex;gap:8px;margin-bottom:16px}.mileage-period-btn{padding:6px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.85em;cursor:pointer;transition:all .15s}.mileage-period-btn:hover{background:var(--bg-primary);color:var(--text-primary)}.mileage-period-btn.active{background:var(--accent);border-color:var(--accent);color:#fff}.mileage-graph-loading{display:flex;justify-content:center;align-items:center;height:200px}.mileage-graph-empty{display:flex;flex-direction:column;justify-content:center;align-items:center;height:200px;color:var(--text-secondary);text-align:center}.mileage-graph-empty p{margin:4px 0}.mileage-graph-hint{font-size:.85em;opacity:.8}.mileage-graph-chart{margin-top:8px}@media(max-width:768px){.garage-vehicles-grid,.garage-form-row{grid-template-columns:1fr}.garage-status-actions{position:static;margin-top:8px}.garage-status-header{flex-direction:column;align-items:flex-start}.mileage-display{width:100%;justify-content:center}}@media(max-width:768px){.recipes-view{padding:16px}.recipe-card-header{flex-direction:column;align-items:flex-start}.recipe-detail-header{flex-direction:column;gap:12px}.recipe-detail-actions{width:100%}.action-btn{flex:1;justify-content:center}.ingredients-header{display:none}.ingredient-form-row{display:flex;flex-wrap:wrap;gap:8px}.ingredient-form-row input{flex:1;min-width:100px}.ingredient-form-row input:first-child{flex:100%}}.restock-view-toggle{display:flex;gap:4px;padding:4px;background:var(--bg-tertiary);border-radius:8px;margin-bottom:16px}.restock-view-toggle button{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 12px;background:transparent;border:none;border-radius:6px;color:var(--text-secondary);cursor:pointer;transition:all .15s;font-size:.9rem}.restock-view-toggle button:hover{background:var(--bg-secondary);color:var(--text-primary)}.restock-view-toggle button.active{background:var(--accent);color:#fff}.restock-grocery-view{display:flex;flex-direction:column;gap:12px}.grocery-summary{display:flex;flex-wrap:wrap;gap:12px;padding:12px;background:var(--bg-tertiary);border-radius:8px}.grocery-summary .stat{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-secondary)}.grocery-summary .stat.in-cart{color:var(--success)}.grocery-summary .stat.remaining{color:var(--warning)}.grocery-actions{display:flex;gap:8px}.clear-cart-btn{display:flex;align-items:center;gap:6px;padding:6px 12px;background:var(--error);border:none;border-radius:6px;color:#fff;font-size:12px;cursor:pointer;opacity:.8;transition:opacity .15s}.clear-cart-btn:hover{opacity:1}.clear-cart-btn:disabled{opacity:.5;cursor:not-allowed}.clear-confirm{display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--bg-tertiary);border-radius:6px;font-size:13px}.clear-confirm .confirm-btn{padding:4px 12px;background:var(--error);border:none;border-radius:4px;color:#fff;font-size:12px;cursor:pointer}.clear-confirm .cancel-btn{padding:4px 12px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;color:var(--text-primary);font-size:12px;cursor:pointer}.grocery-store-group{background:var(--bg-secondary);border-radius:8px;overflow:hidden}.store-header{display:flex;align-items:center;gap:8px;width:100%;padding:12px 16px;background:none;border:none;color:var(--text-primary);cursor:pointer;font-weight:500;font-size:.95rem;text-align:left}.store-header:hover{background:var(--bg-tertiary)}.store-header .store-name{flex:1}.store-header .store-count{font-size:12px;color:var(--text-secondary);font-weight:400}.store-items{border-top:1px solid var(--border)}.grocery-item{display:flex;align-items:center;gap:12px;padding:10px 16px;border-bottom:1px solid var(--border);transition:opacity .15s,background .15s;cursor:pointer}.grocery-item:last-child{border-bottom:none}.grocery-item:hover{background:var(--bg-tertiary)}.grocery-item.in-cart{opacity:.5}.grocery-item.in-cart .grocery-item-name{text-decoration:line-through;color:var(--text-secondary)}.cart-toggle{display:flex;align-items:center;justify-content:center;background:none;border:none;color:var(--text-secondary);cursor:pointer;padding:4px;border-radius:4px;flex-shrink:0}.cart-toggle:hover{color:var(--accent);background:var(--bg-primary)}.cart-toggle:disabled{opacity:.5;cursor:not-allowed}.grocery-item.in-cart .cart-toggle{color:var(--success)}.grocery-item-name{flex:1;font-weight:500;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grocery-item-qty{font-size:13px;color:var(--text-secondary);min-width:60px;text-align:right}.grocery-item-bin{font-size:12px;color:var(--text-secondary);background:var(--bg-tertiary);padding:2px 8px;border-radius:4px;flex-shrink:0}@media(max-width:768px){.grocery-summary{padding:10px;gap:8px}.grocery-summary .stat{font-size:12px}.grocery-item{padding:8px 12px;gap:8px}.grocery-item-bin{display:none}.store-header{padding:10px 12px}}.grocery-list-view{height:100%;overflow-y:auto;padding:24px;max-width:900px;margin:0 auto}.grocery-list-header{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}.grocery-list-title{display:flex;align-items:center;gap:12px}.grocery-list-title h1{margin:0;font-size:1.75rem;font-weight:600}.grocery-list-title svg{color:var(--accent)}.grocery-list-stats{display:flex;gap:20px;margin-left:auto}.grocery-list-stats .stat{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-secondary);border-radius:8px}.grocery-list-stats .stat svg{opacity:.7}.grocery-list-stats .stat-value{font-size:1.25rem;font-weight:600}.grocery-list-stats .stat-label{font-size:.85rem;color:var(--text-secondary)}.grocery-list-stats .stat.in-cart{color:var(--success)}.grocery-list-stats .stat.remaining{color:var(--warning)}.grocery-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 24px;text-align:center;color:var(--text-secondary)}.grocery-list-empty svg{color:var(--success);margin-bottom:16px}.grocery-list-empty h2{margin:0 0 8px;color:var(--text-primary)}.grocery-list-empty p{margin:0}.grocery-list-store-filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;padding:12px 16px;background:var(--bg-secondary);border-radius:8px}.store-filter-tab{display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:20px;color:var(--text-secondary);font-size:.9rem;font-weight:500;cursor:pointer;transition:all .15s}.store-filter-tab:hover{background:var(--bg-primary);color:var(--text-primary);border-color:var(--accent)}.store-filter-tab.active{background:var(--accent);color:#fff;border-color:var(--accent)}.store-filter-tab .store-count{background:#fff3;padding:2px 8px;border-radius:10px;font-size:.8rem}.store-filter-tab:not(.active) .store-count{background:var(--bg-secondary)}.grocery-list-actions{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;background:var(--bg-secondary);border-radius:8px}.expand-actions{display:flex;gap:8px}.grocery-list-actions .action-btn{padding:6px 12px;background:var(--bg-tertiary);border:1px solid var(--border);border-radius:6px;color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all .15s}.grocery-list-actions .action-btn:hover{background:var(--bg-primary);color:var(--text-primary);border-color:var(--accent)}.clear-actions{display:flex;align-items:center}.grocery-list-categories{display:flex;flex-direction:column;gap:16px}.grocery-list-category{background:var(--bg-secondary);border-radius:12px;overflow:hidden}.grocery-list-category-header{display:flex;align-items:center;gap:12px;width:100%;padding:16px 20px;background:none;border:none;color:var(--text-primary);cursor:pointer;font-size:1rem;font-weight:500;text-align:left;transition:background .15s}.grocery-list-category-header:hover{background:var(--bg-tertiary)}.grocery-list-category-header svg:first-child{color:var(--accent)}.grocery-list-category-header .category-name{flex:1}.grocery-list-category-header .category-progress{font-size:.85rem;color:var(--text-secondary);font-weight:400;min-width:50px;text-align:right}.category-progress-bar{width:80px;height:6px;background:var(--bg-tertiary);border-radius:3px;overflow:hidden}.category-progress-fill{height:100%;background:var(--success);border-radius:3px;transition:width .3s ease}.grocery-list-category-items{border-top:1px solid var(--border)}.grocery-list-item{display:flex;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--border);cursor:pointer;transition:background .15s}.grocery-list-item:last-child{border-bottom:none}.grocery-list-item:hover{background:var(--bg-tertiary)}.grocery-list-item.in-cart{opacity:.5}.grocery-list-item.in-cart .grocery-list-item-name{text-decoration:line-through;color:var(--text-secondary)}.grocery-list-item .cart-toggle{padding:6px}.grocery-list-item .cart-toggle svg{width:20px;height:20px}.grocery-list-item.in-cart .cart-toggle{color:var(--success)}.grocery-list-item-info{flex:1;min-width:0}.grocery-list-item-name{display:block;font-weight:500;font-size:1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grocery-list-item-bin{display:block;font-size:.85rem;color:var(--text-secondary);margin-top:2px}.grocery-list-item-qty{display:flex;flex-direction:column;align-items:flex-end;min-width:80px}.grocery-list-item-qty .qty-value{font-size:1.1rem;font-weight:600;color:var(--accent)}.grocery-list-item-qty .qty-unit{font-size:.8rem;color:var(--text-secondary)}@media(max-width:768px){.grocery-list-view{padding:16px}.grocery-list-header{flex-direction:column;align-items:flex-start;gap:16px}.grocery-list-stats{width:100%;margin-left:0;justify-content:space-between}.grocery-list-stats .stat{flex:1;padding:8px 12px;flex-direction:column;gap:4px}.grocery-list-stats .stat-value{font-size:1.1rem}.grocery-list-actions{flex-direction:column;gap:12px;align-items:stretch}.expand-actions,.clear-actions{justify-content:center}.grocery-list-store-header{padding:12px 16px}.store-progress-bar{display:none}.grocery-list-item{padding:12px 16px;gap:12px}.grocery-list-item-qty{min-width:60px}}.food-cost-view{max-width:1100px;margin:0 auto;padding:1.5rem}.food-cost-header h2{margin:0;display:flex;align-items:center;gap:.5rem}.food-cost-subtitle{color:var(--text-muted, #888);margin:.25rem 0 1.5rem;font-size:.9rem}.food-cost-error{background:#dc35451f;border:1px solid rgba(220,53,69,.3);color:#dc3545;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;display:flex;justify-content:space-between;align-items:center}.food-cost-error button{background:transparent;border:0;color:inherit;cursor:pointer}.food-cost-entry-form{background:var(--card-bg, #1a1a1a);padding:1rem;border-radius:8px;margin-bottom:1.5rem;border:1px solid var(--border-color, #333)}.food-cost-form-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto auto;gap:.5rem;align-items:center}.food-cost-form-row input,.food-cost-form-row button{padding:.5rem;border-radius:4px;border:1px solid var(--border-color, #444);background:var(--input-bg, #2a2a2a);color:inherit;font-size:.9rem}.food-cost-form-row button{cursor:pointer;background:var(--accent, #007bff);border-color:var(--accent, #007bff);color:#fff}.food-cost-form-row button:disabled{opacity:.5}.food-cost-unit-wrapper{position:relative}.food-cost-unit-wrapper input{width:100%;box-sizing:border-box}.food-cost-unit-suggestions{position:absolute;top:100%;left:0;right:0;z-index:10;margin:2px 0 0;padding:0;list-style:none;background:var(--card-bg, #1a1a1a);border:1px solid var(--border-color, #444);border-radius:4px;max-height:220px;overflow-y:auto}.food-cost-unit-suggestions li{padding:.4rem .6rem;display:flex;justify-content:space-between;cursor:pointer}.food-cost-unit-suggestions li:hover{background:var(--hover-bg, #2a2a2a)}.food-cost-unit-count{color:var(--text-muted, #888);font-size:.85em}.food-cost-summary{margin-bottom:1.5rem}.food-cost-range-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;align-items:center}.food-cost-range-btn{padding:.4rem .8rem;border:1px solid var(--border-color, #444);background:transparent;color:inherit;border-radius:4px;cursor:pointer;font-size:.85rem}.food-cost-range-btn.active{background:var(--accent, #007bff);border-color:var(--accent, #007bff);color:#fff}.food-cost-custom-range{display:inline-flex;align-items:center;gap:.4rem}.food-cost-custom-range input{padding:.35rem;border-radius:4px;border:1px solid var(--border-color, #444);background:var(--input-bg, #2a2a2a);color:inherit}.food-cost-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.food-cost-tile{background:var(--card-bg, #1a1a1a);border:1px solid var(--border-color, #333);border-radius:8px;padding:1.25rem}.food-cost-tile h3{margin:0;font-size:.9rem;color:var(--text-muted, #888);text-transform:uppercase;letter-spacing:.04em}.food-cost-tile-sub{margin:.25rem 0 .5rem;color:var(--text-muted, #888);font-size:.85em}.food-cost-tile-value{font-size:1.8rem;font-weight:600}.food-cost-recent{margin-top:1rem}.food-cost-recent h3{margin:0 0 .5rem;font-size:1rem}.food-cost-empty{color:var(--text-muted, #888);font-style:italic}.food-cost-entry-list{list-style:none;margin:0;padding:0;border:1px solid var(--border-color, #333);border-radius:6px;overflow:hidden}.food-cost-entry{display:grid;grid-template-columns:110px 2fr 1.5fr 1fr auto auto;gap:.5rem;padding:.5rem .75rem;border-bottom:1px solid var(--border-color, #2a2a2a);align-items:center}.food-cost-entry:last-child{border-bottom:0}.food-cost-entry button{background:transparent;border:0;color:var(--text-muted, #888);cursor:pointer;padding:.25rem}.food-cost-entry button:hover{color:inherit}.food-cost-entry-date{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.food-cost-scheduled-badge{background:#ffc1072e;color:#ffc107;padding:1px 6px;border-radius:10px;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;align-self:flex-start}.food-cost-entry-name{font-weight:500}.food-cost-entry-qty,.food-cost-entry-price{color:var(--text-muted, #aaa);font-size:.9rem}@media(max-width:768px){.food-cost-form-row,.food-cost-entry{grid-template-columns:1fr}}
