:root{color-scheme:light dark;font-family:system-ui,-apple-system,sans-serif}html,body,#root{height:100%}body{margin:0}.app{max-width:640px;margin:0 auto;padding:0 1rem;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.app>main{flex:1;min-height:0;display:flex;flex-direction:column}.view{flex:1;min-height:0;display:flex;flex-direction:column}.view-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:1rem;scrollbar-gutter:stable;padding-right:.5rem}.app-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding-top:.5rem}.logout-button{background:transparent;border:1px solid #bbb;border-radius:4px;padding:.25rem .6rem;cursor:pointer}.auth-view{max-width:20rem;margin:2rem auto;display:flex;flex-direction:column;gap:.75rem}.auth-form{display:flex;flex-direction:column;gap:.5rem}.auth-form input{padding:.5rem;font:inherit}.auth-switch{background:transparent;border:none;color:#2f6fed;cursor:pointer;text-decoration:underline}.view-switch button{padding:.5rem 1rem;border:1px solid #ccc;background:transparent;cursor:pointer}.view-switch button.active{background:#2f6fed;color:#fff;border-color:#2f6fed}.home-toolbar{display:flex;gap:1rem;align-items:center;margin:.75rem 0}.quantity-filter{display:flex;gap:.25rem;margin-bottom:.5rem}.quantity-filter button{padding:.25rem .9rem;border:1px solid #ccc;background:transparent;border-radius:4px;cursor:pointer}.quantity-filter button.active{background:#2f6fed;color:#fff;border-color:#2f6fed}.quantity-filter.muted,button.muted{opacity:.45}.category{margin-bottom:1.25rem}.category-header{display:flex;align-items:center;gap:.5rem;border-bottom:1px solid #ccc}.category-header h2{margin:.25rem 0;font-size:1.1rem;flex:1}.category-header button,.item-actions button,.quantity-stepper button{background:transparent;border:1px solid #bbb;border-radius:4px;cursor:pointer;font-size:1rem;line-height:1.4}.category-header button:hover,.item-actions button:hover,.quantity-stepper button:hover{border-color:#2f6fed}.item-list{list-style:none;margin:0;padding:0}.item-row{padding:.35rem 0}.row-main{display:flex;align-items:center;gap:.5rem;flex-wrap:nowrap}.item-row.editing>.row-main{flex-wrap:wrap}.sub-item-list{list-style:none;margin:.15rem 0 0;padding-left:1.75rem}.sub-item{padding:.2rem 0}.context-item>.row-main{opacity:.55}.item-row .item-name{flex:1 1 8rem;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;user-select:none;-webkit-user-select:none}.title-editor{flex:1 1 8rem;font:inherit}.step-button{width:2.2rem;min-height:2rem;margin-left:.9rem}.quantity-value{min-width:3rem;border:none!important;background:transparent;font:inherit;cursor:pointer;text-decoration:underline dotted;text-align:right;white-space:nowrap}.more-button{border:none!important;background:transparent;padding:0 .3rem;font-size:1.1rem;opacity:.6}.quantity-edit-cluster{display:inline-flex;gap:.25rem;align-items:center}.quantity-editor{width:3.5rem;font:inherit}.item-note{opacity:.7}.hidden-item>.row-main{opacity:.45}.drag-handle{border:none;background:transparent;cursor:grab;font-size:1rem;padding:0 .25rem;touch-action:none}.drag-handle:active{cursor:grabbing}.item-row.dragging,.category.dragging{opacity:.5}.checked-item>.row-main{opacity:.45}.checked-item>.row-main .item-name{text-decoration:line-through}.shop-check{display:inline-flex;align-items:center;gap:.5rem;flex:1 1 8rem;cursor:pointer}.shop-quantity{white-space:nowrap;opacity:.8}.quantity-stepper,.item-actions{display:inline-flex;gap:.25rem;align-items:center}.edit-actions{flex-basis:100%;justify-content:center;flex-wrap:wrap;margin-top:.35rem}.hide-durations{display:inline-flex;gap:.2rem;align-items:center;flex-wrap:wrap}.hide-durations button{background:transparent;border:1px solid #bbb;border-radius:4px;cursor:pointer;font-size:.8rem;padding:.1rem .35rem}.hide-durations button:hover{border-color:#2f6fed}.add-toolbar{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:.75rem 0 .25rem;padding-bottom:.5rem;border-bottom:1px solid #ccc}.add-item-form,.add-category-form{display:flex;gap:.5rem}.clearable-input{position:relative;display:inline-flex;align-items:center}.clearable-input input{padding-right:1.6rem}.clearable-input .clear-search{position:absolute;right:.15rem;border:none;background:transparent;color:#666;cursor:pointer;font-size:.8rem;line-height:1;padding:.2rem .35rem}
