/* Approved Today canvas, Ledger v5 A.14. All paint and type comes from shared tokens. */
.tv2 { font-family:var(--font-sans); color:var(--text-primary); display:flex;flex-direction:column;gap:var(--space-6);padding-bottom:var(--space-9); }
.tv2[hidden] {display:none;}
.tv2-head {display:flex;flex-direction:column;gap:var(--space-4);}
.tv2 p,.tv2 h1,.tv2 h2,.tv2 h3,.tv2-sheet p,.tv2-sheet h2,.tv2-sheet h3 {margin:0;}
.tv2-date,.tv2-muted,.tv2-provenance,.tv2-row-date,.tv2-chart-method,.tv2-row-label p,.tv2-trust,.tv2-source small,.tv2-empty,.tv2-coverage {font-size:var(--text-sm);line-height:var(--lh-snug);color:var(--text-secondary);}
.tv2-headline {font:var(--weight-semibold) var(--today-answer-size)/var(--lh-heading) var(--font-display);letter-spacing:var(--tracking-tight);text-wrap:balance;max-width:100%;}
.tv2-provenance {display:flex;align-items:center;gap:var(--space-4);}
.tv2-logos {display:flex;align-items:center;width:var(--stack-logo-slot);flex:none;}
.tv2-mark {width:var(--stack-logo-size);height:var(--stack-logo-size);background:var(--surface-raised);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);display:inline-flex;align-items:center;justify-content:center;flex:none;}
.tv2-mark + .tv2-mark {margin-left:calc(var(--space-3) * -1);}
.tv2-mark img,.tv2-mark svg {width:var(--stack-mark-size);height:var(--stack-mark-size);object-fit:contain;}
.tv2-mark svg {fill:none;stroke:var(--text-secondary);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.tv2-cash-card {display:grid;grid-template-columns:minmax(min-content,1fr) minmax(0,2fr);gap:var(--space-7);border:var(--border-width) solid var(--ui-line);border-radius:var(--radius-card);padding:var(--space-6);background:var(--surface-raised);}
.tv2-cash-total {display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-4);min-width:0;}
.tv2-money {font-family:var(--font-mono);font-weight:var(--weight-semibold);font-variant-numeric:tabular-nums;letter-spacing:var(--tracking-normal);}
/* LEDGER-V5 numerals: a money figure never breaks inside itself. The total column is at least the
   figure's width (min-content), so the chart yields room instead of the number wrapping. */
.tv2-cash-figure {font-size:var(--num-lg);line-height:var(--lh-heading);white-space:nowrap;overflow-wrap:normal;}
.tv2-pill {display:inline-flex;align-items:center;justify-self:start;gap:var(--space-3);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-sunken);padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--lh-snug);color:var(--text-secondary);max-width:100%;}
.tv2-pill--covered {background:var(--cash-up-soft);color:var(--cash-up-text-strong);border-color:var(--cash-up-border);}
.tv2-pill--needs {background:var(--warn-soft);color:var(--warn-text-strong);border-color:var(--warn-border);}
.tv2-chart-area {position:relative;min-width:0;padding-top:var(--space-6);}
.tv2-chart-area svg {width:100%;height:var(--stack-chart-height);overflow:visible;}
.tv2-line {stroke:var(--accent);fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;}
.tv2-band {fill:var(--accent);fill-opacity:.08;stroke:none;}
.tv2-leader {stroke:var(--border-strong);fill:none;stroke-width:1;vector-effect:non-scaling-stroke;}
.tv2-low-dot {fill:var(--surface-raised);stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke;}
.tv2-floor-line {stroke:var(--warn-text);fill:none;stroke-width:1.4;stroke-dasharray:5 5;vector-effect:non-scaling-stroke;}
.tv2-floor-hit {stroke:transparent;fill:none;stroke-width:44;cursor:pointer;vector-effect:non-scaling-stroke;}
.tv2-floor-hit:focus-visible {stroke:var(--accent-border);stroke-opacity:.4;outline:none;}
.tv2-low {position:absolute;top:var(--space-2);right:0;font-size:var(--text-sm);line-height:var(--lh-snug);color:var(--text-secondary);}
.tv2-axis {display:flex;justify-content:space-between;font-size:var(--text-sm);color:var(--text-secondary);}
.tv2-floor-chip {margin-top:var(--space-4);margin-left:auto;}
.tv2-chart-method {grid-column:1/-1;}
.tv2-stack h2 {font:var(--weight-semibold) var(--text-lg)/var(--lh-snug) var(--font-display);margin-bottom:var(--space-4);}
.tv2-stack {border:var(--border-width) solid var(--ui-line);border-radius:var(--radius-card);background:var(--surface-raised);overflow:clip;}
.tv2-stack-title {display:flex;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);}
.tv2-count {font-size:var(--text-sm);color:var(--text-secondary);}
.tv2-stack-body {overflow:clip;}
.tv2-row {display:grid;grid-template-columns:minmax(0,2.4fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.2fr) var(--stack-action-width);gap:var(--space-5);align-items:center;padding:var(--space-5) var(--space-6);border-top:var(--border-width) solid var(--border-subtle);min-width:0;}
.tv2-row--head {border-top:none;background:var(--surface-sunken);font-size:var(--text-sm);color:var(--text-secondary);padding-top:var(--space-4);padding-bottom:var(--space-4);}
.tv2-row--head>:first-child {padding-left:calc(var(--stack-logo-slot) + var(--space-4));}
.tv2-row--head>:nth-child(4) {text-align:right;}
.tv2-identity {display:flex;align-items:center;gap:var(--space-4);min-width:0;}
.tv2-row-label {min-width:0;overflow-wrap:anywhere;}
.tv2-row-label h3 {font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--lh-snug);}
.tv2-row-label p {margin-top:var(--space-2);}
.tv2-row-result {text-align:right;font-size:var(--num-sm);line-height:var(--lh-heading);overflow-wrap:anywhere;min-width:0;}
.tv2-row-result:not(.tv2-money) {font:var(--weight-medium) var(--text-sm)/var(--lh-snug) var(--font-sans);}
.tv2-button {width:var(--stack-action-width);min-height:var(--tap-min);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-pill);padding:var(--space-3) var(--space-4);background:var(--surface-raised);color:var(--text-primary);font:var(--weight-semibold) var(--text-sm)/var(--lh-snug) var(--font-sans);cursor:pointer;touch-action:manipulation;transition:transform var(--duration-instant) var(--ease-out);}
.tv2-button--decision {background:var(--accent);border-color:var(--accent);color:var(--text-on-accent);}
.tv2-button:active {transform:scale(.97);}
.tv2-button:focus-visible,.tv2-sheet a:focus-visible,.tv2-coverage summary:focus-visible {outline:calc(var(--border-width) * 2) solid var(--focus-ring);outline-offset:var(--space-2);}
.tv2-button:disabled {cursor:default;color:var(--text-secondary);}
.tv2-floor-chip--read {border-color:var(--border-subtle);}
.tv2-empty {padding:var(--space-6);}
.tv2-trust {display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;}
.tv2-footer-tools {display:flex;gap:var(--space-4);flex-wrap:wrap;}
.tv2-coverage summary {cursor:pointer;min-height:var(--tap-min);display:flex;align-items:center;}
.tv2-coverage p {margin-bottom:var(--space-3);}
.tv2-sheet {position:fixed;inset:0;margin:auto;width:calc(100% - var(--space-7));max-width:var(--stack-sheet-width);max-height:calc(100dvh - var(--space-8));overflow:auto;overscroll-behavior:contain;background:var(--surface-raised);color:var(--text-primary);border:var(--border-width) solid var(--border-subtle);border-radius:var(--stack-sheet-radius);padding:var(--space-7);box-shadow:var(--shadow-lg);font-family:var(--font-sans);}
.tv2-sheet[open] {animation:tv2-card-enter var(--duration-base) var(--ease-out);}
.tv2-sheet::backdrop {background:var(--surface-overlay);}
.tv2-card-head {display:flex;align-items:center;gap:var(--space-5);margin-bottom:var(--space-5);}
.tv2-card-title {font:var(--weight-semibold) var(--text-xl)/var(--lh-heading) var(--font-display);overflow-wrap:anywhere;}
.tv2-card-amount {margin-top:var(--space-4);font-size:var(--num-md);overflow-wrap:anywhere;}
.tv2-card-reason {font-size:var(--text-base);line-height:var(--lh-snug);margin-top:var(--space-5)!important;}
.tv2-source-heading {font-size:var(--text-sm);font-weight:var(--weight-semibold);margin-top:var(--space-6)!important;margin-bottom:var(--space-3)!important;}
.tv2-source {border-top:var(--border-width) solid var(--border-subtle);padding:var(--space-4) 0;display:flex;align-items:center;gap:var(--space-4);font-size:var(--text-sm);line-height:var(--lh-snug);overflow-wrap:anywhere;}
.tv2-source small {display:block;}
.tv2-card-tools {display:flex;justify-content:space-between;gap:var(--space-4);margin-top:var(--space-5);flex-wrap:wrap;}
.tv2-feedback {color:var(--cash-down-text);font-size:var(--text-sm);line-height:var(--lh-snug);}
.tv2-cash-title {font-family:var(--font-display);font-size:var(--text-2xl);}
.tv2-relocated {margin-top:var(--space-7);}
.today-v2-today #hero-banner,.today-v2-today #dashboard-greeting,.today-v2-today #dashboard-customize-btn {display:none!important;}
.today-v2-on .tv2-cash #treasury-cockpit,.today-v2-on .tv2-cash #cockpit-answer,.today-v2-on .tv2-cash .cockpit-provenance {display:block!important;}
/* Floor retains the existing form and POST/PATCH path. Other policy bases keep their full editor. */
.tv2-floor #covenant-modal-intro,.tv2-floor #covenant-kind-input,.tv2-floor #covenant-label-input,.tv2-floor #covenant-remove-zone,.tv2-floor .u-field-label:not(#covenant-amount-label) {display:none!important;}
.tv2-floor #covenant-modal-title {font:var(--weight-semibold) var(--text-xl)/var(--lh-heading) var(--font-display);}
.tv2-floor .tv2-floor-preview {font:var(--weight-normal) var(--text-sm)/var(--lh-snug) var(--font-sans);color:var(--text-secondary);margin:var(--space-5) 0;}
@keyframes tv2-card-enter {from{opacity:0;transform:translateY(var(--space-3));}to{opacity:1;transform:translateY(0);}}
@media(hover:hover) and (pointer:fine) {.tv2-button:hover {background:var(--surface-hover);border-color:var(--border-strong);}.tv2-button--decision:hover {background:var(--accent-hover);border-color:var(--accent-hover);}}
@media(max-width:1000px) {.tv2-row:not(.tv2-row--head){grid-template-columns:minmax(0,1fr) minmax(0,1fr) var(--stack-action-width-phone);gap:var(--space-4);}.tv2-row--head{display:none;}.tv2-identity{grid-column:1/3;}.tv2-row-result{grid-column:3;grid-row:1;}.tv2-row-date{grid-column:2;grid-row:2;text-align:right;}.tv2-row>.tv2-row-actions{grid-column:3;grid-row:2;width:var(--stack-action-width-phone);}.tv2-row>.tv2-pill{grid-column:1;grid-row:2;}.tv2-headline {font-size:var(--text-2xl);}.tv2-cash-card{grid-template-columns:1fr;gap:var(--space-5);}.tv2-cash-total {display:grid;grid-template-columns:1fr auto;align-items:center;}.tv2-cash-total>.tv2-pill,.tv2-cash-total>.tv2-muted:not(:first-child){grid-column:1/-1;}.tv2-cash-figure{font-size:var(--num-md);}.tv2-cash-total>p:first-child {margin-right:var(--space-4);}.tv2-chart-area svg{height:var(--stack-chart-height-phone);}}
@media(max-width:480px) {.tv2 {gap:var(--space-6);}.tv2-row {padding:var(--space-5);}.tv2-cash-card {padding:var(--space-5);}.tv2-low {font-size:var(--text-sm);}.tv2-sheet{padding:var(--space-6);}.tv2-trust{align-items:flex-start;}.tv2-button {width:var(--stack-action-width-phone);}.tv2-row-label h3{font-size:var(--text-sm);}.tv2-identity {gap:var(--space-3);}.tv2-headline{font-size:var(--text-xl);}.tv2-cash-figure{font-size:var(--num-md);}.tv2-row-label p{display:none;}}
@media(max-width:360px) {.tv2-row:not(.tv2-row--head){grid-template-columns:minmax(0,1fr) var(--stack-action-width-phone);}.tv2-identity{grid-column:1/-1;grid-row:1;}.tv2-row-result{grid-column:2;grid-row:2;}.tv2-row>.tv2-pill{grid-column:1;grid-row:2;}.tv2-row-date{grid-column:1;grid-row:3;text-align:left;}.tv2-row>.tv2-row-actions{grid-column:2;grid-row:3;}.tv2-cash-total{display:flex;}.tv2-low{position:static;margin-bottom:var(--space-3)!important;}.tv2-chart-area{padding-top:0;}}
@media(prefers-reduced-motion:reduce) {.tv2-sheet[open]{animation:none;}.tv2-button:active{transform:none;}.tv2-button{transition:none;}}
.tv2-sheet--still[open]{animation:none;}
/* Supersede the legacy priority-card wrapper only while the approved flag is on. */
#cfo-daily.tv2 {border:0;padding:0;background:transparent;margin:var(--space-6) 0;}
#cfo-daily.tv2 p {margin:0;line-height:var(--lh-snug);}
#cfo-daily.tv2 .tv2-stack h2 {font:var(--weight-semibold) var(--text-lg)/var(--lh-heading) var(--font-display);margin-bottom:0;}
#cfo-daily.tv2 .tv2-row-label h3 {font:var(--weight-semibold) var(--text-sm)/var(--lh-snug) var(--font-sans);}
#cfo-daily.tv2 .tv2-row-label p {margin-top:var(--space-2);}
#cfo-daily.tv2 .tv2-floor-chip {margin:var(--space-4) 0 0 auto;}

.tv2-low .tv2-money,.tv2-floor-chip .tv2-money {font-size:var(--num-sm);}
#cfo-daily.tv2 .tv2-floor-chip {width:auto;min-width:var(--stack-action-width);display:flex;align-items:center;justify-content:center;gap:var(--space-3);}
.tv2-floor .btn {border-radius:var(--radius-pill);min-height:var(--tap-min);width:var(--stack-action-width);font-size:var(--text-sm);}
.tv2-floor .btn-ghost {border:var(--border-width) solid var(--border-default);background:var(--surface-raised);}
.tv2-floor button:active {transform:scale(.97);}
@media(max-width:480px) {.tv2-floor .btn{width:var(--stack-action-width-phone);}}
@media(prefers-reduced-motion:reduce) {.tv2-floor button:active{transform:none;}}
.tv2-name-button {font:inherit;line-height:inherit;color:inherit;border:0;background:none;padding:0;text-align:left;cursor:pointer;min-height:var(--tap-min);touch-action:manipulation;overflow-wrap:anywhere;}
.tv2-name-button:focus-visible {outline:calc(var(--border-width) * 2) solid var(--focus-ring);outline-offset:var(--space-2);}
.tv2-name-button:active {transform:scale(.97);}
.tv2-saved-record {border-top:var(--border-width) solid var(--border-subtle);margin-top:var(--space-5);padding-top:var(--space-5);}
@media(hover:hover) and (pointer:fine) {.tv2-name-button:hover {text-decoration:underline;text-underline-offset:var(--space-2);}}
@media(prefers-reduced-motion:reduce) {.tv2-name-button:active{transform:none;}}
.tv2-provenance .tv2-logos--all {width:auto;}
.today-v2-today #sync-freshness-row {display:none!important;}
@media(max-width:1000px) {.tv2-row>.tv2-pill {padding-inline:var(--space-3);}}
/* Text zoom changes the space required by a label, not the viewport width. */
.tv2 {container-type:inline-size;}
@container (max-width:48rem) {
  .tv2-row--head {display:none;}
  .tv2-row:not(.tv2-row--head) {grid-template-columns:minmax(0,1fr) minmax(0,1fr) var(--stack-action-width-phone);gap:var(--space-4);}
  .tv2-identity {grid-column:1/3;}
  .tv2-row-result {grid-column:3;grid-row:1;}
  .tv2-row-date {grid-column:2;grid-row:2;text-align:right;}
  .tv2-row>.tv2-row-actions {grid-column:3;grid-row:2;width:var(--stack-action-width-phone);}
  .tv2-row>.tv2-pill {grid-column:1;grid-row:2;}
}
@container (max-width:22rem) {
  .tv2-row:not(.tv2-row--head) {display:flex;flex-wrap:wrap;gap:var(--space-4);}
  .tv2-identity {flex-basis:100%;}
  .tv2-row-result {width:100%;text-align:right;order:1;}
  .tv2-row>.tv2-pill {order:3;flex:none;}
  .tv2-row-date {order:2;flex:none;flex-basis:100%;text-align:left;}
  .tv2-row>.tv2-row-actions {order:4;margin-left:auto;}
  .tv2-low {position:static;margin-bottom:var(--space-3)!important;}
  .tv2-chart-area {padding-top:0;}
}
@media(max-width:1000px) {
  .tv2-cash-total {display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;}
  .tv2-cash-total>.tv2-cash-figure {max-width:100%;}
  .tv2-cash-total>.tv2-pill,.tv2-cash-total>.tv2-muted:not(:first-child) {flex-basis:100%;}
}

.tv2-stack-body {width:100%;min-width:0;border-spacing:0;display:block;text-align:left;}
.tv2-stack-body thead,.tv2-stack-body tbody {display:block;width:100%;}
.tv2-stack-body :is(th,td) {white-space:normal;min-width:0;}
.tv2-stack-body th,.tv2-stack-body td:not(.tv2-pill) {padding:0;background:none;}
.tv2-stack-body th {text-align:left;font-weight:var(--weight-normal);border:0;}
.tv2-stack-body td:not(.tv2-pill) {border:0;}
.tv2-stack-body tbody tr:nth-child(even) td:not(.tv2-pill) {background:none;}
.tv2-stack-body .tv2-pill {border:var(--border-width) solid var(--border-subtle);background:var(--surface-sunken);}
.tv2-stack-body .tv2-pill--needs {border-color:var(--warn-border);background:var(--warn-soft);color:var(--warn-text-strong);}
.tv2-row-actions {padding:0;text-align:right;}
.tv2-row-actions .tv2-button {width:100%;}
@media(max-width:1000px) {.tv2-row--head {display:grid;position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}}
@container(max-width:48rem) {.tv2-row--head {display:grid;position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}}
.tv2-chart-area {padding-top:0;}
.tv2-axis {align-items:center;gap:var(--space-3);}
#cfo-daily.tv2 .tv2-axis .tv2-floor-chip {margin:0;}
@media(max-width:1000px) {.tv2-cash-total>.tv2-chart-method {flex-basis:100%;}}
@container(max-width:22rem) {
  .tv2-axis {flex-wrap:wrap;}
  .tv2-axis>span {white-space:nowrap;}
  #cfo-daily.tv2 .tv2-axis .tv2-floor-chip {order:1;flex-basis:100%;white-space:nowrap;flex-wrap:wrap;}
  .tv2-floor-chip .tv2-money {white-space:nowrap;}
}
/* Keep enlarged navigation text readable rather than overlapping its neighbor. */
@media(max-width:640px) {
  .today-v2-on .tf-bottom-nav {height:auto;min-height:var(--bottom-nav-h);}
  .today-v2-on .tf-bottom-nav__items {height:auto;}
  .today-v2-on .tf-bottom-nav__item {min-height:var(--bottom-nav-h);}
  .today-v2-on .tf-bottom-nav__label {max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:var(--lh-snug);}
  .today-v2-on .tf-app__main {padding-bottom:calc(var(--space-9) + var(--space-10) + env(safe-area-inset-bottom,0px));}
}

.tv2-stack-title h2 {margin:0;}

/* Mail item reads can contain long provider reference names. */
.tv2-mail-item {overflow-wrap:anywhere;}

/* R-0438 Today, all items (today_all_items_v1). One row for Today and See all, A.14 rule 3:
   logo · item and meta · status pill · due · figure · one action, then Ask. Tokens only. */
.tv2 .tv2-stack-body .tv2-row--all {grid-template-columns:minmax(0,2.4fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,1.2fr) calc(var(--stack-action-width) + var(--space-3) + var(--tap-min));grid-template-areas:"id pill due fig act";}
.tv2 .tv2-row--all>.tv2-identity,.tv2 .tv2-row--all>:nth-child(1) {grid-area:id;}
.tv2 .tv2-row--all>.tv2-row-status,.tv2 .tv2-row--head.tv2-row--all>:nth-child(2) {grid-area:pill;}
.tv2 .tv2-row--all>.tv2-row-date,.tv2 .tv2-row--head.tv2-row--all>:nth-child(3) {grid-area:due;}
.tv2 .tv2-row--all>.tv2-row-result,.tv2 .tv2-row--head.tv2-row--all>:nth-child(4) {grid-area:fig;}
.tv2 .tv2-row--all>.tv2-row-actions,.tv2 .tv2-row--head.tv2-row--all>:nth-child(5) {grid-area:act;}
.tv2 .tv2-row--head.tv2-row--all>:nth-child(5) {text-align:right;}
.tv2 .tv2-row--all>.tv2-row-status {justify-self:start;min-width:0;}
.tv2 .tv2-row--all .tv2-pill {white-space:nowrap;}
.tv2 .tv2-row--all>.tv2-row-date {font-size:var(--text-sm);line-height:var(--lh-snug);color:var(--text-primary);text-align:left;}
/* A figure never breaks inside itself and sits on the list's one right edge. */
.tv2 .tv2-stack-body .tv2-row--all>.tv2-row-result {white-space:nowrap;overflow-wrap:normal;text-align:right;font-variant-numeric:tabular-nums;}
.tv2 .tv2-stack-body .tv2-row--all>.tv2-row-actions {display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);width:auto;}
.tv2 .tv2-row--all .tv2-row-actions .tv2-button {width:var(--stack-action-width);flex:none;}
/* A decision this seat cannot make keeps its place and label, plainly unavailable. */
.tv2 .tv2-row--all .tv2-button:disabled {background:var(--surface-sunken);border-color:var(--border-subtle);color:var(--text-secondary);cursor:not-allowed;}
.tv2-ask {width:var(--tap-min);height:var(--tap-min);flex:none;display:inline-flex;align-items:center;justify-content:center;padding:0;border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-raised);color:var(--accent);cursor:pointer;touch-action:manipulation;transition:transform var(--duration-instant) var(--ease-out);}
.tv2-ask svg {width:var(--stack-mark-size);height:var(--stack-mark-size);fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.tv2-ask:active {transform:scale(.97);}
.tv2-ask:focus-visible {outline:calc(var(--border-width) * 2) solid var(--focus-ring);outline-offset:var(--space-2);}
.tv2-ask:disabled {cursor:default;color:var(--text-secondary);}
@media(hover:hover) and (pointer:fine) {.tv2-ask:hover {border-color:var(--accent-border);background:var(--accent-soft);}}
.tv2-count--chip {display:inline-flex;align-items:center;border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-sunken);padding:var(--space-2) var(--space-4);font-weight:var(--weight-semibold);white-space:nowrap;}
.tv2-stack-foot {display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;padding:var(--space-5) var(--space-6);border-top:var(--border-width) solid var(--border-subtle);}
.tv2-stack-foot[hidden] {display:none;}
.tv2-stack-foot p {font-size:var(--text-sm);line-height:var(--lh-snug);color:var(--text-secondary);}
.tv2-stack-foot--end {justify-content:flex-end;}
.tv2-stack--all .tv2-feedback:empty {display:none;}
.tv2-stack--all .tv2-feedback {padding:0 var(--space-6) var(--space-5);}
.tv2-viewonly {display:flex;align-items:center;gap:var(--space-4);margin:0 var(--space-6) var(--space-5)!important;padding:var(--space-4) var(--space-5);border-radius:var(--radius-md);background:var(--surface-sunken);font-size:var(--text-sm);line-height:var(--lh-snug);color:var(--text-primary);}
.tv2-all>.tv2-viewonly {margin:0!important;}
.tv2-viewonly svg {width:var(--space-5);height:var(--space-5);flex:none;fill:none;stroke:var(--text-secondary);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}
.tv2-group-head {display:block;border-top:var(--border-width) solid var(--border-subtle);}
.tv2-group-head th {display:flex!important;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6) var(--space-3)!important;font:var(--weight-semibold) var(--text-sm)/var(--lh-snug) var(--font-sans)!important;color:var(--text-secondary);}
.tv2-group-head+.tv2-row {border-top:none;}
.tv2-all {display:flex;flex-direction:column;gap:var(--space-6);min-width:0;}
.tv2-all-head {display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;}
.tv2-all-title {font:var(--weight-semibold) var(--text-2xl)/var(--lh-heading) var(--font-display);letter-spacing:var(--tracking-tight);overflow-wrap:anywhere;}
.tv2-all-title:focus {outline:none;}
.tv2-all-title:focus-visible {outline:calc(var(--border-width) * 2) solid var(--focus-ring);outline-offset:var(--space-2);}
.tv2-stack--resolved {margin-top:var(--space-4);}
.tv2-stack--resolved .tv2-row--head {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}
.tv2 .tv2-row--resolved .tv2-row-label h3 {font-weight:var(--weight-medium);}
.tv2 .tv2-row--resolved .tv2-row-label p {display:block;}
.tv2-stack-body .tv2-pill--covered {background:var(--cash-up-soft);color:var(--cash-up-text-strong);border-color:var(--cash-up-border);}
/* Phone: identity and figure on top, status and due below them, then the action and Ask (A.14 rule 3).
   One action plus Ask is wider than a phone row leaves beside a pill, so it takes its own line. */
@container (max-width:48rem) {
  .tv2 .tv2-stack-body .tv2-row--all:not(.tv2-row--head) {display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"id fig" "pill due" "act act";column-gap:var(--space-4);row-gap:var(--space-3);}
  .tv2 .tv2-row--all>.tv2-row-date {text-align:right;}
  .tv2 .tv2-row--resolved>.tv2-row-actions,.tv2 .tv2-row--resolved>.tv2-row-result:empty {display:none;}
  .tv2 .tv2-row--all .tv2-row-actions .tv2-button {width:var(--stack-action-width-phone);}
  .tv2-stack-foot {padding:var(--space-5);}
  .tv2-viewonly {margin:0 var(--space-5) var(--space-5)!important;}
}
@container (max-width:22rem) {
  .tv2 .tv2-stack-body .tv2-row--all:not(.tv2-row--head) {grid-template-areas:"id id" "fig fig" "pill due" "act act";}
}
@media(prefers-reduced-motion:reduce) {.tv2-ask:active{transform:none;}.tv2-ask{transition:none;}}
/* The item Ask was opened from, inside the existing Ask drawer. */
.tv2-ask-attached {padding:var(--space-4) var(--space-5);border-bottom:var(--border-width) solid var(--border-subtle);font-family:var(--font-sans);}
.tv2-ask-attached p {margin:0;}
.tv2-ask-attached__label {font-size:var(--text-sm);font-weight:var(--weight-semibold);color:var(--text-secondary);margin-bottom:var(--space-3)!important;}
.tv2-ask-attached__body {display:flex;align-items:flex-start;gap:var(--space-4);border:var(--border-width) solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-sunken);padding:var(--space-4);}
.tv2-ask-attached__body .tv2-logos {width:auto;}
.tv2-ask-attached__words {display:flex;flex-direction:column;gap:var(--space-2);min-width:0;flex:1;}
.tv2-ask-attached__top {display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4);}
.tv2-ask-attached__title {font-size:var(--text-sm);font-weight:var(--weight-semibold);line-height:var(--lh-snug);overflow-wrap:anywhere;}
.tv2-ask-attached .tv2-pill {flex:none;white-space:nowrap;}
.tv2-ask-attached__amount {font-size:var(--num-sm);white-space:nowrap;}
/* Company switch in progress (LEDGER-V5 C.6, portal/company-switch.js). Constant motion: linear; still under reduced motion. */
.cosw__trigger[aria-busy="true"] {cursor:progress;}
.cosw__busy {flex:none;width:var(--space-4);height:var(--space-4);border-radius:var(--radius-pill);border:2px solid var(--border-strong);border-top-color:var(--text-primary);animation:cosw-spin 800ms linear infinite;}
@keyframes cosw-spin {to {transform:rotate(360deg);}}
@media (prefers-reduced-motion: reduce) {.cosw__busy {animation:none;border-top-color:var(--border-strong);}}
.cosw-live {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}

/* R-0405 (2026-10-11): Today's rows in the homepage language (LEDGER-V5 A.14, rule 10).
   One line per row: the name and its meta share a line and wrap only when they must (never an
   ellipsis, rule 7); the source is its logo, named for a screen reader and on hover. Outline is
   a visible hairline, teal stays the one decision. Rows arrive once, quietly; still under reduced
   motion. Display only: no figure, label or control changes. */
.tv2-sr {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0;}
.tv2-logos {position:relative;}
.tv2 .tv2-stack-body .tv2-row:not(.tv2-row--head) {padding-top:var(--space-4);padding-bottom:var(--space-4);}
.tv2 .tv2-row-label {display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--space-3);row-gap:0;}
#cfo-daily.tv2 .tv2-row-label p,.tv2 .tv2-row-label p {margin-top:0;}
.tv2 .tv2-button:not(.tv2-button--decision),.tv2-sheet .tv2-button:not(.tv2-button--decision),.tv2 .tv2-ask {border-color:var(--border-default);}
@keyframes tv2-row-in {from{opacity:0;transform:translateY(var(--space-2));}to{opacity:1;transform:none;}}
.tv2 .tv2-stack-body tbody .tv2-row {animation:tv2-row-in var(--duration-base) var(--ease-out) both;}
.tv2 .tv2-stack-body tbody .tv2-row:nth-child(2) {animation-delay:calc(var(--duration-instant) * 0.5);}
.tv2 .tv2-stack-body tbody .tv2-row:nth-child(3) {animation-delay:var(--duration-instant);}
.tv2 .tv2-stack-body tbody .tv2-row:nth-child(n+4) {animation-delay:calc(var(--duration-instant) * 1.5);}
@media(prefers-reduced-motion:reduce) {.tv2 .tv2-stack-body tbody .tv2-row {animation:none;}}
