/* ── formulas.css — the formula behind every number (banking/js/formulas.js).
   Tokens from desk.css only. ─────────────────────────────────────────── */

/* a number that has a formula: a dotted rule under it, the accent when it has focus */
[data-gcf]{ cursor:help; }
.kpi-box[data-gcf] .v, td[data-gcf], .gcf-num, .gc-r[data-gcf] b{ text-decoration:underline dotted var(--line-2); text-underline-offset:3px; text-decoration-thickness:1px; }
.memo-t tr[data-gcf] td:first-child{ text-decoration:underline dotted var(--ink-2); text-underline-offset:3px; }
[data-gcf]:focus{ outline:none; }
[data-gcf]:focus-visible{ outline:1px solid var(--accent); outline-offset:1px; }
.vital[data-gcf]:focus-visible{ outline-offset:-2px; }
.gcf-num{ font-variant-numeric:tabular-nums; }

/* the card */
.gcf-tip{ position:fixed; z-index:9800; width:340px; max-width:calc(100vw - 16px); overflow:auto; padding:9px 11px 8px;
  background:var(--panel-2); color:var(--text); border:1px solid var(--line-2); border-top:2px solid var(--accent);
  box-shadow:0 12px 32px rgba(0,0,0,.55); font:12px/1.42 var(--sans); text-align:left; letter-spacing:0; text-transform:none; white-space:normal; }
.gcf-tip[hidden]{ display:none; }
.gcf-kick{ font:600 9.5px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.gcf-name{ font:600 13px var(--sans); margin:1px 0 5px; color:var(--text); }
.gcf-sym{ font:500 11.5px/1.45 var(--mono); color:var(--accent); background:var(--bg); border:1px solid var(--line); padding:4px 7px; margin-bottom:6px; overflow-wrap:anywhere; }
.gcf-words{ color:var(--muted); font-size:11.5px; margin-bottom:6px; }
.gcf-in{ width:100%; border-collapse:collapse; font:11.5px var(--mono); }
.gcf-in td{ padding:2px 0; border-bottom:1px solid var(--line); vertical-align:top; }
.gcf-in td:first-child{ color:var(--muted); font-family:var(--sans); padding-right:10px; }
.gcf-in td:last-child{ text-align:right; white-space:nowrap; color:var(--text); }
.gcf-in tr.gcf-res td{ border-bottom:0; border-top:1px solid var(--line-2); padding-top:4px; color:var(--text); font-weight:600; }
.gcf-in tr.gcf-res td:last-child{ color:var(--accent); }
.gcf-in tr.gcf-alt td{ border-bottom:0; color:var(--dim); font-size:11px; }
.gcf-note{ margin-top:5px; color:var(--muted); font-size:11px; }
.gcf-foot{ display:flex; align-items:baseline; gap:8px; margin-top:7px; padding-top:6px; border-top:1px solid var(--line); font-size:11px; color:var(--muted); }
.gcf-hb{ font:600 10.5px var(--mono); letter-spacing:.08em; color:var(--link); text-decoration:none; white-space:nowrap; }
.gcf-hb:hover, .gcf-hb:focus-visible{ text-decoration:underline; }
.gcf-key{ margin-left:auto; color:var(--dim); font:10px var(--mono); white-space:nowrap; }
@media (prefers-reduced-motion: no-preference){ .gcf-tip:not([hidden]){ animation:gcf-in 120ms ease-out; } }
@keyframes gcf-in{ from{ opacity:0; transform:translateY(2px); } to{ opacity:1; transform:none; } }
