:root{--primary: #2563EB;--primary-dark: #1D4ED8;--danger: #DC2626;--danger-light: #FEE2E2;--success: #16A34A;--bg: #F3F4F6;--surface: #FFFFFF;--border: #E5E7EB;--text: #111827;--text-muted: #6B7280;--text-done: #9CA3AF;--radius: 12px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06);--shadow-md: 0 4px 6px rgba(0,0,0,.07), 0 2px 4px rgba(0,0,0,.05)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none}.app{display:flex;flex-direction:column;height:100dvh;max-width:640px;margin:0 auto}.header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px env(safe-area-inset-top,0px);padding-top:calc(16px + env(safe-area-inset-top,0px));gap:12px;flex-shrink:0}.header h1{font-size:28px;font-weight:800;color:var(--text);flex:1}.header-actions{display:flex;align-items:center;gap:10px}.btn-icon{background:none;border:none;cursor:pointer;padding:6px;border-radius:8px;color:var(--text-muted);font-size:18px;display:flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}.btn-icon:hover{background:var(--bg)}.login-page{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:24px;background:var(--bg)}.login-card{width:100%;max-width:360px;background:var(--surface);border-radius:var(--radius);padding:32px 24px;box-shadow:var(--shadow-md)}.login-card h1{font-size:24px;font-weight:700;text-align:center;margin-bottom:8px}.login-card .subtitle{text-align:center;color:var(--text-muted);font-size:14px;margin-bottom:28px}.login-icon{font-size:48px;text-align:center;margin-bottom:16px}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:600;color:var(--text-muted);margin-bottom:6px;text-transform:uppercase;letter-spacing:.05em}.form-group input{width:100%;padding:13px 14px;border:1.5px solid var(--border);border-radius:10px;font-size:16px;color:var(--text);background:var(--surface);transition:border-color .15s;-webkit-appearance:none}.form-group input:focus{outline:none;border-color:var(--primary)}.btn-primary{width:100%;padding:14px;background:var(--primary);color:#fff;border:none;border-radius:10px;font-size:16px;font-weight:600;cursor:pointer;transition:background .15s,transform .1s;min-height:50px}.btn-primary:hover{background:var(--primary-dark)}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.error-msg{color:var(--danger);font-size:14px;text-align:center;margin-top:12px;padding:10px;background:var(--danger-light);border-radius:8px}.list-container{flex:1;overflow-y:auto;padding:12px}.add-form{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:12px;overflow:visible;position:relative}.add-form-inner{display:flex;align-items:center;gap:8px;padding:10px 10px 10px 14px}.add-input{flex:1;border:none;background:transparent;font-size:16px;color:var(--text);min-height:36px;outline:none;-webkit-appearance:none}.add-input::placeholder{color:var(--text-muted)}.btn-add{background:var(--primary);color:#fff;border:none;border-radius:8px;width:36px;height:36px;font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .15s,transform .1s}.btn-add:hover{background:var(--primary-dark)}.btn-add:active{transform:scale(.92)}.btn-add:disabled{opacity:.4;cursor:not-allowed;transform:none}.suggestions{position:absolute;top:100%;left:0;right:0;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-md);z-index:100;overflow:hidden;margin-top:4px}.suggestion-item{padding:13px 16px;cursor:pointer;font-size:15px;color:var(--text);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:10px}.suggestion-item:last-child{border-bottom:none}.suggestion-item:hover,.suggestion-item.active{background:var(--bg)}.suggestion-icon{font-size:13px;color:var(--text-muted)}.section-header{display:flex;align-items:center;justify-content:space-between;padding:8px 4px;margin:8px 0 6px}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.btn-clear{background:none;border:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--danger);padding:4px 8px;border-radius:6px;transition:background .15s}.btn-clear:hover{background:var(--danger-light)}.items-list{display:flex;flex-direction:column;gap:6px}.item-wrapper{position:relative;border-radius:var(--radius);overflow:hidden}.item-delete-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--danger);display:flex;align-items:center;justify-content:flex-end;padding-right:20px;border-radius:var(--radius);border:none;cursor:pointer;width:100%}.item-delete-bg span{color:#fff;font-size:14px;font-weight:600}.item-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);display:flex;align-items:center;gap:12px;padding:14px;cursor:default;-webkit-user-select:none;user-select:none;position:relative;will-change:transform}.item-card.done{background:#fafafa}.checkbox-btn{flex-shrink:0;width:28px;height:28px;border-radius:50%;border:2px solid var(--border);background:var(--surface);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s,background .15s;-webkit-tap-highlight-color:transparent}.item-card.done .checkbox-btn{border-color:var(--success);background:var(--success)}.checkmark{display:none;color:#fff;font-size:14px;font-weight:700}.item-card.done .checkmark{display:block}.item-name{flex:1;font-size:16px;color:var(--text);word-break:break-word}.item-card.done .item-name{text-decoration:line-through;color:var(--text-done)}.btn-delete-desktop{display:none;background:none;border:none;cursor:pointer;color:var(--danger);font-size:16px;padding:4px 6px;border-radius:6px;line-height:1;flex-shrink:0;opacity:.6;transition:opacity .15s,background .15s}.btn-delete-desktop:hover{opacity:1;background:var(--danger-light)}@media (hover: hover) and (pointer: fine){.item-card:hover .btn-delete-desktop{display:block}}.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted)}.empty-state .emoji{font-size:40px;margin-bottom:12px}.empty-state p{font-size:15px}.sync-indicator{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:500;color:var(--text-muted);white-space:nowrap}.sync-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.sync-dot.synced{background:#22c55e}.sync-dot.syncing{background:#f59e0b;animation:pulse 1s infinite}.sync-dot.error{background:var(--danger)}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.stale-warning{background:#fef3c7;border:1px solid #FDE68A;border-radius:10px;padding:10px 14px;font-size:13px;color:#92400e;margin-bottom:10px;display:flex;align-items:center;gap:8px}.spinner{display:flex;justify-content:center;padding:40px}.spinner:after{content:"";width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.item-card{transition:transform .15s ease}.item-card.swiping{transition:none}.refresh-bar{flex-shrink:0;padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px))}.btn-refresh{width:100%;padding:13px;background:var(--primary);border:none;border-radius:10px;font-size:22px;color:#fff;cursor:pointer;transition:background .15s,transform .1s,opacity .3s;display:flex;align-items:center;justify-content:center}.btn-refresh:hover{background:var(--primary-dark)}.btn-refresh:active{transform:scale(.98)}.btn-refresh:disabled{opacity:.45;cursor:not-allowed;transform:none}.spin-icon{display:inline-block;animation:spin .8s linear infinite}
