:root{--bg:var(--tg-theme-bg-color,#eef1f6);--card:var(--tg-theme-secondary-bg-color,#fff);--ink:var(--tg-theme-text-color,#1a1d24);--muted:var(--tg-theme-hint-color,#7a828f);--accent:var(--tg-theme-button-color,#4c6ef5);--accent-ink:var(--tg-theme-button-text-color,#fff);--link:var(--tg-theme-link-color,#37559e);--warn:var(--tg-theme-destructive-text-color,#c9531f);--header:#517da2;--accent-soft:#eaf0ff;--line:#e7ebf1;--ok:#2f9e6b;--done:#9aa3b0;--warn-soft:#fdeee6;--chip:#f1f3f8;--proj:#7048a6;--shadow:0 1px 2px #141e3c0f, 0 6px 20px #141e3c0f}*{box-sizing:border-box;-webkit-font-smoothing:antialiased}body{background:var(--bg);color:var(--ink);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif}.scroll{padding:16px 14px 90px}.card{background:var(--card);box-shadow:var(--shadow);border-radius:16px;margin-bottom:12px;padding:16px}.section-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:4px 2px 10px;font-size:11px;font-weight:700}.tg-head{background:var(--header);color:#fff;align-items:center;gap:10px;padding:13px 16px;font-size:15px;display:flex}.tg-head .title{font-weight:600}.tg-head .sub{opacity:.8;margin-left:auto;font-size:12px}.crumb{background:var(--card);color:var(--muted);align-items:center;gap:7px;padding:9px 16px;font-size:12.5px;display:flex}.crumb b{color:var(--ink);font-weight:600}.crumb .go{color:var(--muted);margin-left:auto}.proj-dot{background:var(--proj);border-radius:50%;width:9px;height:9px}.greet{margin:0;font-size:20px;font-weight:700}.subgreet{color:var(--muted);margin:2px 0 0;font-size:13px}.streak{color:var(--warn);background:var(--warn-soft);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:13px;font-weight:600;display:inline-flex}.btn{background:var(--accent);width:100%;color:var(--accent-ink);cursor:pointer;border:0;border-radius:14px;padding:15px;font-family:inherit;font-size:16px;font-weight:700}.btn.ghost{background:var(--card);color:var(--ink);border:1px solid var(--line)}.chip{background:var(--chip);color:var(--ink);white-space:nowrap;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:500}.chip.priority{background:var(--warn-soft);color:var(--warn)}.chip.due{background:var(--accent-soft);color:var(--link)}.metarow{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.progress{background:var(--bg);border-radius:999px;height:8px;overflow:hidden}.progress>i{background:var(--accent);border-radius:999px;height:100%;display:block}.progress-label{color:var(--muted);justify-content:space-between;margin:0 2px 6px;font-size:12px;display:flex}.trow{color:inherit;border-radius:12px;align-items:flex-start;gap:11px;padding:12px 10px;text-decoration:none;display:flex}.trow+.trow{border-top:1px solid var(--line)}.trow .tick{border:2px solid #cdd4df;border-radius:50%;flex:none;width:20px;height:20px;margin-top:1px}.trow .body{flex:1;min-width:0}.trow .t{flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;font-weight:500;display:flex}.trow .m{color:var(--muted);flex-wrap:wrap;align-items:center;gap:6px;margin-top:3px;font-size:12px;display:flex}.trow .chev{color:#c2c9d4;align-self:center;font-size:18px}.trow.next{background:var(--accent-soft);border-left:3px solid var(--accent);padding-left:12px}.trow.slipped{color:var(--warn)}.trow.slipped .tick{border-color:var(--warn)}.tag{letter-spacing:.04em;color:var(--accent);background:var(--card);border:1px solid #cdd9ff;border-radius:6px;padding:1px 6px;font-size:10px;font-weight:800}.step{border-radius:12px;align-items:flex-start;gap:11px;padding:12px 10px;display:flex}.step+.step{border-top:1px solid var(--line)}.step .tick{color:#fff;border:2px solid #cdd4df;border-radius:50%;flex:none;justify-content:center;align-items:center;width:20px;height:20px;margin-top:1px;font-size:12px;display:flex}.step.done .tick{background:var(--ok);border-color:var(--ok)}.step .body{flex:1;min-width:0}.step .t{flex-wrap:wrap;align-items:center;gap:6px;font-size:15px;font-weight:500;display:flex}.step.done .t{color:var(--done);text-decoration:line-through}.step .m{color:var(--muted);flex-wrap:wrap;gap:6px;margin-top:3px;font-size:12px;display:flex}.step .m .warn{color:var(--warn);font-weight:600}.step .chev{color:#c2c9d4;align-self:center;font-size:18px}.step.next{background:var(--accent-soft);border-left:3px solid var(--accent);padding-left:12px}.step.warn{border-left:3px solid var(--warn);padding-left:12px}.tl{height:64px;margin:2px 6px;position:relative}.tl .rail{background:#dfe4ee;border-radius:2px;height:3px;position:absolute;top:30px;left:0;right:44px}.tl .rail-over{background:repeating-linear-gradient(90deg,#f2c3ac 0 5px,#0000 5px 10px);width:44px;height:3px;position:absolute;top:30px;right:0}.tl .dot{background:var(--card);border:3px solid var(--accent);border-radius:50%;width:15px;height:15px;position:absolute;top:24px;transform:translate(-50%)}.tl .dot.done{background:var(--accent)}.tl .dot.warn{border-color:var(--warn)}.tl .flag{color:var(--muted);white-space:nowrap;font-size:10.5px;position:absolute;top:46px;transform:translate(-50%)}.tl .flag.warn{color:var(--warn)}.tl .deadline{background:var(--link);width:3px;height:27px;position:absolute;top:18px;transform:translate(-50%)}.tl .dl-label{color:var(--link);font-size:10.5px;font-weight:700;position:absolute;top:2px;transform:translate(-50%)}.tl-warn{color:var(--warn);margin:6px 2px 0;font-size:12px;font-weight:600}.pstrip{gap:10px;padding:2px 2px 4px;display:flex;overflow-x:auto}.pcard{background:var(--card);box-shadow:var(--shadow);color:inherit;border-radius:14px;flex:0 0 150px;padding:13px;text-decoration:none}.pcard .pn{font-size:14px;font-weight:600}.pcard .pd{border-radius:50%;width:9px;height:9px;margin-right:6px;display:inline-block}.pcard .pm{color:var(--muted);margin-top:6px;font-size:11px}.pbar{background:var(--bg);border-radius:999px;height:6px;margin-top:10px;overflow:hidden}.pbar i{background:var(--accent);height:100%;display:block}.phead{align-items:center;gap:10px;margin-bottom:12px;display:flex}.phead .pd{border-radius:50%;width:14px;height:14px}.phead h1{margin:0;font-size:21px;font-weight:700}.nav{background:var(--card);border-top:1px solid var(--line);justify-content:space-around;max-width:480px;margin:0 auto;padding:9px 0 12px;display:flex;position:fixed;bottom:0;left:0;right:0}.nav a{color:var(--muted);text-align:center;font-size:11px;font-weight:600;text-decoration:none}.nav a.on{color:var(--accent)}.nav .ic{margin-bottom:2px;font-size:19px;display:block}.h1{margin:0 0 10px;font-size:20px;font-weight:700;line-height:1.25}.cta{background:linear-gradient(180deg, transparent, var(--bg) 30%);gap:10px;max-width:480px;margin:0 auto;padding:12px 14px 16px;display:flex;position:fixed;bottom:0;left:0;right:0}.cta .btn{flex:1}.q{margin:6px 2px 4px;font-size:19px;font-weight:700}.qsub{color:var(--muted);margin:0 2px 20px;font-size:13px}.plabel{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 2px 9px;font-size:11px;font-weight:700}.opts{gap:9px;display:flex}.opt{background:var(--card);border:2px solid var(--line);text-align:center;box-shadow:var(--shadow);cursor:pointer;border-radius:14px;flex:1;padding:15px 8px}.opt .ic{margin-bottom:6px;font-size:22px;display:block}.opt .t{font-size:13px;font-weight:600}.opt.sel{border-color:var(--accent);background:var(--accent-soft)}.count{color:var(--muted);text-align:center;margin:2px 0 14px;font-size:12px;font-weight:600}.bigcard{background:var(--card);box-shadow:var(--shadow);text-align:center;border-radius:22px;margin-bottom:16px;padding:26px 20px}.fromproj{color:var(--muted);margin-bottom:12px;font-size:12px}.fromproj .pd{border-radius:50%;width:8px;height:8px;margin-right:5px;display:inline-block}.bigcard h2{margin:0 0 16px;font-size:25px;line-height:1.2}.bchips{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.doer{background:var(--ok);color:#fff;cursor:pointer;border:0;border-radius:16px;width:100%;margin-bottom:10px;padding:17px;font-family:inherit;font-size:17px;font-weight:800}.secgrid{gap:9px;display:flex}.sec{border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;border-radius:13px;flex:1;padding:13px;font-family:inherit;font-size:13.5px;font-weight:600}.app-shell{max-width:480px;min-height:100vh;margin:0 auto;position:relative}
