.tracker{display:grid;gap:16px}.tracker .summary{padding:20px 22px}.tracker .summary-line{margin:0 0 16px;font-weight:600;color:var(--ink);font-size:var(--fs-lg)}.tracker .stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.tracker .stat{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:2px;background:var(--bg)}.tracker .stat-num{font-size:30px;font-weight:800;line-height:1;font-variant-numeric:tabular-nums;color:var(--ink)}.tracker .stat-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.tracker .stat-overdue{border-color:#e8c4b8;background:var(--danger-soft)}.tracker .stat-overdue .stat-num{color:var(--danger)}.tracker .stat-soon{border-color:#ecdcb6;background:var(--accent-soft)}.tracker .stat-soon .stat-num{color:var(--accent-dark)}.tracker .stat-ok{border-color:#c4e0d2;background:var(--success-soft)}.tracker .stat-ok .stat-num{color:var(--success)}@media(max-width:560px){.tracker .stats{grid-template-columns:repeat(2,1fr)}}.tracker .tracker-top{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.tracker .lede{margin:0;color:var(--muted);font-size:14px;max-width:48ch}.tracker .controls{display:flex;gap:8px;flex-wrap:wrap}.tracker .add-form{margin-top:0}.tracker .add-form h3{margin:0 0 10px;font-size:var(--fs-lg)}.tracker .task-group+.task-group{margin-top:20px}.tracker .group-head{font-family:var(--font-sans);font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin:0 0 10px;display:flex;align-items:center;gap:8px}.tracker .group-count{font-size:12px;background:var(--primary-soft);color:var(--primary-dark);border-radius:999px;padding:1px 8px;font-weight:700}.tracker .task-group-overdue .group-head{color:var(--danger)}.tracker .task-group-overdue .group-count{background:var(--danger-soft);color:var(--danger)}.tracker .tasks{list-style:none;margin:0;padding:0;display:grid;gap:10px}.tracker .task{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px 16px}.tracker .task-overdue{border-left-color:var(--danger)}.tracker .task-soon{border-left-color:var(--accent)}.tracker .task-ok{border-left-color:var(--success)}.tracker .task-log{border-left-color:var(--muted)}.tracker .task-main{min-width:0}.tracker .task-name{display:block;font-weight:700;font-size:var(--fs-base)}.tracker .task-meta{display:flex;flex-wrap:wrap;gap:6px;color:var(--muted);font-size:13px;margin-top:3px;font-variant-numeric:tabular-nums}.tracker .meta-next{color:var(--ink);font-weight:600}.tracker .badge{font-size:12px;font-weight:700;padding:5px 11px;border-radius:999px;white-space:nowrap;font-variant-numeric:tabular-nums;align-self:center}.tracker .badge-ok{background:var(--success-soft);color:var(--success)}.tracker .badge-soon{background:var(--accent-soft);color:var(--accent-dark)}.tracker .badge-overdue{background:var(--danger-soft);color:var(--danger)}.tracker .badge-log{background:var(--primary-soft);color:var(--primary-dark)}.tracker .task-actions{display:flex;align-items:center;gap:6px}.tracker .btn-icon{border:1px solid var(--line);background:#fff;color:var(--muted);cursor:pointer;width:44px;height:44px;border-radius:8px;font-size:20px;line-height:1;display:grid;place-items:center;flex-shrink:0;transition:transform .16s var(--ease-out),background .14s ease,color .14s ease,border-color .14s ease}.tracker .btn-icon:hover{background:var(--danger-soft);color:var(--danger);border-color:#e8c4b8}.tracker .btn-icon:active{transform:scale(.94)}.tracker .empty{color:var(--muted);font-size:14px;text-align:center;padding:24px 10px}.tracker .linkish{background:none;border:0;padding:0;color:var(--primary);font:inherit;text-decoration:underline;cursor:pointer}@media(max-width:560px){.tracker .task{grid-template-columns:1fr auto;grid-template-areas:"badge actions" "main main";row-gap:10px}.tracker .task>.badge{grid-area:badge;justify-self:start}.tracker .task-actions{grid-area:actions;justify-self:end}.tracker .task-main{grid-area:main}}@media(prefers-reduced-motion:reduce){.tracker .btn-icon:active{transform:none}}@media print{.no-print{display:none!important}.tracker .summary{box-shadow:none;border-color:#ccc}.tracker .stat{background:#fff!important}.tracker .task{box-shadow:none;border-color:#ccc;break-inside:avoid}.tracker .badge{border:1px solid #ccc}}
