:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color-scheme:light dark;color:var(--color-ink);background:var(--color-background);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;font-weight:400;--color-background: #f5f2eb;--color-ink: #242820;--color-muted: #686b62;--color-green: #4c6848;--color-green-dark: #354c32;--color-accent-text: #354c32;--color-button-hover: #354c32;--color-nav-active: #e8eee4;--color-paper: #fffefa;--color-input: #ffffff;--color-line: #e8e5dc;--color-soft-border: #dcded4;--color-control-border: #b6b9ad;--color-soft: #edf2e9;--color-soft-hover: #e9eee5;--color-control: #f1efe9;--color-danger-background: #f9e9e6;--color-success-background: #e8efe5;--color-danger: #a63e35;--color-on-accent: #fffefa;--color-overlay: rgb(36 40 32 / 42%);--color-shadow: rgb(36 40 32 / 18%);--color-shadow-soft: rgb(36 40 32 / 16%);--color-shadow-small: rgb(36 40 32 / 10%);--color-focus-ring: rgb(76 104 72 / 12%);--color-bottom-nav: rgb(255 254 250 / 94%);--color-badge: #d64747;--color-image-placeholder: #f1efe9;--color-transparent: transparent}:root[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark;--color-background: #303832;--color-ink: #e3e8e1;--color-muted: #b0bbb1;--color-green: #4c6848;--color-green-dark: #a9bea4;--color-accent-text: #a9bea4;--color-button-hover: #354c32;--color-nav-active: #424e45;--color-paper: #3b453e;--color-input: #343d37;--color-line: #515e54;--color-soft-border: #59665c;--color-control-border: #89968b;--color-soft: #424e45;--color-soft-hover: #4a584c;--color-control: #343d37;--color-danger-background: #503c39;--color-success-background: #3c4b3e;--color-danger: #f0aaa2;--color-on-accent: #edf1e9;--color-overlay: rgb(8 12 9 / 68%);--color-shadow: rgb(0 0 0 / 32%);--color-shadow-soft: rgb(0 0 0 / 28%);--color-shadow-small: rgb(0 0 0 / 20%);--color-focus-ring: rgb(139 170 132 / 24%);--color-bottom-nav: rgb(51 60 54 / 96%);--color-badge: #ef7777;--color-image-placeholder: #343d37}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--color-background: #303832;--color-ink: #e3e8e1;--color-muted: #b0bbb1;--color-green: #4c6848;--color-green-dark: #a9bea4;--color-accent-text: #a9bea4;--color-button-hover: #354c32;--color-nav-active: #424e45;--color-paper: #3b453e;--color-input: #343d37;--color-line: #515e54;--color-soft-border: #59665c;--color-control-border: #89968b;--color-soft: #424e45;--color-soft-hover: #4a584c;--color-control: #343d37;--color-danger-background: #503c39;--color-success-background: #3c4b3e;--color-danger: #f0aaa2;--color-on-accent: #edf1e9;--color-overlay: rgb(8 12 9 / 68%);--color-shadow: rgb(0 0 0 / 32%);--color-shadow-soft: rgb(0 0 0 / 28%);--color-shadow-small: rgb(0 0 0 / 20%);--color-focus-ring: rgb(139 170 132 / 24%);--color-bottom-nav: rgb(51 60 54 / 96%);--color-badge: #ef7777;--color-image-placeholder: #343d37}}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{width:min(100% - 32px,760px);min-height:100vh;margin:0 auto;padding:20px 0 56px}.app-shell--with-nav{padding-bottom:calc(92px + env(safe-area-inset-bottom))}.app-header,.page-heading,.list-heading,.account-menu,.install-banner{display:flex;align-items:center;justify-content:space-between}.app-header{min-height:48px;margin-bottom:48px}.wordmark{color:var(--color-ink);font-size:1.65rem;font-weight:800;letter-spacing:-.07em;text-decoration:none}.wordmark span{color:var(--color-accent-text)}.account-menu{gap:14px;color:var(--color-muted);font-size:.84rem}.settings-button{display:grid;width:34px;height:34px;place-items:center;border:1px solid var(--color-line);border-radius:50%;background:var(--color-paper);color:var(--color-green-dark);font-size:1rem}.settings-button:hover{border-color:var(--color-green);background:var(--color-soft)}.page-section{max-width:640px;margin:0 auto}.page-heading{align-items:end;margin-bottom:28px}.eyebrow{margin:0 0 7px;color:var(--color-accent-text);font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(2.1rem,8vw,2.8rem);letter-spacing:-.055em;line-height:1.05}h2{margin-bottom:12px;font-size:1rem;letter-spacing:-.02em}.item-count,.item-meta{color:var(--color-muted);font-size:.82rem}.add-item-form{display:grid;gap:9px}.add-item-form__main{display:flex;gap:9px}.add-item-form input{min-width:0;flex:1;border:1px solid var(--color-line);border-radius:14px;background:var(--color-paper);padding:14px 16px;color:var(--color-ink);outline:none}.add-item-form input:focus{border-color:var(--color-green);box-shadow:0 0 0 3px var(--color-focus-ring)}.add-item-details summary{width:fit-content;color:var(--color-accent-text);cursor:pointer;font-size:.84rem;font-weight:650}.add-item-details__fields{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:10px;margin-top:12px}.add-item-details__fields label{display:grid;gap:6px;color:var(--color-muted);font-size:.78rem}.add-item-details__fields input{width:100%;padding:10px 12px;font-size:.88rem}.button{border:0;border-radius:13px;background:var(--color-green);padding:0 19px;color:var(--color-on-accent);font-weight:700;transition:background .12s ease,transform .12s ease}.button:hover:not(:disabled){background:var(--color-button-hover)}.button:active:not(:disabled){transform:translateY(1px)}.button--small{min-height:38px;font-size:.85rem}.button--wide{width:100%;min-height:50px;margin-top:16px}.quick-add{margin:30px 0}.quick-add__items{display:flex;flex-wrap:wrap;gap:8px}.chip{min-height:37px;border:1px solid var(--color-soft-border);border-radius:999px;background:var(--color-transparent);padding:0 13px;color:var(--color-ink);font-size:.83rem}.chip:hover:not(:disabled){border-color:var(--color-green);background:var(--color-soft-hover)}.list-heading{margin-bottom:8px;padding-bottom:10px;border-bottom:1px solid var(--color-line)}.list-heading h2{margin:0}.text-button{border:0;background:var(--color-transparent);padding:7px 0;color:var(--color-accent-text);font-size:.85rem;font-weight:650}.text-button:hover:not(:disabled){color:var(--color-green-dark);text-decoration:underline}.shopping-list{margin:0;padding:0;list-style:none}.shopping-item{display:flex;min-height:66px;align-items:center;gap:13px;border-bottom:1px solid var(--color-line)}.check-button{display:grid;width:24px;height:24px;flex:0 0 24px;place-items:center;border:1.5px solid var(--color-control-border);border-radius:50%;background:var(--color-transparent);color:var(--color-on-accent);font-size:.78rem;font-weight:800}.check-button:hover:not(:disabled){border-color:var(--color-green)}.check-button--checked{border-color:var(--color-green);background:var(--color-green)}.shopping-item__content{display:grid;min-width:0;gap:4px}.shopping-item__name{overflow-wrap:anywhere;font-weight:620}.shopping-item__details{color:var(--color-muted);font-size:.78rem;overflow-wrap:anywhere}.shopping-list--bought .shopping-item__name{color:var(--color-muted);text-decoration:line-through}.bought-section{margin-top:30px}.empty-state{padding:32px 16px;color:var(--color-muted);text-align:center}.error-message,.success-message{border-radius:11px;margin:14px 0;padding:11px 13px;font-size:.88rem;overflow-wrap:anywhere}.error-message{background:var(--color-danger-background);color:var(--color-danger)}.success-message{background:var(--color-success-background);color:var(--color-green-dark)}.login-page{display:grid;min-height:100svh;align-items:center}.login-card{width:min(100%,390px);justify-self:center;border:1px solid var(--color-line);border-radius:24px;background:var(--color-paper);padding:34px;text-align:center}.brand-mark{display:grid;width:58px;height:58px;place-items:center;border-radius:19px;margin:0 auto 22px;background:var(--color-green);color:var(--color-on-accent);font-size:1.7rem;font-weight:800}.login-card h1{margin-bottom:10px}.nickname-card h1{margin-bottom:10px;font-size:clamp(1.8rem,7vw,2.35rem)}.nickname-card>label,.nickname-dialog>label{display:block;margin-bottom:7px;text-align:left;font-size:.88rem;font-weight:650}.nickname-input{width:100%;min-height:46px;border:1px solid var(--color-line);border-radius:12px;background:var(--color-input);padding:11px 13px;color:var(--color-ink);outline:none}.nickname-input:focus{border-color:var(--color-green);box-shadow:0 0 0 3px var(--color-focus-ring)}.login-description{margin-bottom:18px;color:var(--color-muted);line-height:1.55}.modal-backdrop{position:fixed;z-index:20;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:var(--color-overlay);padding:20px}.nickname-dialog{display:grid;width:min(100%,400px);gap:12px;border:1px solid var(--color-line);border-radius:20px;background:var(--color-paper);padding:24px;box-shadow:0 20px 70px var(--color-shadow)}.nickname-dialog h2{margin:0;font-size:1.3rem}.nickname-dialog__actions{display:flex;justify-content:end;gap:10px;margin-top:6px}.nickname-dialog__actions .button{min-height:42px}.install-banner{gap:12px;border:1px solid var(--color-line);border-radius:14px;margin-bottom:24px;background:var(--color-paper);padding:12px 14px}.push-notifications{margin:-30px 0 24px}.push-notifications__message{margin:-30px 0 24px;text-align:center}.push-notification-banner{position:fixed;z-index:30;top:calc(12px + env(safe-area-inset-top));left:50%;display:grid;width:min(100% - 32px,520px);gap:3px;transform:translate(-50%);border:1px solid var(--color-line);border-radius:14px;background:var(--color-paper);padding:13px 16px;box-shadow:0 8px 28px var(--color-shadow-soft);animation:push-banner-in .16s ease-out}.push-notification-banner span{color:var(--color-muted);font-size:.88rem;line-height:1.4}@keyframes push-banner-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.card{border:1px solid var(--color-line);border-radius:17px;background:var(--color-paper);padding:17px}.post-form,.feedback-form{display:grid;gap:14px;margin-bottom:28px}.post-form textarea,.post-form input,.feedback-form textarea{width:100%;border:1px solid var(--color-line);border-radius:12px;background:var(--color-input);padding:12px 13px;color:var(--color-ink);outline:none;resize:vertical}.post-form textarea:focus,.post-form input:focus,.feedback-form textarea:focus{border-color:var(--color-green);box-shadow:0 0 0 3px var(--color-focus-ring)}.segmented-control{display:inline-flex;width:fit-content;gap:4px;border-radius:11px;background:var(--color-control);padding:4px}.segmented-control button{border:0;border-radius:8px;background:var(--color-transparent);padding:8px 13px;color:var(--color-muted);font-size:.85rem;font-weight:650}.segmented-control .segmented-control__active{background:var(--color-paper);color:var(--color-ink);box-shadow:0 1px 3px var(--color-shadow-small)}.field-hint{display:block;margin:0 0 7px;color:var(--color-muted);font-size:.78rem}.form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}.post-list,.request-list,.feedback-list{display:grid;gap:12px}.post-card{padding:17px}.post-card__header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.post-card__header>div{display:grid;gap:4px}.post-card__header>.post-card__actions{display:flex;align-items:center;justify-content:end;flex-wrap:wrap;gap:8px}.pinned-label{border-radius:999px;background:var(--color-soft);padding:5px 9px;color:var(--color-green-dark);font-size:.75rem;font-weight:650;white-space:nowrap}.post-card__message,.feedback-message p{margin-bottom:0;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}.poll h2{margin-bottom:13px;font-size:1.12rem}.poll__options{display:grid;gap:8px;margin-bottom:11px}.poll-option{display:flex;min-height:43px;align-items:center;justify-content:space-between;gap:12px;border:1px solid var(--color-line);border-radius:11px;background:var(--color-input);padding:9px 12px;color:var(--color-ink);text-align:left}.poll-option:hover:not(:disabled){border-color:var(--color-green)}.poll-option--selected{border-color:var(--color-green);background:var(--color-soft)}.poll-option__count{display:grid;min-width:24px;height:24px;place-items:center;border-radius:999px;background:var(--color-control);color:var(--color-muted);font-size:.78rem}.section-subheading{margin-top:30px}.key-callout{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;margin-bottom:29px}.key-callout h2{margin-bottom:4px}.key-callout p{margin-bottom:0;line-height:1.45}.key-callout__icon{display:grid;width:45px;height:45px;grid-row:span 2;place-items:center;border-radius:14px;background:var(--color-soft);color:var(--color-accent-text);font-size:1.45rem}.key-callout>.button{min-height:44px;grid-column:1 / -1}.request-card{display:grid;gap:12px}.request-card__main{display:flex;align-items:center;justify-content:space-between;gap:12px}.request-card__details{display:grid;gap:5px}.request-card__actions{display:flex;flex-wrap:wrap;justify-content:end;gap:8px}.request-card__replies{display:grid;gap:8px;border-top:1px solid var(--color-line);padding-top:12px}.request-card__replies ul{display:grid;gap:8px;margin:0;padding:0;list-style:none}.request-card__replies li{display:flex;flex-wrap:wrap;gap:4px 8px;color:var(--color-muted);font-size:.88rem}.request-card__replies li strong{color:var(--color-ink)}.button--secondary{border:1px solid var(--color-line);background:var(--color-transparent);color:var(--color-ink)}.button--secondary:hover:not(:disabled){border-color:var(--color-green);background:var(--color-soft)}.history-section{margin-top:32px}.history-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.history-list li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--color-line);padding:12px 0;font-size:.88rem}.feedback-form>label{font-size:.92rem;font-weight:650}.feedback-message{display:grid;gap:10px}.feedback-message .button{min-height:38px;justify-self:end}.feedback-resolved{margin-top:24px}.feedback-resolved summary{width:fit-content;color:var(--color-accent-text);cursor:pointer;font-size:.92rem;font-weight:650}.feedback-resolved>.feedback-list{margin-top:12px}.defect-form,.defect-form label{display:grid;gap:12px}.defect-form{margin-bottom:24px}.defect-form h2{margin:0}.defect-form label{color:var(--color-ink);font-size:.88rem;font-weight:650}.defect-form input:not([type=file]),.defect-form textarea,.defect-note-form input,.defect-status select{width:100%;min-width:0;border:1px solid var(--color-line);border-radius:12px;background:var(--color-input);padding:11px 13px;color:var(--color-ink);outline:none}.defect-form input[type=file]{width:100%;font-size:.84rem;font-weight:400}.defect-form textarea{resize:vertical}.defect-form input:focus,.defect-form textarea:focus,.defect-note-form input:focus,.defect-status select:focus{border-color:var(--color-green);box-shadow:0 0 0 3px var(--color-focus-ring)}.defect-form__submit{min-height:44px}.defect-filter{margin-bottom:18px}.defect-list{display:grid;gap:12px}.defect-card{display:grid;gap:14px}.defect-card__heading{display:flex;align-items:start;justify-content:space-between;gap:12px}.defect-card__heading h2{margin-bottom:5px;font-size:1.12rem;overflow-wrap:anywhere}.defect-card__heading .item-meta{margin-bottom:0}.defect-card__delete{flex:0 0 auto}.defect-card__description{margin:0;line-height:1.55;overflow-wrap:anywhere;white-space:pre-wrap}.defect-photos{display:flex;flex-wrap:wrap;gap:8px}.defect-photos a{display:block;width:88px;height:88px;overflow:hidden;border-radius:12px;background:var(--color-image-placeholder)}.defect-photos img{width:100%;height:100%;object-fit:cover}.defect-status{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--color-muted);font-size:.84rem}.defect-status select{width:auto;padding:8px 10px;text-transform:capitalize}.defect-notes{display:grid;gap:10px;margin:0;padding:12px 0 0;border-top:1px solid var(--color-line);list-style:none}.defect-notes li{display:grid;gap:4px}.defect-notes p{margin:0;line-height:1.45;overflow-wrap:anywhere;white-space:pre-wrap}.defect-note-form{display:flex;gap:8px}.defect-note-form .button{flex:0 0 auto}.bottom-nav{position:fixed;z-index:5;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--color-line);background:var(--color-bottom-nav);padding:8px max(8px,calc((100vw - 600px)/2)) calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.bottom-nav__item{display:grid;min-width:0;justify-items:center;gap:3px;border:0;background:var(--color-transparent);padding:4px 2px;color:var(--color-muted);font-size:.7rem;font-weight:600}.bottom-nav__item--active{color:var(--color-green-dark)}.bottom-nav__icon{position:relative;display:grid;width:31px;height:26px;place-items:center;border-radius:10px;font-size:1.2rem;line-height:1}.bottom-nav__badge{position:absolute;top:0;right:0;width:10px;height:10px;border:2px solid var(--color-paper);border-radius:50%;background:var(--color-badge)}.bottom-nav__item--active .bottom-nav__icon{background:var(--color-nav-active)}.install-banner p{margin:0;font-size:.84rem;line-height:1.5}.icon-button{width:32px;height:32px;flex:0 0 32px;border:0;border-radius:50%;background:var(--color-control);color:var(--color-muted);font-size:1.25rem}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}@media(max-width:520px){.app-shell{width:min(100% - 28px,760px);padding-top:15px}.app-header{margin-bottom:38px}.account-name{display:none}.bottom-nav__item{font-size:.62rem}.login-card{padding:28px 22px}.card{padding:14px}.form-actions{align-items:stretch;flex-direction:column}.form-actions .button{min-height:42px}.request-card{gap:12px}.request-card__main{align-items:stretch;flex-direction:column}.request-card__actions{justify-content:start}.request-card__main .button{min-height:42px}.history-list li{align-items:start;flex-direction:column}}
