:root{--accent:#2f7d4f;--accent-soft:#e3f1e8;--bg:#f4f6f3;--surface:#fff;--surface-2:#f8faf7;--text:#1c2b1f;--muted:#66756a;--border:#e1e7e1;--danger:#b3261e;--shadow:0 1px 3px #1428190f, 0 4px 16px #1428190d;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--accent:#5dbb83;--accent-soft:#1d3326;--bg:#111613;--surface:#1a201c;--surface-2:#202722;--text:#e6ede7;--muted:#93a297;--border:#2b342e;--danger:#ff8a80;--shadow:0 1px 3px #0006}}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,system-ui,Segoe UI,Roboto,sans-serif;font-size:16px}button{font:inherit;color:inherit;cursor:pointer}button:disabled{cursor:default;opacity:.5}a{color:inherit;text-decoration:none}input,select{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;outline:none;width:100%;padding:10px 12px}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}label{color:var(--muted);margin-bottom:12px;font-size:13px;font-weight:500;display:block}label input,label select{margin-top:4px}h1,h2,h3{margin:0}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px}.muted{color:var(--muted)}.small-text{font-size:13px}.hint{color:var(--muted);margin:-2px 0 12px;font-size:13px}.error{color:var(--danger);margin-bottom:10px;font-size:14px}.spacer{flex:1}.empty{text-align:center;color:var(--muted);padding:48px 16px}.empty.small{padding:28px 16px}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px}.btn{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:10px;padding:10px 16px;font-weight:600}.btn:hover:not(:disabled){background:var(--surface-2)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){filter:brightness(1.07);background:var(--accent)}.btn.danger{color:var(--danger)}.btn.small{padding:6px 12px;font-size:14px}.link-btn{color:var(--accent);background:0 0;border:0;padding:6px 0;font-weight:500}.icon-btn{color:var(--muted);background:0 0;border:0;border-radius:8px;padding:8px;line-height:1}.icon-btn:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.icon-btn.small{padding:6px 8px;font-size:14px}.auth{justify-content:center;align-items:center;min-height:100%;padding:20px;display:flex}.auth-card{flex-direction:column;width:min(380px,100%);padding:28px;display:flex}.auth-card .logo{font-size:40px}.auth-card h1{margin:6px 0 4px;font-size:24px}.auth-card p.muted{margin:0 0 20px}.auth-card input{margin-bottom:10px}.auth-card .btn.primary{margin-top:6px;padding:12px}.auth-card .link-btn{margin-top:10px}.app{height:100%;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);width:260px;padding:16px 12px calc(16px + env(safe-area-inset-bottom));flex-direction:column;flex-shrink:0;display:flex;overflow-y:auto}.sidebar-head{justify-content:space-between;align-items:center;padding:4px 8px 16px;display:flex}.brand{font-size:17px;font-weight:700}.close-btn{display:none}.list-nav{flex:1}.nav-label{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 8px 6px;font-size:12px;font-weight:600}.nav-item{border-radius:10px;align-items:center;margin-bottom:2px;display:flex}.nav-item>a,.nav-item>span:first-child{flex:1;align-items:center;gap:8px;min-width:0;padding:10px;display:flex}.nav-item.settings-link{padding:10px}.nav-item:hover{background:var(--surface-2)}.nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.nav-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.badge{background:var(--accent);color:#fff;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600}.nav-actions{padding-right:4px;display:none}.nav-item:hover .nav-actions,.nav-item.active .nav-actions{display:flex}.nav-edit{padding:4px}.nav-edit input{padding:8px 10px}.nav-add{color:var(--accent);text-align:left;background:0 0;border:0;width:100%;padding:10px;font-weight:500}.scrim{display:none}.main{flex:1;min-width:0;overflow-y:auto}.topbar{z-index:5;padding:16px 24px 12px;padding-top:calc(16px + env(safe-area-inset-top));background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(12px);align-items:center;gap:8px;display:flex;position:sticky;top:0}.topbar h1{text-overflow:ellipsis;white-space:nowrap;font-size:26px;font-weight:700;overflow:hidden}.menu-btn{margin-left:-8px;font-size:22px;display:none}.list-layout{padding:0 24px calc(40px + env(safe-area-inset-bottom));align-items:flex-start;gap:24px;display:flex}.list-col{flex:1;min-width:0;max-width:680px}.memory-col{flex-direction:column;flex-shrink:0;gap:16px;width:280px;display:flex;position:sticky;top:76px}.panel-toggle{display:none}.quick-add{margin-bottom:20px;position:relative}.quick-add form{gap:8px;display:flex}.quick-add input{box-shadow:var(--shadow);border-color:#0000;border-radius:12px;padding:12px 14px}.quick-add .btn{border-radius:12px}.suggestions{z-index:10;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);border-radius:12px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;right:0}.suggestions button{text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:8px;width:100%;padding:10px;display:flex}.suggestions button span:nth-last-child(2){flex:1}.suggestions button:hover,.suggestions button.active{background:var(--accent-soft)}.group{margin-bottom:18px}.group-title{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin:0 0 6px 4px;font-size:13px;font-weight:600}.items{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin:0;padding:0;list-style:none;overflow:hidden}.item{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:0 6px 0 12px;display:flex}.item:last-child{border-bottom:0}.check{border:2px solid var(--border);color:#fff;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;padding:0;font-size:14px;font-weight:700;transition:background .15s,border-color .15s;display:flex}.check:hover{border-color:var(--accent)}.item.done .check{background:var(--accent);border-color:var(--accent)}.item-body{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;gap:2px;min-width:0;padding:12px 8px;display:flex}.item-name{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.qty{color:var(--accent);background:var(--accent-soft);border-radius:6px;padding:1px 7px;font-size:13px;font-weight:600}.note{color:var(--muted);font-size:13px}.item.done .item-name{color:var(--muted);text-decoration:line-through}.item.done .qty{color:var(--muted);background:0 0}.item .edit{font-size:18px}.checked-head{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.checked-group .items{opacity:.85}.memory h3{margin-bottom:8px;font-size:15px}.memory ul{margin:0;padding:0;list-style:none}.memory li{align-items:center;gap:6px;padding:3px 0;display:flex}.memory-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.memory .add{color:var(--accent);font-size:16px;font-weight:700}.star{color:var(--muted);background:0 0;border:0;padding:4px;font-size:16px;line-height:1}.star.on{color:#e0a100}.star.big{font-size:24px}.modal-backdrop{z-index:50;background:#00000059;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{width:min(440px,100%);padding:22px}.modal-head{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-head h2{font-size:19px}.row{gap:12px;display:flex}.row label{flex:1;min-width:0}.modal-actions{align-items:center;gap:8px;margin-top:8px;display:flex}.settings{flex-direction:column;gap:16px;max-width:680px;padding:0 24px 40px;display:flex}.settings h2{margin-bottom:14px;font-size:18px}.settings h3{margin:18px 0 8px;font-size:15px}.members{flex-direction:column;gap:10px;margin-bottom:14px;display:flex}.member{align-items:center;gap:10px;display:flex}.avatar{background:var(--accent-soft);width:36px;height:36px;color:var(--accent);border-radius:50%;justify-content:center;align-items:center;font-weight:700;display:flex}.code-row{align-items:center;gap:8px;margin:8px 0;display:flex}.code-row input{flex:1}.code-row code{background:var(--surface-2);border:1px solid var(--border);white-space:nowrap;border-radius:8px;flex:1;min-width:0;padding:9px 10px;overflow-x:auto}code.invite{letter-spacing:.12em;flex:0 auto;font-size:18px;font-weight:700}.steps{margin:0;padding-left:20px;font-size:14px;line-height:1.5}.steps li{margin-bottom:10px}.tokens{margin:0;padding:0;list-style:none}.tokens li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:10px 0;display:flex}.tokens li:last-child{border-bottom:0}.tag{background:var(--surface-2);border:1px solid var(--border);color:var(--muted);border-radius:6px;margin-left:8px;padding:1px 6px;font-size:11px;font-weight:600}@media (width<=1000px){.memory-col{width:100%;display:none;position:static}.memory-col.show{display:flex}.list-layout{flex-direction:column}.list-col{width:100%;max-width:none}.panel-toggle{width:100%;margin-top:4px;display:block}}@media (width<=760px){.sidebar{z-index:40;width:min(300px,85vw);padding-top:calc(16px + env(safe-area-inset-top));transition:transform .22s;position:fixed;top:0;bottom:0;left:0;transform:translate(-100%)}.menu-open .sidebar{transform:none;box-shadow:0 0 40px #0003}.menu-open .scrim{z-index:30;background:#0000004d;display:block;position:fixed;inset:0}.close-btn,.menu-btn{display:inline-flex}.nav-actions{display:flex}.topbar{padding-left:16px;padding-right:16px}.topbar h1{font-size:22px}.list-layout,.settings{padding-left:12px;padding-right:12px}.item-body{padding:14px 8px}.row{flex-direction:column;gap:0}.modal-backdrop{align-items:flex-end;padding:0}.modal{padding-bottom:calc(22px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0}}
