:root{--green: #16a34a;--bg: #ffffff;--muted: #6b7280}*{box-sizing:border-box}body{margin:0;font-family:system-ui,sans-serif;background:var(--bg);color:#111}button{font:inherit;cursor:pointer}.app{max-width:640px;margin:0 auto;padding:1rem}.topbar{display:flex;gap:1rem;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #eee}.topbar a{text-decoration:none;color:var(--green);font-weight:600}.topbar .sync{margin-left:auto;color:var(--muted);font-size:.85rem}label{display:block;margin:.5rem 0}label input{display:block;width:100%;padding:.5rem;margin-top:.25rem}.row{display:flex;gap:.5rem;margin-top:1rem}.status{color:var(--muted)}.tabs{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem}.tabs button{padding:.4rem .8rem;border:1px solid #ddd;border-radius:999px;background:#fff}.tabs button.active{background:var(--green);color:#fff;border-color:var(--green)}.items{list-style:none;padding:0;margin:1rem 0}.items li{display:flex;align-items:center;gap:.6rem;padding:.6rem 0;border-bottom:1px solid #f0f0f0}.items li.checked .name{text-decoration:line-through;color:var(--muted)}.items .name{flex:1;text-decoration:none;color:inherit}.items .qty{color:var(--muted)}.badge{font-size:.75rem;background:#ecfdf5;color:var(--green);padding:.1rem .4rem;border-radius:4px}.badge.deal-soon{background:#fef3c7;color:#b45309}.del{border:none;background:none;color:var(--muted)}.fab{position:fixed;right:1.25rem;bottom:1.25rem;width:3rem;height:3rem;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;font-size:1.5rem;text-decoration:none}
