/* Version 3, today (D4). Loaded by templates/v3/base.html only when v3 is on. Every rule is scoped:
   under body.v3, or on a v3- class. followap.css is one global namespace; a bare class here can break today's pages.

   Today, Tasks, Activity and Reports, ported one to one from prototype v2.1 (Redesign_Prototype_v2.1.html: shared pieces,
   switchers, Today, reports, desk 900 and wider, 1600 and wider). The prototype's class is the v3- class here (.card is
   .v3-card, .switch is .v3-switch), and every rule sits under .v3-tdy: the root of each of these pages and of the sheets
   they open (Today's menu, a new task, a plan's draft), so nothing here reaches another area's page. Colours and radii
   are followap.css's :root tokens; motion is core.css's. */

/* ── the page ─────────────────────────────────────────────────────────────────────────────────────────────────── */
body.v3 .v3-tdy{font-size:15px;line-height:1.45;letter-spacing:-.011em;font-feature-settings:"cv11","ss01";color:var(--ink);-webkit-font-smoothing:antialiased}
body.v3 .v3-tdy.v3-wrap{max-width:1640px;margin:0 auto}
body.v3 .v3-tdy *,body.v3 .v3-tdy *::before,body.v3 .v3-tdy *::after{box-sizing:border-box}
body.v3 .v3-tdy :where(h1,h2,h3,h4,p,ol,ul,figure){margin:0;padding:0}
body.v3 .v3-tdy :where(button,input,select,textarea){font:inherit;color:inherit;letter-spacing:inherit}
body.v3 .v3-tdy :where(button){background:none;border:0;padding:0;cursor:pointer;text-align:inherit;-webkit-tap-highlight-color:transparent}
body.v3 .v3-tdy :where(a){color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
body.v3 .v3-tdy [hidden]{display:none!important}
body.v3 .v3-tdy .tnum{font-variant-numeric:tabular-nums}
body.v3 .v3-tdy :focus-visible{outline:2px solid var(--green);outline-offset:2px}
body.v3 .v3-tdy .v3-muted{color:var(--grey)}
body.v3 .v3-tdy .v3-dim{color:var(--grey-d)}
body.v3 .v3-tdy .v3-small{font-size:14px}
body.v3 .v3-tdy .v3-fine{font-size:12.5px;color:var(--grey);line-height:1.45}
body.v3 .v3-tdy .v3-attr{margin-top:14px}

/* A button whose pill is smaller than a finger: the button is the 44px target, the pill inside it is what shows, and
   the negative margin keeps the layout the prototype's (the pill's own height). */
body.v3 .v3-tdy .v3-hit{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:-2px 0;flex:none}
body.v3 .v3-tdy .v3-hit:has(> .v3-pill.sm){margin:-5px 0}
body.v3 .v3-tdy .v3-hit[disabled]{opacity:.5;pointer-events:none}

/* ── shared pieces ────────────────────────────────────────────────────────────────────────────────────────────── */
body.v3 .v3-tdy .v3-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:40px}
body.v3 .v3-tdy .v3-hd .v3-r{display:flex;gap:8px;align-items:center}
body.v3 .v3-tdy .v3-me{width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--white);display:grid;place-items:center;font-weight:750;font-size:15px;flex:none}
body.v3 .v3-tdy .v3-cbtn{width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--ink) 6%,transparent);display:grid;place-items:center;flex:none}
body.v3 .v3-tdy .v3-date{color:var(--grey);font-size:15px;font-weight:550;margin-top:12px}
body.v3 .v3-tdy .v3-greet{font-size:32px;line-height:1.05;font-weight:800;letter-spacing:-.04em;margin-top:2px}
body.v3 .v3-tdy .v3-h1{font-size:32px;line-height:1.05;font-weight:800;letter-spacing:-.04em;margin-top:10px}
body.v3 .v3-tdy .v3-lede{color:var(--grey-d);font-size:15px;margin-top:6px}
body.v3 .v3-tdy .v3-sec{display:flex;align-items:baseline;justify-content:space-between;margin:26px 0 12px;gap:10px}
body.v3 .v3-tdy .v3-sec h2{font-size:19px;font-weight:750;letter-spacing:-.025em;line-height:1.45}
body.v3 .v3-tdy .v3-sec .n{color:var(--grey);font-size:14px;font-weight:550}
body.v3 .v3-tdy .v3-sec a:not(.v3-pill),body.v3 .v3-tdy .v3-sec button.lk{font-size:14px;font-weight:650;color:var(--grey-d)}
body.v3 .v3-tdy .v3-card{display:block;background:var(--white);border-radius:var(--r);padding:18px;box-shadow:0 1px 0 var(--line-soft),0 10px 28px -22px color-mix(in srgb,var(--ink) 40%,transparent)}
body.v3 .v3-tdy .v3-card h4{font-size:15px;font-weight:700;letter-spacing:-.015em;margin-bottom:10px}
body.v3 .v3-tdy .v3-card+.v3-card{margin-top:10px}
body.v3 .v3-tdy .v3-pill{height:40px;padding:0 16px;border-radius:99px;background:var(--ink);color:var(--white);font-weight:650;font-size:14.5px;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;white-space:nowrap;border:0;cursor:pointer}
body.v3 .v3-tdy .v3-pill.light{background:var(--sunken);color:var(--ink)}
body.v3 .v3-tdy .v3-pill.line{background:var(--white);color:var(--ink);border:1px solid var(--line)}
body.v3 .v3-tdy .v3-pill.ghost{background:transparent;color:var(--grey-d);padding:0 10px}
body.v3 .v3-tdy .v3-pill.green{background:var(--green);color:var(--ink)}
body.v3 .v3-tdy .v3-pill.big{height:52px;font-size:16px;padding:0 22px}
body.v3 .v3-tdy .v3-pill.sm{height:34px;font-size:13.5px;padding:0 12px}
body.v3 .v3-tdy .v3-pill.full{width:100%}
body.v3 .v3-tdy .v3-pill[disabled],body.v3 .v3-tdy .v3-pill.busy{opacity:.55;pointer-events:none}
body.v3 .v3-tdy .v3-chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px 0}
body.v3 .v3-tdy .v3-chips::-webkit-scrollbar{display:none}
body.v3 .v3-tdy .v3-chips.wrapc{flex-wrap:wrap;overflow:visible}
body.v3 .v3-tdy .v3-chip{height:34px;padding:0 13px;border-radius:99px;background:var(--white);border:1px solid var(--line);font-weight:600;font-size:13.5px;
  display:inline-flex;align-items:center;gap:7px;white-space:nowrap;flex:none;cursor:pointer;color:var(--ink)}
body.v3 .v3-tdy .v3-chip.on{background:var(--ink);color:var(--white);border-color:var(--ink)}
body.v3 .v3-tdy .v3-chip.v3-pick{position:relative;overflow:hidden}
body.v3 .v3-tdy .v3-chip.v3-pick input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
body.v3 .v3-tdy .v3-st{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 9px;border-radius:99px;font-size:12px;font-weight:650;
  background:var(--sunken);color:var(--grey-d);white-space:nowrap;--c:var(--grey);flex:none}
body.v3 .v3-tdy .v3-st::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--c)}
body.v3 .v3-tdy .v3-st.ring::before{background:transparent;box-shadow:inset 0 0 0 1.5px var(--c)}
body.v3 .v3-tdy .v3-bar{position:relative;height:8px;border-radius:99px;background:color-mix(in srgb,var(--ink) 7%,transparent);overflow:hidden}
body.v3 .v3-tdy .v3-bar>i{position:absolute;inset:0;border-radius:99px;background:var(--ink);transform:translateX(calc((var(--p) - 1) * 100%));will-change:transform}
body.v3 .v3-tdy .v3-bar.green>i{background:var(--green)}
body.v3 .v3-tdy .v3-ico{flex:none;width:40px;height:40px;border-radius:50%;background:var(--sunken);display:grid;place-items:center;color:var(--ink)}
body.v3 .v3-tdy .v3-ico.g{background:color-mix(in srgb,var(--green) 18%,var(--white))}
body.v3 .v3-tdy .v3-ico.a{background:color-mix(in srgb,var(--amber) 16%,var(--white))}
body.v3 .v3-tdy .v3-ico.k{background:var(--ink);color:var(--white)}
body.v3 .v3-tdy .v3-ico.sm{width:32px;height:32px}
body.v3 .v3-tdy .v3-av{width:44px;height:44px;border-radius:50%;background:var(--sunken);display:grid;place-items:center;font-weight:700;font-size:14.5px;flex:none;letter-spacing:-.01em;color:var(--ink)}
body.v3 .v3-tdy .v3-list{background:var(--white);border-radius:var(--r);overflow:hidden;box-shadow:0 1px 0 var(--line-soft)}
body.v3 .v3-tdy .v3-li{display:flex;align-items:center;gap:12px;padding:13px 16px;border-top:1px solid var(--line-soft);width:100%;text-align:left}
body.v3 .v3-tdy .v3-li:first-child{border-top:0}
body.v3 .v3-tdy .v3-li .tx{flex:1;min-width:0}
body.v3 .v3-tdy .v3-li .t{font-weight:650;font-size:15px}
body.v3 .v3-tdy .v3-li .s{font-size:13.5px;color:var(--grey);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.v3 .v3-tdy .v3-li .m{font-size:13px;color:var(--grey);text-align:right;flex:none}
body.v3 .v3-tdy .v3-li .v3-av{width:36px;height:36px;font-size:12.5px}
body.v3 .v3-tdy .v3-li form{display:contents}
body.v3 .v3-tdy .v3-kv{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft);font-size:14.5px}
body.v3 .v3-tdy .v3-kv:first-child,body.v3 .v3-tdy h4+.v3-kv{border-top:0;padding-top:0}
body.v3 .v3-tdy .v3-kv span:first-child{color:var(--grey)}
body.v3 .v3-tdy a.v3-kv:hover b{text-decoration:underline}
body.v3 .v3-tdy .v3-field{width:100%;height:50px;border:1px solid var(--line);border-radius:14px;background:var(--sunken);padding:0 14px;font-size:16px;outline:0}
body.v3 .v3-tdy textarea.v3-field{height:auto;min-height:130px;padding:14px;line-height:1.45;resize:none}
body.v3 .v3-tdy .v3-flabel{font-size:13px;font-weight:650;color:var(--grey-d);margin:14px 0 6px;display:block}
body.v3 .v3-tdy .v3-empty{text-align:center;padding:26px 18px;color:var(--grey-d)}
body.v3 .v3-tdy .v3-empty b{display:block;color:var(--ink);font-size:16px;margin-bottom:4px}
body.v3 .v3-tdy .v3-link{display:inline-flex;align-items:center;gap:4px;font-weight:650;font-size:14.5px;margin-top:12px}
body.v3 .v3-tdy .v3-kick{font-size:13px;color:var(--grey);font-weight:600}
body.v3 .v3-tdy .v3-sa{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
body.v3 .v3-tdy .v3-sa .v3-pill:not(.ghost){flex:1;height:52px;font-size:15.5px}
body.v3 .v3-tdy .v3-sl{font-size:14px;color:var(--grey-d);margin-top:4px}
body.v3 .v3-tdy .v3-note{font-size:12.5px;color:var(--grey);margin-top:10px}

/* switchers: the top segment (Today · Tasks · Activity); the pill slides (today.js) */
body.v3 .v3-tdy .v3-switch{position:relative;display:flex;gap:2px;background:color-mix(in srgb,var(--ink) 6%,transparent);border-radius:14px;padding:4px;margin-top:14px;
  overflow-x:auto;scrollbar-width:none;width:max-content;max-width:100%}
body.v3 .v3-tdy .v3-switch::-webkit-scrollbar{display:none}
body.v3 .v3-tdy .v3-switch a{position:relative;z-index:1;height:38px;padding:0 14px;display:inline-flex;align-items:center;gap:6px;border-radius:10px;font-weight:650;font-size:14.5px;color:var(--grey-d);white-space:nowrap}
body.v3 .v3-tdy .v3-switch .on{color:var(--ink)}
body.v3 .v3-tdy .v3-switch .v3-bdg{min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--green);color:var(--ink);font-size:11.5px;font-weight:750;display:inline-grid;place-items:center}
body.v3 .v3-tdy .v3-sw-ind{position:absolute;top:4px;bottom:4px;left:0;border-radius:10px;background:var(--white);box-shadow:0 1px 3px color-mix(in srgb,var(--ink) 14%,transparent);will-change:transform;width:10px;transform-origin:0 0}
body.v3 .v3-tdy .v3-switch:not(.placed) .v3-sw-ind{opacity:0}
body.v3 .v3-tdy .v3-switch:not(.placed) .on{background:var(--white);box-shadow:0 1px 3px color-mix(in srgb,var(--ink) 14%,transparent)}   /* before the script places the pill */
body.v3 .v3-tdy .v3-seg{position:relative;display:grid;grid-template-columns:repeat(var(--n,4),1fr);background:color-mix(in srgb,var(--ink) 6%,transparent);border-radius:14px;padding:4px;height:44px}
body.v3 .v3-tdy .v3-seg button{position:relative;z-index:1;font-weight:650;font-size:14px;color:var(--grey-d);text-align:center;border-radius:10px;white-space:nowrap;height:44px;margin:-4px 0;
  display:block}   /* the prototype's plain button: nav.css's display:grid would put the count on a line of its own */
body.v3 .v3-tdy .v3-seg button.on{color:var(--ink)}
body.v3 .v3-tdy .v3-seg-ind{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / var(--n,4));border-radius:10px;background:var(--white);
  box-shadow:0 1px 3px color-mix(in srgb,var(--ink) 14%,transparent);will-change:transform}

/* The orb (What should I do next?): a glowing dot that breathes */
body.v3 .v3-tdy .v3-orb{position:relative;width:26px;height:26px;border-radius:50%;flex:none;display:inline-block}
body.v3 .v3-tdy .v3-orb .v3-core{position:absolute;inset:0;border-radius:50%;
  background:radial-gradient(circle at 34% 30%, var(--white) 0, color-mix(in srgb,var(--green) 45%,var(--white)) 26%, var(--green) 62%, color-mix(in srgb,var(--green) 72%,var(--ink)) 100%)}
body.v3 .v3-tdy .v3-orb .v3-halo{position:absolute;inset:-70%;border-radius:50%;
  background:radial-gradient(circle, color-mix(in srgb,var(--green) 55%,transparent) 0, color-mix(in srgb,var(--green) 18%,transparent) 42%, transparent 68%);
  animation:v3-tdy-breathe var(--dur-breathe) ease-in-out infinite}
@keyframes v3-tdy-breathe{0%,100%{transform:scale(.82);opacity:.55}50%{transform:scale(1.12);opacity:1}}

/* ── Today ────────────────────────────────────────────────────────────────────────────────────────────────────── */
/* This week (17 October 2026): the number reached since Monday, and a bar for each day, today's in green */
body.v3 .v3-tdy .v3-week{display:block;margin-top:16px;padding:16px 18px;cursor:pointer}
body.v3 .v3-tdy .v3-week .v3-lbl{font-size:12.5px;font-weight:700;color:var(--grey-d);margin-bottom:10px;display:flex;justify-content:space-between}
body.v3 .v3-tdy .v3-week .v3-lbl span{font-size:inherit;color:inherit}
body.v3 .v3-tdy .v3-wk{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}
body.v3 .v3-tdy .v3-wk-n b{display:block;font-size:28px;font-weight:800;letter-spacing:-.03em;line-height:1.05}
body.v3 .v3-tdy .v3-wk-n span{font-size:12.5px;color:var(--grey)}
body.v3 .v3-tdy .v3-wk-days{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,16px);gap:8px;height:52px}
body.v3 .v3-tdy .v3-wk-days li{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;height:100%}
body.v3 .v3-tdy .v3-wk-days i{display:block;width:8px;height:calc(4px + (100% - 22px) * var(--h) / 100);min-height:4px;border-radius:4px;background:var(--line,#DCDAD5)}
body.v3 .v3-tdy .v3-wk-days li:not(.ahead) i{background:var(--ink,#17181A);opacity:.82}
body.v3 .v3-tdy .v3-wk-days li.now i{background:var(--green,#38CA5F);opacity:1}
body.v3 .v3-tdy .v3-wk-days li.z:not(.now) i,body.v3 .v3-tdy .v3-wk-days li.ahead i{background:var(--line);opacity:1}   /* nobody that day, or not yet */
body.v3 .v3-tdy .v3-wk-days span{font-size:11px;font-weight:600;color:var(--grey);line-height:1}
body.v3 .v3-tdy .v3-wk-days li.now span{color:var(--ink,#17181A)}
body.v3 .v3-tdy .v3-ins{position:relative;padding:16px 16px 14px;cursor:pointer}
body.v3 .v3-tdy .v3-ins+.v3-ins{margin-top:10px}
body.v3 .v3-tdy .v3-ins-top{display:flex;gap:12px;align-items:flex-start}
body.v3 .v3-tdy .v3-ins h3{font-size:16.5px;line-height:1.25;font-weight:700;margin:2px 0 4px;letter-spacing:-.018em}
body.v3 .v3-tdy .v3-ins p{font-size:14px;color:var(--grey-d);line-height:1.4}
body.v3 .v3-tdy .v3-ins-act{display:flex;gap:6px;margin-top:12px;padding-left:52px;flex-wrap:wrap;align-items:center}
body.v3 .v3-tdy .v3-next{margin-top:14px;width:100%;height:58px;border-radius:99px;background:var(--ink);color:var(--white);display:flex;align-items:center;justify-content:center;gap:14px;font-size:16px;font-weight:650;text-align:center}
body.v3 .v3-tdy .v3-next .v3-orb{width:18px;height:18px}
body.v3 .v3-tdy .v3-up{display:flex;gap:12px;align-items:center;padding:10px 0;border-top:1px solid var(--line-soft)}
body.v3 .v3-tdy h4+.v3-up{border-top:0;padding-top:0}
body.v3 .v3-tdy .v3-up .d{width:52px;flex:none;font-size:12.5px;font-weight:700;color:var(--grey-d)}
body.v3 .v3-tdy .v3-up .d.late{color:var(--amber-t)}
body.v3 .v3-tdy .v3-up .t{font-size:14px;flex:1;min-width:0}
body.v3 .v3-tdy .v3-today-grid,body.v3 .v3-tdy .v3-two-col{display:block}
body.v3 .v3-tdy .v3-desk-only{display:none!important}
body.v3 .v3-tdy .v3-aside>*+*{margin-top:12px}
body.v3 .v3-tdy .v3-qrow{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line-soft)}
body.v3 .v3-tdy [data-v3-pane]>.v3-qrow:first-child{border-top:0;padding-top:4px}
body.v3 .v3-tdy .v3-qrow .tx{flex:1;min-width:0}
body.v3 .v3-tdy .v3-qrow .t{font-weight:650}
body.v3 .v3-tdy .v3-qrow .s{font-size:13.5px;color:var(--grey);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.v3 .v3-tdy .v3-qrow.stale .s{color:var(--amber-t)}
body.v3 .v3-tdy .v3-qmain{display:flex;gap:12px;align-items:center;flex:1;min-width:0}
body.v3 .v3-tdy .v3-tkf{display:contents}
body.v3 .v3-tdy .v3-ready-hand{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:6px;flex-wrap:wrap}
body.v3 .v3-tdy .v3-ins-open{display:none}

body.v3 .v3-tdy .v3-ready-body{margin-top:10px}

/* ── Activity ─────────────────────────────────────────────────────────────────────────────────────────────────── */
body.v3 .v3-tdy .v3-mini3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}
body.v3 .v3-tdy .v3-mini3 b{font-size:26px;font-weight:800;line-height:1.45}
body.v3 .v3-tdy .v3-mini3 b.amber{color:var(--amber-t)}
body.v3 .v3-tdy .v3-sec:has(.v3-tlf){position:relative}
body.v3 .v3-tdy .v3-tlf{position:absolute;right:0;bottom:-2px}
body.v3 .v3-tdy .v3-tlf summary{list-style:none;cursor:pointer;font-size:14px;font-weight:650;color:var(--grey-d);display:inline-flex;align-items:center;gap:4px;min-height:24px}
body.v3 .v3-tdy .v3-tlf summary::-webkit-details-marker{display:none}
body.v3 .v3-tdy .v3-tlf-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:20;background:var(--white);border-radius:14px;padding:6px;min-width:200px;
  box-shadow:0 1px 0 var(--line-soft),0 18px 40px -18px color-mix(in srgb,var(--ink) 50%,transparent);display:grid}
body.v3 .v3-tdy .v3-tlf-menu a{padding:10px 12px;border-radius:10px;font-size:14.5px;font-weight:600;min-height:44px;display:flex;align-items:center}
body.v3 .v3-tdy .v3-tlf-menu a[aria-current]{background:var(--sunken)}
body.v3 .v3-tdy .v3-cold{margin-top:6px;border-top:1px solid var(--line-soft);padding-top:10px}
body.v3 .v3-tdy .v3-cold .v3-up:first-child{border-top:0;padding-top:0}
body.v3 .v3-tdy .v3-av.sm{width:34px;height:34px;font-size:12px}
body.v3 .v3-tdy .v3-li .s.late{color:var(--amber-t)}

/* ── Near your clients (the digest) ───────────────────────────────────────────────────────────────────────────── */
body.v3 .v3-tdy .v3-lgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}
body.v3 .v3-tdy .v3-lgrid>.v3-card+.v3-card{margin-top:0}
body.v3 .v3-tdy .v3-sale-a{font-weight:700;margin-top:6px}
body.v3 .v3-tdy .v3-sale-s{font-size:13.5px;color:var(--grey-d);margin-top:2px}

/* the task's box: Done (the prototype's .ck) */
body.v3 .v3-tdy .v3-ck{display:inline-flex;align-items:center;justify-content:center;width:auto;min-width:24px}
body.v3 .v3-tdy .v3-ck .bx{width:24px;height:24px;border-radius:8px;border:2px solid var(--never);display:grid;place-items:center;flex:none;color:var(--white);transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
body.v3 .v3-tdy .v3-ck.done .bx{background:var(--green);border-color:var(--green);color:var(--ink)}
body.v3 .v3-tdy .v3-li.gone .t{color:var(--grey);text-decoration:line-through}

/* Get set up (the fallback card while the setup area's own is not in) */
body.v3 .v3-tdy .v3-gsu{padding:16px 18px}
body.v3 .v3-tdy .v3-gsu-h{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
body.v3 .v3-tdy .v3-gsu-h b{font-size:19px;font-weight:800;letter-spacing:-.02em}
body.v3 .v3-tdy .v3-pbar{height:8px;border-radius:99px;background:var(--sunken);overflow:hidden;margin:12px 0 2px}
body.v3 .v3-tdy .v3-pbar i{display:block;height:100%;background:var(--green);border-radius:99px;transition:width var(--dur-base) var(--ease-out)}
body.v3 .v3-tdy .v3-tcard{display:block;margin-top:14px}
body.v3 .v3-tdy .v3-tcard .v3-pill{flex:none}

/* ── reports ─────────────────────────────────────────────────────────────────────────────────────────────────── */
body.v3 .v3-tdy .v3-val{font-size:32px;font-weight:800;letter-spacing:-.04em;line-height:1.05}
body.v3 .v3-tdy .v3-bars{display:grid;grid-template-columns:repeat(var(--n,6),minmax(0,1fr));gap:8px;align-items:end;height:150px;padding-top:18px;position:relative;list-style:none}
body.v3 .v3-tdy .v3-bars .v3-col{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:6px;outline-offset:2px}
body.v3 .v3-tdy .v3-bars .b{width:100%;max-width:30px;border-radius:4px 4px 0 0;background:color-mix(in srgb,var(--ink) 22%,transparent);transform-origin:bottom;min-height:0}
body.v3 .v3-tdy .v3-bars .v3-col.cur .b{background:var(--green)}
body.v3 .v3-tdy .v3-bars .m{font-size:11.5px;color:var(--grey);font-weight:600;height:14px;line-height:14px}
body.v3 .v3-tdy .v3-bars .v{font-size:11.5px;font-weight:700;color:var(--grey-d);line-height:1.45}
body.v3 .v3-tdy .v3-hbs{list-style:none}
body.v3 .v3-tdy .v3-hb{display:grid;grid-template-columns:120px minmax(0,1fr) 70px;gap:10px;align-items:center;padding:7px 0;font-size:14px;position:relative;outline-offset:2px}
body.v3 .v3-tdy .v3-hb .b{height:14px;border-radius:0 4px 4px 0;background:var(--ink);transform-origin:left;min-width:0}
body.v3 .v3-tdy .v3-hb .b.g{background:var(--green)}
body.v3 .v3-tdy .v3-hb>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.v3 .v3-tdy .v3-hb>span:nth-child(3){text-align:right;font-weight:650}
body.v3 .v3-tdy .v3-tip{position:absolute;left:50%;bottom:calc(100% + 4px);transform:translateX(-50%);background:var(--ink);color:var(--white);font-size:12.5px;font-weight:600;
  padding:5px 9px;border-radius:8px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease-out);z-index:3}
body.v3 .v3-tdy .v3-hb .v3-tip{left:auto;right:0;transform:none;max-width:100%;white-space:normal}   /* a bar row's tip ends at the row's right edge, inside the card */
body.v3 .v3-tdy :is(.v3-col,.v3-hb):is(:hover,:focus-visible) .v3-tip{opacity:1}
/* the table view: a small "Table" at the card's top right, the table over the card below it (the card keeps the
   prototype's size) */
body.v3 .v3-tdy [data-report]{position:relative}
body.v3 .v3-tdy .v3-table{position:absolute;top:14px;right:14px;z-index:4}
body.v3 .v3-tdy .v3-table summary{cursor:pointer;font-size:12.5px;font-weight:650;color:var(--grey);height:24px;padding:0 6px;border-radius:8px;display:inline-flex;align-items:center;list-style:none}
body.v3 .v3-tdy .v3-table summary:hover,body.v3 .v3-tdy .v3-table[open] summary{background:var(--sunken);color:var(--ink)}
body.v3 .v3-tdy .v3-table summary::-webkit-details-marker{display:none}
body.v3 .v3-tdy .v3-table-pop{position:absolute;right:0;top:calc(100% + 6px);width:min(320px,calc(100vw - 72px));background:var(--white);border-radius:14px;padding:6px 12px;
  box-shadow:0 1px 0 var(--line-soft),0 18px 40px -18px color-mix(in srgb,var(--ink) 50%,transparent)}
body.v3 .v3-tdy .v3-table table{width:100%;border-collapse:collapse;font-size:13.5px}
body.v3 .v3-tdy .v3-table :is(th,td){text-align:left;padding:6px 0;border-top:1px solid var(--line-soft);font-weight:500}
body.v3 .v3-tdy .v3-table thead th{font-weight:650;color:var(--grey-d);border-top:0}
body.v3 .v3-tdy .v3-table .num{text-align:right}
body.v3 .v3-tdy .v3-rgrid>*+*{margin-top:0}

/* ── phone: below 900 ─────────────────────────────────────────────────────────────────────────────────────────── */
@media (max-width:899px){
  body.v3 .v3-tdy .v3-switch a{padding:0 10px;font-size:13.5px;gap:5px}
  body.v3 .v3-tdy .v3-switch .v3-bdg{min-width:18px;height:18px;font-size:11px}
  body.v3 .v3-tdy .v3-aside{margin-top:24px}
  body.v3 .v3-tdy .v3-two-col>*+*{margin-top:12px}
  body.v3 .v3-tdy .v3-rgrid>*+*{margin-top:10px}
}

/* ── desk: 900 and wider (the prototype's breakpoint) ─────────────────────────────────────────────────────────── */
@media (min-width:900px){
  body.v3 .v3-tdy .v3-desk-only{display:flex!important}
  body.v3 .v3-tdy .v3-week.v3-desk-only{display:block!important}   /* This week stacks: its label, then the number and the bars */
  body.v3 .v3-tdy .v3-ph-only{display:none!important}
  body.v3 .v3-tdy .v3-hd .v3-me{display:none}
  body.v3 .v3-tdy .v3-greet,body.v3 .v3-tdy .v3-h1{font-size:42px}
  body.v3 .v3-tdy .v3-today-grid{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:32px;align-items:start}
  body.v3 .v3-tdy .v3-two-col{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
  body.v3 .v3-tdy .v3-rgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  body.v3 .v3-tdy .v3-rgrid>.v3-card+.v3-card{margin-top:0}
  body.v3 .v3-tdy .v3-lgrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
}
@media (min-width:1600px){
  body.v3 .v3-tdy .v3-today-grid{grid-template-columns:minmax(0,1fr) 460px;gap:40px}
  body.v3 .v3-tdy .v3-rgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
  body.v3 .v3-tdy .v3-lgrid{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (prefers-reduced-motion: reduce){
  body.v3 .v3-tdy .v3-orb .v3-halo{animation:none}
  body.v3 .v3-tdy .v3-ck .bx,body.v3 .v3-tdy .v3-pbar i{transition:none}
}
body.v3 .v3-tdy .v3-dn{display:inline-grid;transform:rotate(90deg)}

/* Reports' Table toggle (the spacing round, 16 October 2026): room either side of the word when it is drawn as a chip */
body.v3 .v3-tdy .v3-table summary{padding:0 10px}
