:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#242820;background:#f5f2eb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;font-weight:400;--color-ink: #242820;--color-muted: #777a70;--color-green: #4c6848;--color-green-dark: #354c32;--color-paper: #fffefa;--color-line: #e8e5dc;--color-danger: #a63e35}*{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-green)}.account-menu{gap:14px;color:var(--color-muted);font-size:.84rem}.page-section{max-width:640px;margin:0 auto}.page-heading{align-items:end;margin-bottom:28px}.eyebrow{margin:0 0 7px;color:var(--color-green);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: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 #4c68481f}.button{border:0;border-radius:13px;background:var(--color-green);padding:0 19px;color:#fff;font-weight:700;transition:background .12s ease,transform .12s ease}.button:hover:not(:disabled){background:var(--color-green-dark)}.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 #dcded4;border-radius:999px;background:transparent;padding:0 13px;color:var(--color-ink);font-size:.83rem}.chip:hover:not(:disabled){border-color:var(--color-green);background:#e9eee5}.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:transparent;padding:7px 0;color:var(--color-green);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 #b6b9ad;border-radius:50%;background:transparent;color:#fff;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-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:#f9e9e6;color:var(--color-danger)}.success-message{background:#e8efe5;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:#fff;font-size:1.7rem;font-weight:800}.login-card h1{margin-bottom:10px}.login-description{margin-bottom:18px;color:var(--color-muted);line-height:1.55}.install-banner{gap:12px;border:1px solid var(--color-line);border-radius:14px;margin-bottom:24px;background:var(--color-paper);padding:12px 14px}.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:#fff;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 #4c68481f}.segmented-control{display:inline-flex;width:fit-content;gap:4px;border-radius:11px;background:#f1efe9;padding:4px}.segmented-control button{border:0;border-radius:8px;background: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 #2428201a}.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__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:#fff;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:#edf2e9}.poll-option__count{display:grid;min-width:24px;height:24px;place-items:center;border-radius:999px;background:#f1efe9;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:#edf2e9;color:var(--color-green);font-size:1.45rem}.key-callout>.button{min-height:44px;grid-column:1 / -1}.request-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.request-card__details{display:grid;gap:5px}.button--secondary{border:1px solid var(--color-line);background:transparent;color:var(--color-ink)}.button--secondary:hover:not(:disabled){border-color:var(--color-green);background:#edf2e9}.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}.bottom-nav{position:fixed;z-index:5;right:0;bottom:0;left:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--color-line);background:#fffefaf0;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;justify-items:center;gap:3px;border:0;background: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{display:grid;width:31px;height:26px;place-items:center;border-radius:10px;font-size:1.2rem;line-height:1}.bottom-nav__item--active .bottom-nav__icon{background:#e8eee4}.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:#f1efe9;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}.login-card{padding:28px 22px}.card{padding:14px}.form-actions{align-items:stretch;flex-direction:column}.form-actions .button{min-height:42px}.request-card{align-items:stretch;flex-direction:column}.request-card .button{min-height:42px}.history-list li{align-items:start;flex-direction:column}}
