:root{--tl-sidebar-w: 280px;--tl-past: #f5f4ee;--tl-today: #c25c00;--tl-today-soft: #fff4e0;--tl-future: #2f8f30;--tl-deadline: #c1342c;--tl-deadline-soft: #fdecea;--tl-lodgement: #1f6db8;--tl-lodgement-soft: #e3effa}@media (prefers-color-scheme: dark){:root{--tl-past: #1c1f29;--tl-today-soft: #2a1f0e;--tl-deadline-soft: #2a0e0a;--tl-lodgement-soft: #0a1a2a}}.tl-app{display:grid;grid-template-columns:var(--tl-sidebar-w) 1fr;gap:1.5rem;margin-top:1rem}@media (max-width: 880px){.tl-app{grid-template-columns:1fr}.tl-sidebar{max-height:50vh;overflow-y:auto}}.tl-sidebar{border-right:1px solid var(--border);padding-right:.75rem}.tl-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:.5rem}.tl-list{display:flex;flex-direction:column;gap:.15rem}.tl-row{display:grid;grid-template-columns:70px 1fr;gap:.5rem;padding:.5rem .6rem;border-left:3px solid var(--border);border-radius:3px;cursor:pointer;transition:background .1s;align-items:start}.tl-row:hover{background:var(--soft-bg)}.tl-row.selected{background:var(--soft-bg);border-left-color:var(--accent)}.tl-row.past{opacity:.5;border-left-color:var(--muted)}.tl-row.today{border-left-color:var(--tl-today);background:var(--tl-today-soft)}.tl-row.future{border-left-color:var(--tl-future)}.tl-row.deadline{border-left-color:var(--tl-deadline)}.tl-row.lodgement{border-left-color:var(--tl-lodgement)}.tl-row .tl-date{font-family:var(--mono);font-size:.78rem;color:var(--muted);font-variant-numeric:tabular-nums;line-height:1.3}.tl-row.today .tl-date{color:var(--tl-today);font-weight:700}.tl-row .tl-days{display:block;font-size:.7rem;color:var(--muted)}.tl-row .tl-title{font-size:.85rem;line-height:1.3;color:var(--fg)}.tl-row.past .tl-title{color:var(--muted)}.tl-main{min-width:0}.tl-panel{background:var(--band-bg);border:1px solid var(--border);border-radius:6px;padding:1.25rem 1.5rem;box-shadow:0 1px 3px #0000000d}.tl-panel-head{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:.5rem;border-bottom:1px solid var(--border);padding-bottom:.6rem;margin-bottom:.8rem}.tl-panel-head h2{margin:0;font-size:1.4rem;color:var(--fg);border:none;padding:0}.tl-panel-date{font-family:var(--mono);font-size:.85rem;color:var(--muted)}.tl-badge{display:inline-block;font-family:var(--mono);font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;padding:2px 7px;border-radius:3px;background:var(--soft-bg);color:var(--muted);margin-left:.4rem}.tl-badge.today{background:var(--tl-today);color:#fff}.tl-badge.deadline{background:var(--tl-deadline);color:#fff}.tl-badge.lodgement{background:var(--tl-lodgement);color:#fff}.tl-badge.past{background:var(--tl-past);color:var(--muted)}.tl-summary{font-size:1rem;color:var(--fg);margin:0 0 .6rem}.tl-loc{font-size:.85rem;color:var(--muted);margin:0 0 1rem}.tl-context{font-size:.95rem;line-height:1.55;margin:0 0 1.2rem;color:var(--fg)}.tl-section-h{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-strong);margin:1.2rem 0 .5rem}.tl-tasks{list-style:none;padding:0;margin:0}.tl-task{display:grid;grid-template-columns:1.5rem 4rem 1fr;gap:.4rem;padding:.35rem .4rem;border-bottom:1px dashed var(--border);align-items:start;font-size:.93rem}.tl-task:last-child{border-bottom:none}.tl-task-tick{font-family:var(--mono);color:var(--muted)}.tl-task.done .tl-task-title{text-decoration:line-through;color:var(--muted)}.tl-task-owner{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;color:var(--muted);padding-top:2px}.tl-refs{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.4rem}.tl-ref{display:inline-block;font-size:.82rem;padding:3px 7px;background:var(--soft-bg);border-radius:3px;text-decoration:none;color:var(--accent-strong);border:1px solid var(--border)}.tl-ref:hover{color:var(--accent)}.tl-nav{display:flex;justify-content:space-between;margin-top:1rem;gap:.5rem}.tl-nav-btn{flex:1;padding:.5rem .75rem;background:var(--band-bg);border:1px solid var(--border);border-radius:4px;cursor:pointer;font-family:var(--sans);font-size:.85rem;color:var(--fg);text-align:left}.tl-nav-btn:hover{background:var(--soft-bg)}.tl-nav-btn[disabled]{opacity:.4;cursor:default}.tl-nav-btn .arrow{color:var(--accent);margin:0 .3rem}
