:root { color-scheme: light; --bg:#f7f5ef; --surface:#fff; --text:#1f211e; --muted:#666b64; --line:#d7d7d0; --strong:#1f4a35; --strong-hover:#173a2a; --danger:#8b2e2e; --focus:#8db7a1; --shadow:0 10px 30px rgba(31,33,30,.08); }
*{box-sizing:border-box} html{min-height:100%;background:var(--bg)} body{margin:0;min-height:100%;color:var(--text);background:var(--bg);font-family:ui-rounded,-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,sans-serif} button,textarea,input{font:inherit} button{-webkit-tap-highlight-color:transparent}.skip-link{position:fixed;left:12px;top:-80px;z-index:100;background:var(--surface);padding:10px;border-radius:8px}.skip-link:focus{top:12px}.app-shell{width:min(100%,720px);margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 18px max(32px,env(safe-area-inset-bottom))}.app-header{display:flex;align-items:end;justify-content:space-between;margin-bottom:24px}.header-meta{display:flex;align-items:center;gap:10px}.eyebrow{margin:0 0 2px;color:var(--muted);font-size:.82rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}h1{margin:0;font-size:clamp(2.5rem,12vw,4.5rem);line-height:.9;letter-spacing:-.06em}.item-count{margin:0;color:var(--muted);font-weight:650}.composer{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:16px;box-shadow:var(--shadow)}.composer label{display:block;margin-bottom:10px;font-weight:750}textarea{width:100%;min-height:92px;resize:vertical;border:1px solid var(--line);border-radius:14px;padding:13px 14px;color:var(--text);background:#fbfbf8;font-size:1.05rem;line-height:1.4}textarea:focus,.inline-editor:focus,button:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.composer-actions{display:flex;gap:14px;align-items:center;justify-content:space-between;margin-top:12px}.input-hint{max-width:390px;margin:0;color:var(--muted);font-size:.82rem;line-height:1.35}.primary-button,.secondary-button,.danger-button,.file-button{display:inline-grid;place-items:center;min-height:46px;border-radius:12px;padding:0 16px;border:1px solid transparent;font-weight:750;cursor:pointer;text-decoration:none}.primary-button{background:var(--strong);color:#fff}.primary-button:hover{background:var(--strong-hover)}.secondary-button,.file-button{background:var(--surface);border-color:var(--line);color:var(--text)}.danger-button{background:transparent;border-color:#d9b8b8;color:var(--danger)}button:disabled{cursor:not-allowed;opacity:.42}.icon-button{width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:var(--surface);font-weight:800}.status-message{min-height:24px;margin:12px 4px 4px;color:var(--strong);font-size:.92rem}.status-message.error{color:var(--danger)}.list-section{margin-top:22px}.section-heading{display:flex;align-items:center;gap:8px;margin:0 2px 9px}.section-heading h2{margin:0;font-size:1rem}.section-count{min-width:24px;padding:2px 7px;border-radius:999px;background:#e6e7e1;color:var(--muted);text-align:center;font-size:.78rem;font-weight:750}.shopping-list{display:grid;gap:8px;margin:0;padding:0;list-style:none}.shopping-item{display:grid;grid-template-columns:44px 44px 1fr 44px;align-items:center;min-height:58px;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:opacity .15s ease,transform .15s ease}.shopping-item[data-checked="true"]{opacity:.66}.shopping-item.dragging{opacity:.75;transform:scale(1.015);box-shadow:var(--shadow);z-index:10}.drag-handle,.delete-button,.item-text{min-height:56px;border:0;background:transparent}.drag-handle{color:#777d75;cursor:grab;touch-action:none;font-size:1.15rem}.check-control{display:grid;place-items:center;min-height:56px;cursor:pointer}.item-checkbox{position:absolute;opacity:0}.custom-checkbox{width:25px;height:25px;border:2px solid #737a72;border-radius:8px;display:grid;place-items:center}.item-checkbox:focus-visible+.custom-checkbox{outline:3px solid var(--focus);outline-offset:2px}.item-checkbox:checked+.custom-checkbox{border-color:var(--strong);background:var(--strong)}.item-checkbox:checked+.custom-checkbox::after{content:'✓';color:#fff;font-size:16px;font-weight:900}.item-text{padding:0 8px;color:var(--text);text-align:left;font-size:1.05rem;cursor:text}.shopping-item[data-checked="true"] .item-text{text-decoration:line-through}.delete-button{color:var(--muted);font-size:1.45rem;cursor:pointer}.inline-editor{width:calc(100% - 8px);min-height:42px;margin-right:8px;border:1px solid var(--strong);border-radius:9px;padding:8px 10px}.empty-state{padding:36px 20px;border:1px dashed #bfc1b9;border-radius:16px;color:var(--muted);text-align:center}.empty-state p{margin:0 0 5px;color:var(--text);font-weight:750}.empty-state span{font-size:.9rem}.completed-section{margin-top:28px}.footer-actions{display:flex;justify-content:space-between;gap:12px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.version{text-align:center;color:var(--muted);font-size:.75rem;margin:24px 0 0}.toast{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));z-index:50;transform:translateX(-50%);display:flex;align-items:center;gap:12px;width:min(calc(100% - 28px),560px);padding:12px 14px;border-radius:14px;background:#20241f;color:#fff;box-shadow:0 14px 45px rgba(0,0,0,.25)}.toast[hidden]{display:none}.toast span{flex:1}.toast button{min-height:40px;border:0;background:transparent;color:#fff;font-weight:800}.toast-close{font-size:1.25rem}dialog{width:min(calc(100% - 32px),430px);border:0;border-radius:18px;padding:0;box-shadow:0 24px 80px rgba(0,0,0,.22)}dialog::backdrop{background:rgba(20,22,20,.45)}.dialog-card{padding:22px}.dialog-card h2{margin:0 0 8px}.dialog-card p{margin:0;color:var(--muted);line-height:1.5}.dialog-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}.dialog-title-row{display:flex;justify-content:space-between;align-items:center}.tool-actions{display:grid;gap:10px;margin-top:18px}.file-button{position:relative}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}details{margin-top:20px}summary{cursor:pointer;font-weight:700}pre{overflow:auto;padding:12px;border-radius:10px;background:#f1f1ec;font-size:.75rem}.is-dragging{overflow:hidden;user-select:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:520px){.composer-actions,.footer-actions,.dialog-actions{align-items:stretch;flex-direction:column}.primary-button,.secondary-button,.danger-button,.file-button{width:100%}.input-hint{order:2}.toast{bottom:max(10px,env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Bloody Dave's Suite presentation layer */
:root{--bg:#f4efe4;--surface:#fffdf8;--text:#1d251f;--muted:#697264;--line:#d9d0bf;--strong:#1d251f;--strong-hover:#101711;--danger:#9d321d;--focus:#d8b47a;--shadow:0 16px 38px rgba(39,51,29,.09)}
body{background:radial-gradient(circle at top right,#dbe7cf 0,transparent 28rem),var(--bg)}
.app-header{align-items:flex-start;border-bottom:3px solid #d87b36;padding-bottom:18px}.suite-kicker{color:#a35522}.app-header h1{font-family:Georgia,serif;font-size:clamp(2.2rem,10vw,3.8rem);letter-spacing:-.04em}.app-header h1 span{color:#d87b36}.suite-tagline{margin:7px 0 0;color:var(--muted);font-size:.88rem}.header-meta{align-items:flex-end}.suite-nav{display:flex;gap:10px;font-size:.78rem}.suite-nav a{color:var(--muted);font-weight:800;text-decoration:none;border-bottom:2px solid transparent;padding-bottom:3px}.suite-nav a:hover,.suite-nav a.current{color:#a35522;border-color:#d87b36}.composer{border-radius:18px}.section-heading h2{font-family:Georgia,serif;color:#1d251f}.primary-button{background:#d87b36;color:#1d251f}.primary-button:hover{background:#bf6225}.item-checkbox:checked+.custom-checkbox{border-color:#d87b36;background:#d87b36}.status-message{color:#a35522}.version{font-size:.78rem}@media(max-width:520px){.header-meta{align-items:flex-start;width:100%;flex-wrap:wrap}.suite-nav{width:100%}}
