/* V2.22 — Grouped Day View (tasks + calendar review) */
.tv{--tv-card:#fff;--tv-ink:#14261b;--tv-soft:#6b7a70;--tv-line:#e3ebe5;--tv-acc:#1f9d4d;--tv-pale:#e8efe9;--tv-cal:#f5f8ff;--tv-calb:#c7d6f3;margin:12px 0 16px}
html.bellife-dark .tv{--tv-card:#1f2622;--tv-ink:#e7efe9;--tv-soft:#9fb0a5;--tv-line:#33403a;--tv-pale:#2a332e;--tv-cal:#1e2633;--tv-calb:#3a4d6b}
.tv-head{display:flex;gap:14px;align-items:center;background:var(--tv-card);border-radius:18px;padding:14px;box-shadow:0 2px 10px rgba(0,0,0,.05)}
.tv-ring{--p:0;width:64px;height:64px;border-radius:50%;flex:none;background:conic-gradient(var(--tv-acc) calc(var(--p)*1%),var(--tv-line) 0);display:flex;align-items:center;justify-content:center}
.tv-ring span{width:50px;height:50px;border-radius:50%;background:var(--tv-card);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:13px;color:var(--tv-ink)}
.tv-date{flex:1;min-width:0}
.tv-nav{display:flex;align-items:center;gap:8px}
.tv-nav>button:not(.tv-day){width:36px;height:36px;flex:none;border-radius:999px;border:1.5px solid #cfe2d5;background:transparent;color:#17723a;font-size:20px;font-weight:800;cursor:pointer;line-height:1}
.tv-day{flex:1;min-width:0;border:0;background:transparent;font:inherit;font-weight:800;font-size:16px;color:var(--tv-ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tv-sub{text-align:center;color:var(--tv-soft);font-size:12.5px;margin-top:4px}
.tv-date input[type=date]{margin-top:8px;width:100%}
.tv-link{border:0;background:none;color:#17723a;font:inherit;font-weight:800;cursor:pointer;padding:0;font-size:inherit;text-transform:inherit;letter-spacing:inherit}
html.bellife-dark .tv-link{color:#9fe0b3}
.tv-seg{display:flex;background:var(--tv-pale);border-radius:999px;padding:3px;margin:12px 0 10px}
.tv-seg button{flex:1;border:0;background:transparent;border-radius:999px;padding:8px 4px;font:inherit;font-weight:700;font-size:13px;color:var(--tv-soft);cursor:pointer;white-space:nowrap}
.tv-seg button.on{background:var(--tv-card);color:#17723a;box-shadow:0 1px 3px rgba(0,0,0,.1)}
html.bellife-dark .tv-seg button.on{color:#9fe0b3}
.tv-add{display:flex;gap:8px;margin-bottom:6px}
.tv-add input{flex:1;min-width:0;border:1.5px solid #dbe7df;border-radius:999px;padding:10px 16px;font:inherit;background:var(--tv-card);color:var(--tv-ink)}
.tv-add .btn{flex:none;margin:0!important;width:auto!important}
.tv-sec{font-size:11.5px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:var(--tv-soft);margin:14px 2px 6px;display:flex;justify-content:space-between;align-items:center}
.tv-sec.o{color:#b5651d}.tv-sec.c{color:#2a55a8}
html.bellife-dark .tv-sec.c{color:#9db8ea}
.tv-item{display:flex;gap:10px;align-items:center;background:var(--tv-card);border-radius:12px;padding:10px 10px 10px 12px;margin-bottom:6px;box-shadow:0 1px 3px rgba(0,0,0,.04)}
.tv-item.done .tv-title{text-decoration:line-through;color:var(--tv-soft)}
.tv-item.tv-cal{background:var(--tv-cal);border:1.5px dashed var(--tv-calb);box-shadow:none}
.tv-check{position:relative;flex:none;width:24px;height:24px;cursor:pointer}
.tv-check input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.tv-check span{position:absolute;inset:0;border:2px solid #9cc7a8;border-radius:7px;background:var(--tv-card)}
.tv-check input:checked+span{background:var(--tv-acc);border-color:var(--tv-acc)}
.tv-check input:checked+span:after{content:"✓";color:#fff;position:absolute;left:4px;top:-1px;font-weight:900;font-size:15px}
.tv-check input:focus-visible+span{outline:3px solid #9fe0b3;outline-offset:1px}
.tv-text{flex:1;min-width:0;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.tv-title{font-weight:650;color:var(--tv-ink);overflow-wrap:anywhere}
.tv-chip{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;white-space:nowrap;background:#eef3ef;color:#4b5a50}
.tv-chip.warn{background:#fff1dc;color:#9a5a0c}
.tv-note{flex-basis:100%;text-align:left;border:0;background:none;padding:0;font:inherit;font-size:12.5px;color:var(--tv-soft);cursor:pointer}
.tv-acts{display:flex;gap:6px;flex:none}
.tv-ic{width:34px;height:34px;border-radius:10px;border:1.5px solid #dbe7df;background:var(--tv-card);color:#17723a;font-size:15px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}
.tv-ic.danger{color:#b33}
html.bellife-dark .tv-ic{border-color:#3b4640;color:#9fe0b3}
.tv-empty{color:var(--tv-soft);font-size:13px;margin:4px 2px 8px}
.tv-search{width:100%;border:1.5px solid var(--tv-calb);border-radius:999px;padding:8px 14px;margin:0 0 4px;font:inherit;background:var(--tv-card);color:var(--tv-ink)}
.tv-count{display:block;color:var(--tv-soft);margin:0 4px 6px}
/* Desktop: tasks and calendar side by side when "All" is selected */
@media(min-width:900px){.tv-body.two{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.tv-head{padding:16px 20px}.tv-day{font-size:18px}}
/* keep older .review-calendar-row rules (grid columns) from squeezing the new rows */
#app .tv .tv-item.review-calendar-row{display:flex!important;grid-template-columns:none!important;align-items:center!important;gap:10px!important;padding:10px 10px 10px 12px!important;min-height:0!important}
#app .tv .tv-item.review-calendar-row>.tv-text{flex:1 1 auto!important;width:auto!important;min-width:0!important;max-width:none!important}
#app .tv .tv-item.review-calendar-row>.tv-acts{flex:none!important;width:auto!important}
#app .tv .tv-item.review-calendar-row[hidden]{display:none!important}
html.bellife-dark .tv-nav>button:not(.tv-day){color:#9fe0b3;border-color:#3b4640}
html.bellife-dark .tv-ic.danger{color:#ff8a80}
html.bellife-dark .tv-add input{border-color:#3b4640}
.tv-ic.has{background:#e3f4e8;border-color:#9fd3ae}
html.bellife-dark .tv-ic.has{background:#2b4a36;border-color:#4f7a5c}

/* V2.23: Calendar orders to review (under the Tasks / Calendar bar) */
.tv-orders{margin:10px 0 4px;padding:4px 10px 8px;border:1px solid #f3d28a;border-radius:14px;background:#fffaf0}
.tv-sec.q{color:#9a5a0c;margin-top:8px}.tv-sec.q small{font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;color:#8a7650}
.tv-item.tv-ord{background:#fff}
.tv-meta{font-size:12.5px;color:var(--tv-soft);white-space:nowrap}
.tv-review{min-height:30px!important;padding:4px 14px!important;font-size:13px!important}
html.bellife-dark .tv-orders{background:#2a2414;border-color:#6b5420}html.bellife-dark .tv-sec.q{color:#f3c96b}html.bellife-dark .tv-sec.q small{color:#d9c48f}
html.bellife-dark .tv-item.tv-ord{background:#18221c}
