#root{width:100%;min-width:0;min-height:100vh}.app{box-sizing:border-box;flex-direction:column;width:100%;min-width:0;max-width:900px;min-height:100svh;margin:0 auto;padding:80px 24px 40px;display:flex}.app-header{text-align:center;margin-bottom:64px}.app-eyebrow{letter-spacing:2px;text-transform:uppercase;color:#73917c;margin-bottom:16px;font-size:14px;font-weight:600}.app-header h1{letter-spacing:-1.5px;margin:0 0 16px;font-size:clamp(36px,6vw,56px);font-weight:700}.app-description{color:#77857b;margin:0;font-size:17px}.app-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.action-button{color:#25332b;background:#fff;border:1px solid #e0e7df;border-radius:24px;flex-direction:column;justify-content:center;align-items:center;min-width:0;min-height:220px;padding:28px 16px;font-size:24px;font-weight:600;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;box-shadow:0 8px 30px #283c2d0a}.action-button:hover{transform:translateY(-4px);box-shadow:0 16px 40px #283c2d1a}.action-add:hover{border-color:#9bbca4}.action-open:hover{border-color:#b6cdb6}.action-open .action-icon{color:#637f60;background:#edf3e8}.action-button:focus-visible{outline-offset:4px;outline:3px solid #527c60}.action-remove:hover{border-color:#b8c6bc}.action-icon{color:#527c60;background:#e9f3ea;border-radius:22px;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:24px;font-size:42px;font-weight:300;display:flex}.action-remove .action-icon{color:#78877b;background:#f0f1ed}.action-button small{color:#859188;text-align:center;margin-top:12px;font-size:14px;font-weight:400}.scan-placeholder{text-align:center;background:#fff;border:1px solid #e0e7df;border-radius:20px;margin-top:32px;padding:32px}.scan-placeholder h2{margin-top:0}.scan-placeholder p{color:#77857b}.scan-placeholder button{color:#385b43;background:#e9f3ea;border:none;border-radius:12px;margin-top:16px;padding:12px 24px;font-weight:600}.app-footer{text-align:center;color:#9aa69d;margin-top:auto;padding-top:80px;font-size:13px}@media (width<=740px){.app-actions{grid-template-columns:1fr;gap:16px}.action-button{min-height:158px;padding:24px 20px;font-size:22px}.action-icon{width:60px;height:60px;margin-bottom:14px;font-size:36px}}@media (width<=600px){.app{padding:max(44px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(18px, env(safe-area-inset-left))}.app-header{margin-bottom:36px}.app-actions{gap:14px}.action-button{min-height:148px;padding:22px 16px;font-size:21px}.action-icon{width:56px;height:56px;margin-bottom:12px;font-size:34px}.scan-placeholder{padding:24px 16px}.app-footer{padding-top:48px}}@media (prefers-reduced-motion:reduce){.action-button{transition:none}}.storage-location-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px;margin-bottom:28px;display:grid}.scan-placeholder .storage-location-card{color:#25332b;cursor:pointer;background:#f9fbf8;border:1px solid #e0e7df;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:10px;min-width:0;min-height:110px;margin:0;padding:20px 12px;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s;display:flex}.storage-location-card strong{text-align:center;overflow-wrap:break-word;word-break:normal;-webkit-hyphens:auto;hyphens:auto;max-width:100%;font-size:15px;font-weight:600;line-height:1.4}.storage-location-card span{color:#77857b;font-size:13px;font-weight:400}.scan-placeholder .storage-location-card:hover{background:#f0f6ef;border-color:#9bbca4;transform:translateY(-2px)}.scan-placeholder .storage-location-card.is-selected{background:#e9f3ea;border-color:#739b7e;box-shadow:0 0 0 1px #739b7e}.scan-placeholder .storage-location-card:focus-visible{outline-offset:3px;outline:3px solid #527c60}.inventory-location-content{text-align:left;margin-top:28px}.inventory-location-content>h3{color:#25332b;margin-bottom:20px;font-size:20px}@media (width<=740px){.storage-location-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.scan-placeholder .storage-location-card{min-height:96px;padding:16px 10px}}@media (width<=380px){.storage-location-grid{gap:10px}.scan-placeholder .storage-location-card{min-height:88px;padding:14px 8px}.storage-location-card strong{font-size:14px}}@media (prefers-reduced-motion:reduce){.scan-placeholder .storage-location-card{transition:none}.scan-placeholder .storage-location-card:hover{transform:none}}.inventory-product-list{gap:16px;display:grid}.inventory-product-card{background:#f9fbf8;border:1px solid #e0e7df;border-radius:18px;min-width:0;padding:22px}.inventory-product-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.inventory-product-header h4{overflow-wrap:anywhere;margin:0 0 8px;font-size:17px}.inventory-product-header p{margin:0;font-size:14px}.inventory-product-count{color:#385b43;white-space:nowrap;background:#e9f3ea;border-radius:10px;padding:7px 12px;font-size:13px;font-weight:600}.inventory-product-summary{color:#77857b;flex-wrap:wrap;gap:10px;margin-top:18px;font-size:13px;display:flex}.inventory-opened-label{color:#637f60;font-weight:600}.inventory-product-details{border-top:1px solid #e0e7df;margin-top:18px;padding-top:16px}.inventory-product-details summary{cursor:pointer;color:#385b43;text-align:left;font-size:14px;font-weight:600}.inventory-product-details summary:focus-visible{outline-offset:4px;border-radius:4px;outline:3px solid #527c60}.inventory-package-list{gap:10px;margin-top:16px;display:grid}.inventory-package-item{text-align:left;background:#fff;border:1px solid #e8eee7;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:14px;font-size:13px;display:flex}.inventory-package-item strong{color:#25332b}@media (width<=600px){.inventory-product-card{padding:16px}.inventory-product-header{flex-direction:column}.inventory-package-item{flex-direction:column;align-items:flex-start}}.dashboard-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:24px;display:grid}.dashboard-stat-card{background:#fff;border:1px solid #e0e7df;border-radius:20px;flex-direction:column;justify-content:center;align-items:flex-start;gap:10px;min-width:0;min-height:125px;padding:22px;display:flex;box-shadow:0 8px 30px #283c2d0a}.dashboard-stat-label{color:#77857b;font-size:13px;font-weight:500}.dashboard-stat-value{color:#25332b;font-size:34px;font-weight:700;line-height:1}.dashboard-stat-card small{color:#859188;font-size:12px}@media (width<=600px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-stat-card{border-radius:16px;min-height:105px;padding:16px}.dashboard-stat-value{font-size:30px}.dashboard-stat-card:first-child{grid-column:1/-1}}.inventory-package-item{flex-direction:column;align-items:stretch;gap:12px;display:flex}.inventory-package-heading,.inventory-package-meta{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.expiration-badge{white-space:nowrap;border-radius:8px;align-items:center;padding:5px 10px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.expiration-fresh{color:#386e4b;background:#e8f4eb}.expiration-expiring{color:#96610c;background:#fff2d9}.expiration-expired{color:#a53e3e;background:#fceeee}.expiration-unknown{color:#66746b;background:#eff1ee}@media (width<=600px){.inventory-package-heading{align-items:flex-start}.inventory-package-meta{flex-direction:column;align-items:flex-start}}.product-expiration-warning{border-radius:8px;align-items:center;padding:6px 10px;font-size:12px;font-weight:600;line-height:1.4;display:inline-flex}.product-expiration-warning.is-expiring{color:#96610c;background:#fff2d9}.product-expiration-warning.is-expired{color:#a53e3e;background:#fceeee}.inventory-next-expiration{flex-basis:100%}@media (width<=600px){.app-actions{gap:10px}.action-button{text-align:left;border-radius:18px;flex-direction:row;justify-content:flex-start;align-items:center;gap:16px;min-height:88px;padding:14px 18px;font-size:19px}.action-icon{border-radius:16px;flex-shrink:0;width:52px;height:52px;margin-bottom:0;font-size:32px}.action-button small{text-align:left;margin-top:0;font-size:12px}}.action-content{flex-direction:column;align-items:center;min-width:0;display:flex}.action-title{font-size:inherit;font-weight:600}.action-content small{display:block}@media (width<=600px){.action-content{text-align:left;flex:1;align-items:flex-start}.action-content small{margin-top:5px;line-height:1.4}}.manual-product-form{text-align:left;flex-direction:column;gap:12px;width:100%;max-width:480px;margin:0 auto;display:flex}.manual-product-form h2{color:#25332b;text-align:center;margin:0 0 4px;font-size:24px}.manual-product-form p{color:#77857b;text-align:center;margin:0 0 18px;font-size:14px;line-height:1.6}.manual-product-form label{color:#25332b;margin-top:8px;font-size:14px;font-weight:600;display:block}.manual-product-form input{box-sizing:border-box;color:#25332b;width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #dce5db;border-radius:12px;padding:14px 16px;font-size:16px;display:block}.manual-product-form input[readonly]{color:#77857b;background:#f4f7f3}.manual-product-form input:focus-visible{outline-offset:2px;border-color:#739b7e;outline:2px solid #739b7e}.manual-product-form input::placeholder{color:#9aa69d}.manual-product-actions{flex-direction:column;gap:10px;margin-top:20px;display:flex}.scan-placeholder .manual-product-actions button{cursor:pointer;border-radius:12px;width:100%;min-height:48px;margin:0;padding:12px 18px;font-size:15px;font-weight:600}.scan-placeholder .manual-product-actions button[type=submit]{color:#fff;background:#527c60;order:-1}.scan-placeholder .manual-product-actions button[type=button]{color:#385b43;background:#eef3ed}.scan-placeholder .manual-product-actions button:focus-visible{outline-offset:3px;outline:3px solid #527c60}@media (width<=600px){.manual-product-form h2{font-size:22px}.manual-product-form p{margin-bottom:12px}.manual-product-form input{padding:13px 14px}}.app-header{position:relative}.header-settings-button{color:#385b43;cursor:pointer;background:#e9f3ea;border:1px solid #dce5db;border-radius:14px;justify-content:center;align-items:center;width:46px;height:46px;font-size:24px;transition:background .2s,transform .2s;display:flex;position:absolute;top:-36px;right:0}.header-settings-button:hover{background:#dcebdd;transform:rotate(25deg)}.header-settings-button:focus-visible{outline-offset:3px;outline:3px solid #527c60}@media (width<=600px){.header-settings-button{width:44px;height:44px;top:-24px;right:0}}@media (prefers-reduced-motion:reduce){.header-settings-button{transition:none}.header-settings-button:hover{transform:none}}.settings-active-household{text-align:left;background:#f4f8f3;border:1px solid #dce5db;border-radius:16px;align-items:center;gap:14px;margin:20px 0;padding:18px;display:flex}.settings-household-icon{background:#e9f3ea;border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:24px;display:flex}.settings-household-info{flex-direction:column;gap:5px;min-width:0;display:flex}.settings-household-info strong{color:#25332b;overflow-wrap:anywhere;font-size:16px}.settings-household-info small{color:#77857b;font-size:13px}.settings-household-list{text-align:left;margin-top:28px}.settings-household-list h3{color:#25332b;margin-bottom:16px;font-size:18px}.settings-household-list-item{background:#f9fbf8;border:1px solid #e0e7df;border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;padding:16px;display:flex}.settings-household-list-name{color:#25332b;overflow-wrap:anywhere;font-size:15px;font-weight:600}.settings-household-active-label,.settings-household-inactive-label{border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600}.settings-household-active-label{color:#386e4b;background:#e8f4eb}.settings-household-inactive-label{color:#66746b;background:#eff1ee}.settings-create-household{margin-top:24px}.scan-placeholder .settings-create-household>button{color:#385b43;width:100%;min-height:48px;font:inherit;cursor:pointer;background:#e9f3ea;border:1px solid #dce5db;border-radius:14px;margin:0;padding:12px 18px;font-size:15px;font-weight:600}.settings-create-household-form{margin-top:16px}.settings-create-household-form>button{margin-top:12px}.settings-tabs{background:#f0f4ef;border:1px solid #e0e7df;border-radius:14px;justify-content:center;gap:6px;width:fit-content;max-width:100%;margin:24px auto;padding:5px;display:flex}.scan-placeholder .settings-tabs button{color:#77857b;font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;margin:0;padding:12px 20px;font-size:14px;font-weight:600;transition:background .2s,color .2s,box-shadow .2s}.scan-placeholder .settings-tabs button:hover{color:#25332b;background:#e5ede4}.scan-placeholder .settings-tabs button.is-active{color:#25332b;background:#fff;border-color:#dce5db;box-shadow:0 2px 8px #283c2d14}.scan-placeholder .settings-tabs button:focus-visible{outline-offset:3px;outline:3px solid #527c60}@media (prefers-reduced-motion:reduce){.scan-placeholder .settings-tabs button{transition:none}}.household-refresh-error{color:#a53e3e;background:#fceeee;border:1px solid #e8baba;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:16px;padding:14px 18px;font-size:14px;display:flex}.household-refresh-error button{color:#a53e3e;cursor:pointer;background:#fff;border:1px solid #e8baba;border-radius:8px;padding:8px 12px}.household-refresh-error button:focus-visible{outline-offset:3px;outline:3px solid #a53e3e}.settings-storage-locations{border-top:1px solid #d9e2db;margin-top:2rem;padding-top:1rem}.settings-storage-locations h3{margin-bottom:1rem}.settings-storage-location-list h4{margin-bottom:.75rem}.settings-storage-location-items{gap:.85rem;margin:0 0 1.25rem;padding:0;list-style:none;display:grid}.settings-storage-location-card{background:#f8fbf8;border:1px solid #d9e2db;border-radius:14px;padding:1rem}.settings-storage-location-row,.settings-storage-location-edit,.settings-storage-location-delete{gap:.75rem;display:grid}.settings-storage-location-main{min-width:0}.settings-storage-location-name{color:#203328;word-break:break-word;font-weight:600}.settings-storage-location-hint{color:#5f6f66;margin:0;font-size:.95rem}.settings-storage-location-actions{flex-wrap:wrap;gap:.6rem;display:flex}.settings-storage-location-actions button{min-width:120px}.settings-storage-location-form{gap:.65rem;margin-top:1.25rem;display:grid}.settings-storage-location-form-row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.settings-storage-location-form-row input{flex:260px;min-width:0}.settings-storage-location-empty{color:#5f6f66;margin:0 0 1rem}.settings-message{border-radius:12px;margin-top:.9rem;padding:.85rem 1rem}.settings-message-error{color:#8a3d32;background:#fff3f1;border:1px solid #f1c8c1}.settings-message-success{color:#2f6b3c;background:#eff8f1;border:1px solid #cfe4d3}@media (width<=640px){.settings-storage-location-row{gap:.85rem}.settings-storage-location-actions{flex-direction:column;align-items:stretch}.settings-storage-location-actions button{width:100%;min-width:0}.settings-storage-location-form-row{flex-direction:column;align-items:stretch}.settings-storage-location-form-row input,.settings-storage-location-form-row button{width:100%}}@media (width<=600px){.settings-storage-location-form-row{flex-direction:column;align-items:stretch;gap:.75rem;display:flex}.settings-storage-location-form-row input{box-sizing:border-box;flex:none;width:100%;min-width:0;height:48px;min-height:48px;max-height:48px;padding:.75rem 1rem;font-size:16px}.settings-storage-location-form-row button{width:100%}}.pwa-update-prompt{right:1rem;bottom:calc(1rem + env(safe-area-inset-bottom,0px));z-index:1000;box-sizing:border-box;color:#263b30;background:#fff;border:1px solid #dce6dc;border-radius:16px;width:min(380px,100vw - 2rem);padding:1.25rem;position:fixed;box-shadow:0 8px 30px #14281926}.pwa-update-prompt strong{margin-bottom:.5rem;display:block}.pwa-update-prompt p{margin:0 0 1rem;line-height:1.5}.pwa-update-prompt .manual-product-actions{flex-wrap:wrap;gap:.5rem;display:flex}@media (width<=600px){.pwa-update-prompt{width:auto;left:1rem;right:1rem}.pwa-update-prompt .manual-product-actions button{flex:auto}}:root{color:#25332b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background-color:#f7f8f5;font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit;cursor:pointer}button:focus-visible{outline-offset:3px;outline:3px solid #7ca88c}
