body{background:var(--tg-theme-bg-color,#fff);color:var(--tg-theme-text-color,#000);margin:0;font-family:system-ui,sans-serif;font-size:16px}main{padding:12px 16px}button{font:inherit;cursor:pointer;white-space:nowrap;background:var(--tg-theme-button-color,#2481cc);color:var(--tg-theme-button-text-color,#fff);border:0;border-radius:8px;padding:8px 14px;font-size:14px}.tabs,.add{gap:8px;margin-bottom:12px;display:flex}.tab{background:var(--tg-theme-secondary-bg-color,#eee);color:var(--tg-theme-text-color,#000)}.tab.active{background:var(--tg-theme-button-color,#2481cc);color:var(--tg-theme-button-text-color,#fff)}.chips{gap:8px;margin-bottom:12px;padding-bottom:4px;display:flex;overflow-x:auto}.backlog-toggle{margin-bottom:12px}.add input{min-width:0;font:inherit;background:var(--tg-theme-secondary-bg-color,#f2f2f2);color:var(--tg-theme-text-color,#000);border:0;border-radius:8px;flex:1;padding:8px 10px}.tasks{margin:0;padding:0;list-style:none}.tasks li{border-bottom:1px solid var(--tg-theme-secondary-bg-color,#eee);align-items:center;gap:12px;padding:10px 0;display:flex}.task{cursor:pointer;flex:1;align-items:flex-start;gap:10px;min-width:0;display:flex}.task input{width:20px;height:20px;accent-color:var(--tg-theme-button-color,#2481cc);flex-shrink:0;margin:1px 0 0}.task-body{flex-direction:column;gap:2px;display:flex}.task-meta{font-size:13px}.done .task-title{opacity:.6;text-decoration:line-through}.hint{color:var(--tg-theme-hint-color,#999)}.error{color:#d33}.banner{border:2px solid var(--tg-theme-button-color,#2481cc);background:var(--tg-theme-secondary-bg-color,#f2f2f2);border-radius:12px;margin-bottom:16px;padding:16px}.banner strong{font-size:18px;display:block}.banner p{color:var(--tg-theme-text-color,#000);margin:8px 0 12px}.banner button{width:100%;padding:10px;font-size:16px}.loader{border:3px solid var(--tg-theme-secondary-bg-color,#eee);border-top-color:var(--tg-theme-button-color,#2481cc);opacity:0;border-radius:50%;width:32px;height:32px;margin:40vh auto 0;animation:.8s linear infinite spin,.15s ease-out .2s forwards appear}.loader-inline{margin:48px auto}@keyframes spin{to{transform:rotate(360deg)}}@keyframes appear{to{opacity:1}}
