/* Today · Coming up · Goals — reuses the budget screen's look (b2-*) */
.td{padding-top:28px;padding-bottom:110px}
.td .page-head{margin-bottom:18px}
.td .page-head p{color:var(--muted);margin-top:6px}
.td .b2-grid{margin-top:0}
.td .empty{color:var(--muted);font-size:14px;padding:10px 2px}
.td .note{color:var(--muted);font-size:14px;margin-top:8px}
.td .muted{color:var(--muted)}
.td .neg{color:var(--danger)}
.td .pos{color:var(--green)}
.td .b2-io small{display:block;font-size:12px;margin-top:2px}
.td .b2-io b.neg{color:var(--danger)}
.td-link{background:none;border:0;padding:0;color:var(--accent);font:inherit;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.td-setup{margin-bottom:18px;border-color:var(--accent)}
.td-setup h2{font-size:22px}
.td-payday{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:14px}
.td-edit{margin-top:6px}
.td-field{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted);min-width:0}
.td-field .input{min-width:170px}
.td-spend{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.td-amt .input{width:100%;font-family:var(--f-mono);font-size:32px;font-weight:600;height:64px;letter-spacing:-.02em}
.td-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.td-row .input{flex:1 1 180px}
.td-chips{display:flex;flex-wrap:wrap;gap:8px}
.td .chip-r span{display:inline-flex;align-items:center;gap:6px;min-height:40px}
.td .chip-r span svg{width:16px;height:16px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.b2-row.td-late{background:linear-gradient(90deg,rgba(255,122,102,.16),transparent 70%),var(--surface-2)}
.b2-row.td-late small{color:var(--danger)}
.td-late-card{border-color:rgba(255,122,102,.45)}
.td-late-card .b2-h h2{color:var(--danger)}
.td-salary{background:linear-gradient(90deg,rgba(75,198,128,.14),transparent 70%),var(--surface-2)}
.b2-amt.pos{color:var(--green)}
.td-how{display:flex;flex-direction:column;margin-top:10px}
.td-how>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);font-size:15px}
.td-how dd{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.td-how .tot{font-weight:600;border-bottom:0}
.td-how .tot dd{color:var(--green)}
.td-sum{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:18px}
.td-sum .b2-card{display:flex;flex-direction:column;gap:6px;padding:20px}
.td-sum b{font-family:var(--f-mono);font-variant-numeric:tabular-nums;font-size:26px;font-weight:600}
.td-sum small{font-size:13px}
.td .b2-card+.b2-card,.td .td-sum+.b2-card,.td .b2-card+.td-goals,.td .td-goals+.b2-card{margin-top:18px}
.td .b2-col .b2-card+.b2-card{margin-top:0}
.td-goals{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.td-goals-mini{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.td-goals-mini .td-goal{padding:16px;box-shadow:none;background:var(--surface-2)}
.td-goal-top{display:flex;align-items:center;gap:12px}
.td-goal-top .b2-main{flex:1;min-width:0}
.td-pct{font-size:14px;color:var(--muted)}
.td-goal.done .td-pct{color:var(--green)}
.td-goal-amt{margin-top:14px}
.td-goal-amt b{font-family:var(--f-mono);font-size:24px;font-weight:600}
.td-bar{margin-top:10px;height:10px}
.td-goal.done .td-bar div{background:var(--green)}
.td-goal-need{display:flex;align-items:center;gap:6px;margin-top:10px;font-size:14px}
.td-goal-need svg{width:16px;height:16px;color:var(--green)}
.td-goal-add{display:flex;gap:8px;align-items:center;margin-top:14px}
.td-goal-add .input{flex:1;min-width:0}
.td-new h2{font-size:22px}
.td-new form{margin-top:14px}
.td-new-f{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;margin-top:16px}
.td-new-f .td-field{flex:1 1 170px}
@media (max-width:860px){.td .b2-grid{grid-template-columns:1fr}.td .b2-big{font-size:clamp(44px,13vw,64px)}}
.td .b2-hero.neg .b2-big{color:var(--danger)}
