:root{--bg:var(--tg-theme-secondary-bg-color,#f1f1f4);--card:var(--tg-theme-section-bg-color,var(--tg-theme-bg-color,#fff));--text:var(--tg-theme-text-color,#111);--hint:var(--tg-theme-hint-color,#8a8a8f);--accent:var(--tg-theme-button-color,#2481cc);--accent-text:var(--tg-theme-button-text-color,#fff);--link:var(--tg-theme-link-color,#2481cc);--danger:var(--tg-theme-destructive-text-color,#e5484d);--section-head:var(--tg-theme-section-header-text-color,var(--hint));--sep:color-mix(in srgb, var(--hint) 22%, transparent);--ok:#31a24c;--warn:#e8a317;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;overscroll-behavior:none;margin:0;font:15px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}.app{max-width:640px;padding:12px 12px calc(32px + env(safe-area-inset-bottom));margin:0 auto}.card{background:var(--card);border-radius:var(--radius);margin-bottom:12px;padding:14px 16px}.card.flush{padding:0;overflow:hidden}.section-title{color:var(--section-head);text-transform:uppercase;letter-spacing:.04em;margin:18px 16px 8px;font-size:13px}h1{margin:4px 0 2px;font-size:22px}h2{margin:0 0 8px;font-size:17px}.muted{color:var(--hint)}.small{font-size:13px}.row{align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.grow{flex:1;min-width:0}.stack>*+*{margin-top:10px}.wrap{flex-wrap:wrap}.btn{background:var(--accent);color:var(--accent-text);border:0;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:11px 16px;font-weight:600;display:inline-flex}.btn.block{width:100%}.btn.secondary{background:color-mix(in srgb, var(--accent) 12%, transparent);color:var(--link)}.btn.danger{background:color-mix(in srgb, var(--danger) 12%, transparent);color:var(--danger)}.btn.ghost{color:var(--link);background:0 0;padding:8px 4px}.btn.sm{border-radius:9px;padding:7px 12px;font-size:14px}.btn:disabled{opacity:.5}label.field{display:block}label.field>span{color:var(--hint);margin-bottom:4px;font-size:13px;display:block}.input{border:1px solid var(--sep);background:var(--bg);border-radius:10px;outline:none;width:100%;padding:10px 12px}.input:focus{border-color:var(--accent)}textarea.input{resize:vertical;min-height:70px}.progress{background:var(--sep);border-radius:99px;height:8px;overflow:hidden}.progress>div{background:var(--accent);border-radius:99px;height:100%;transition:width .3s}.progress.done>div{background:var(--ok)}.tabs{background:var(--card);z-index:5;border-radius:12px;gap:4px;margin-bottom:12px;padding:4px;display:flex;position:sticky;top:6px}.tabs button{color:var(--hint);background:0 0;border:0;border-radius:9px;flex:1;padding:8px 4px;font-size:14px;font-weight:600}.tabs button.on{background:color-mix(in srgb, var(--accent) 14%, transparent);color:var(--link)}.list-item{border-top:1px solid var(--sep);align-items:center;gap:12px;padding:12px 16px;display:flex}.list-item:first-child{border-top:0}.list-item.tap{cursor:pointer}.list-item.tap:active{background:color-mix(in srgb, var(--hint) 10%, transparent)}.check{border:2px solid var(--hint);color:#fff;background:0 0;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;padding:0;font-size:15px;line-height:1;display:grid}.check.IN_PROGRESS{border-color:var(--warn);background:conic-gradient(var(--warn) 0 50%, transparent 50% 100%)}.check.DONE{border-color:var(--ok);background:var(--ok)}.check.NA{border-color:var(--sep);background:var(--sep);color:var(--hint)}.item-title.DONE,.item-title.NA{color:var(--hint);text-decoration:line-through}.badge{background:var(--sep);color:var(--hint);white-space:nowrap;border-radius:99px;padding:1px 7px;font-size:12px;display:inline-block}.badge.danger{background:color-mix(in srgb, var(--danger) 15%, transparent);color:var(--danger)}.badge.warn{background:color-mix(in srgb, var(--warn) 18%, transparent);color:#b57900}.dot{background:var(--danger);border-radius:50%;flex:none;width:7px;height:7px;display:inline-block}.flag{border-radius:10px;align-items:flex-start;gap:10px;padding:10px 12px;font-size:14px;display:flex}.flag+.flag{margin-top:6px}.flag.danger{background:color-mix(in srgb, var(--danger) 11%, transparent)}.flag.warn{background:color-mix(in srgb, var(--warn) 14%, transparent)}.flag.info{background:color-mix(in srgb, var(--accent) 9%, transparent)}.seg{background:var(--bg);border-radius:11px;grid-template-columns:repeat(4,1fr);gap:4px;padding:4px;display:grid}.seg button{color:var(--hint);background:0 0;border:0;border-radius:8px;padding:8px 2px;font-size:13px;font-weight:600}.seg button.on{background:var(--card);color:var(--text);box-shadow:0 1px 3px #0000001f}.sheet-backdrop{z-index:50;background:#0006;justify-content:center;align-items:flex-end;animation:.15s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--card);width:100%;max-width:640px;max-height:88vh;padding:18px 16px calc(20px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;animation:.2s ease-out up;overflow:auto}.sheet .grab{background:var(--sep);border-radius:9px;width:36px;height:5px;margin:-8px auto 12px}@keyframes up{0%{opacity:.6;transform:translateY(30px)}}@keyframes fade{0%{opacity:0}}.ai-text{white-space:pre-wrap;font-size:14.5px;line-height:1.5}.cursor:after{content:"▍";color:var(--accent);animation:1s steps(2,end) infinite blink}@keyframes blink{50%{opacity:0}}.empty{text-align:center;padding:28px 16px}.empty .big{font-size:44px}.error{color:var(--danger);font-size:14px}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));color:#fff;z-index:100;background:#1e1e1eeb;border-radius:12px;max-width:90vw;padding:10px 16px;font-size:14px;position:fixed;transform:translate(-50%)}.spinner{border:3px solid var(--sep);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;margin:30px auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}
