.tk-head{border-bottom:1px solid var(--line);padding-bottom:14px;margin-bottom:14px}.tk-head h1{font-size:21px;margin:2px 0 4px}.tk-head .sub{color:var(--muted);font-size:13px}.progress-wrap{display:flex;align-items:center;gap:10px;margin:12px 0 4px}.bar{flex:1;height:9px;background:var(--line);border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--ok);width:0;transition:width .25s}.progress-wrap .pct{font-size:13px;font-weight:700;color:var(--ok);min-width:74px;text-align:right}.gate-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 15px;border-radius:9px;margin:12px 0;font-size:13px;border:1px solid}.gate-banner.locked{background:#fff7ed;border-color:#fdba74;color:#9a3412}.gate-banner.open{background:var(--ok-soft);border-color:#86efac;color:#166534}.gate-banner b{font-size:13.5px}.gate-banner .g-count{font-family:var(--mono);font-weight:700}.toolbar{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin:10px 0 6px}.toolbar .grow{flex:1}.tk-search{font:inherit;font-size:13px;padding:5px 10px;border:1px solid var(--line2);border-radius:7px;min-width:180px}.filters{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 4px;align-items:center}.filters .lab{font-size:11.5px;color:var(--faint);margin-right:2px}.chip{font-size:11.5px;padding:3px 9px;border-radius:99px;border:1px solid var(--line2);background:#fff;cursor:pointer;user-select:none;color:var(--muted)}.chip:hover{border-color:var(--accent-line)}.chip.on{background:var(--accent-soft);border-color:var(--accent-line);color:var(--accent);font-weight:600}.phase{border:1px solid var(--line2);border-radius:10px;margin:12px 0;overflow:hidden;background:var(--card)}.phase-hd{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg);cursor:pointer;border-bottom:1px solid var(--line)}.phase-hd .pid{font-family:var(--mono);font-weight:700;color:var(--star);font-size:13px}.phase-hd .pt{font-weight:600;font-size:14.5px}.phase-hd .pbar{flex:1;max-width:220px;height:7px;background:var(--line);border-radius:99px;overflow:hidden}.phase-hd .pbar>i{display:block;height:100%;background:var(--ok)}.phase-hd .pmeta{font-size:12px;color:var(--muted);margin-left:auto}.phase-hd .gate-tag{font-size:10.5px;background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:5px;padding:1px 6px}.phase-goal{font-size:12px;color:var(--muted);padding:9px 14px;border-bottom:1px solid var(--line);background:#fcfcfb;line-height:1.6}.phase.collapsed .phase-body,.phase.collapsed .phase-goal{display:none}.wp{padding:4px 0}.wp-hd{font-size:12px;font-weight:600;color:var(--star);padding:8px 14px 3px}.task{display:flex;gap:10px;padding:8px 14px;border-top:1px solid var(--line)}.task:first-child{border-top:none}.task .cb{margin-top:2px}.task .cb input{width:16px;height:16px;cursor:pointer;accent-color:var(--ok)}.task .body{flex:1;min-width:0}.task .ttl{font-size:13.5px;line-height:1.45}.task .tid{font-family:var(--mono);font-size:11px;color:var(--faint);margin-right:6px}.task .badges{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px;align-items:center}.tag{font-size:10.5px;padding:1px 7px;border-radius:5px;color:#fff}.meta-pill{font-size:10.5px;color:var(--muted);border:1px solid var(--line2);border-radius:5px;padding:0 6px}.tpl-badge{font-size:10.5px;color:var(--accent);border:1px solid var(--accent-line);background:var(--accent-soft);border-radius:5px;padding:0 6px}.gate-badge{font-size:10.5px;background:#fef3c7;color:#92400e;border:1px solid #fde68a;border-radius:5px;padding:0 6px;font-weight:600}.lock-badge{font-size:10.5px;background:#f5f5f4;color:#78716c;border:1px solid var(--line2);border-radius:5px;padding:0 6px}.acc-toggle{font-size:11.5px;color:var(--muted);cursor:pointer;background:none;border:none;padding:2px 0;margin-top:4px}.acc{font-size:12.5px;color:#44403c;background:#fcfcfb;border-left:2px solid var(--line2);padding:7px 11px;margin-top:6px;border-radius:0 6px 6px 0;line-height:1.6;display:none}.task.open-acc .acc{display:block}.task.done .ttl{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line2)}.task.locked{opacity:.62}.task.locked .cb input{cursor:not-allowed}.task.hidden{display:none}.empty{color:var(--faint);font-size:13px;padding:20px;text-align:center}@media print{.toolbar,.filters,.acc-toggle{display:none!important}.phase.collapsed .phase-body,.phase.collapsed .phase-goal,.acc{display:block!important}.task.hidden{display:flex!important}.phase{break-inside:avoid}}
