:root{--bg:#f6f7f4;--panel:#fff;--text:#1d2420;--muted:#6b766f;--border:#dde2dc;--accent:#2f7d4f;--accent-text:#fff;--danger:#b3362e;--hover:#eef1ec;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:Segoe UI,system-ui,sans-serif;font-size:15px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#161a17;--panel:#1f2521;--text:#e6ebe7;--muted:#94a09a;--border:#323a35;--accent:#4fae78;--accent-text:#0e1511;--danger:#e0675e;--hover:#28302b}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}button,input,select{font:inherit;color:inherit}input,select{background:var(--panel);border:1px solid var(--border);border-radius:6px;min-width:0;padding:6px 10px}input:focus-visible,select:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button{background:var(--panel);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:6px 12px}button:hover:not(:disabled){background:var(--hover)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}button.primary:hover:not(:disabled){filter:brightness(1.08);background:var(--accent)}button.danger{color:var(--danger);border-color:var(--danger)}button.icon,button.name,button.text,button.link{background:0 0;border:none}button.icon{color:var(--muted);padding:2px 8px;font-size:1.1rem;line-height:1}button.link{color:var(--accent);text-align:left;padding:8px 4px}.app{grid-template-columns:240px 1fr;height:100vh;display:grid}.sidebar{background:var(--panel);border-right:1px solid var(--border);flex-direction:column;gap:8px;padding:16px 12px;display:flex;overflow-y:auto}.sidebar h2,.modal h2{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 4px 4px;font-size:.8rem}.sidebar ul,.modal ul,.group ul{margin:0;padding:0;list-style:none}.sidebar li{border-radius:6px;align-items:center;display:flex}.sidebar li.active{background:var(--hover);font-weight:600}.sidebar li button.name{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;padding:8px;overflow:hidden}.sidebar li button.icon{visibility:hidden}.sidebar li:hover button.icon,.sidebar li:focus-within button.icon{visibility:visible}.sidebar li>input{flex:1}.confirm{gap:6px;padding:4px;display:flex}.new-list{gap:6px;display:flex}.new-list input{flex:1}main{width:100%;max-width:760px;padding:24px 32px;overflow-y:auto}.title-row{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.title-row h1{margin:0}.shared-badge{color:var(--accent);border:1px solid var(--accent);vertical-align:middle;border-radius:999px;margin-left:8px;padding:1px 7px;font-size:.7rem;font-weight:500}main h1{margin:0 0 16px;font-size:1.6rem}.item-input{gap:8px;margin-bottom:20px;display:flex;position:relative}.item-input input{flex:1;padding:10px 12px}.suggestions{z-index:5;background:var(--panel);border:1px solid var(--border);border-radius:8px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;top:100%;left:0;right:90px;box-shadow:0 6px 18px #00000026}.suggestions li{cursor:pointer;border-radius:6px;padding:7px 10px}.suggestions li:hover,.suggestions li.active{background:var(--hover)}.group{margin-bottom:18px}.group h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 4px;font-size:.8rem}.item{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:10px;padding:4px 6px;display:flex}.item input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent)}.item button.text{text-align:left;flex:1;padding:6px 0}.item .amount{color:var(--muted);margin-right:4px}.item.editing{padding:8px 0}.item.editing form{flex-wrap:wrap;gap:6px;width:100%;display:flex}.item.editing .qty{width:70px}.item.editing .unit{width:80px}.item.editing .grow{flex:1;min-width:140px}.undo{background:var(--panel);border:1px solid var(--border);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:8px 8px 8px 14px;display:flex;position:sticky;bottom:12px;box-shadow:0 6px 18px #00000026}.empty{color:var(--muted)}.modal-backdrop{z-index:10;background:#00000073;place-items:center;display:grid;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:10px;width:min(460px,92vw);max-height:85vh;padding:20px;display:flex;overflow-y:auto}.modal li{align-items:center;gap:4px;margin-bottom:6px;display:flex}.modal li input{flex:1}.modal.wide{width:min(560px,92vw)}.modal textarea{font:inherit;color:inherit;background:var(--panel);border:1px solid var(--border);resize:vertical;border-radius:6px;padding:8px 10px}.modal code{background:var(--hover);border-radius:4px;padding:1px 5px}.switch{align-items:center;gap:8px;font-size:.95rem;display:flex}.switch input{width:18px;height:18px;accent-color:var(--accent)}.modal ul.off{opacity:.55}.stack label.check{color:var(--text);flex-direction:row;align-items:center;gap:8px;font-size:.9rem}.modal label.file{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.stack{flex-direction:column;gap:10px;display:flex}.stack label{color:var(--muted);flex-direction:column;gap:4px;font-size:.85rem;display:flex}.row{gap:8px;display:flex}.error{color:var(--danger);margin:0;font-size:.9rem}button.link.sync-error{color:var(--danger)}button.link.sync-off{color:var(--muted)}.hint{color:var(--muted);margin:0;font-size:.85rem}.modal .close{align-self:flex-end}@media (hover:none){.sidebar li button.icon{visibility:visible}}@media (width<=640px){.app{grid-template-rows:auto 1fr;grid-template-columns:1fr;height:auto;min-height:100vh}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:center;gap:4px 12px;padding:12px}.sidebar h2,.sidebar>ul{flex-basis:100%}.sidebar>ul{gap:4px;display:flex;overflow-x:auto}.sidebar .new-list{flex:160px}button.link{padding:8px 0}.sidebar>ul>li{flex:none}main{padding:16px}input,select{font-size:16px}}.presence{min-height:1.2em;margin:-8px 0 14px}.presence p{color:var(--muted);margin:2px 0;font-size:.9rem}.draft{color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;font-style:italic}.caret{background:var(--accent);vertical-align:text-bottom;width:2px;height:1em;margin-left:2px;animation:1s steps(2,start) infinite blink;display:inline-block}@keyframes blink{to{visibility:hidden}}@media (prefers-reduced-motion:reduce){.caret{animation:none}}.item.remote-edit{background:color-mix(in srgb, var(--accent) 12%, transparent);border-radius:6px}.editing-by{color:var(--muted);flex-basis:100%;padding:0 0 4px 28px;font-size:.85rem}
