/* UI-023b (31 Oct 2026). Loaded straight after desk-ui4.css (main.php, views/signup.php); remove the <link> to roll back to UI-023.
   1) Brand CI (kifalme design guide): Coal Black #0C0B0A, Brilliant Red #FF0000, Firey Red #A50404, White. #E10600 was drift.
      White on #FF0000 is 4.0:1, so it only carries large bold labels (20px Avenir Next Condensed Bold / K Display). Small white
      text on red uses Firey Red (8.0:1). Small red text uses the guide's 80% tint #FF3333 on dark, Firey Red on light.
   2) Calm colour (Jared 17:36): red only for the main action, the Live dot and real moments. Neutral greys everywhere else;
      a muted pacing palette (green on pace, teal ahead, amber behind, Firey Red needs action), one accent per element.
   3) Track (R1 / R6, R2 moments, R3 desktop terminal) and the media-first previews. Motion: transform, opacity and
      stroke-dashoffset only; reduced motion and Calm mode turn it all off. */

/* ── tokens: the same four blocks as desk-ui3 (dark base, light by media, light and dark by switch) ─────────────────── */
.k56{--btn:#FF0000;--btnhover:#FF0000;--btnpress:#A50404;--btnsm:#A50404;--red:#FF0000;--hot:#FF3333;--hot-bg:rgba(255,0,0,.14);
  --ok:#86BC9F;--ok-bg:rgba(111,162,135,.16);--ahead:#7DB4BC;--ahead-bg:rgba(94,154,163,.16);--warn:#D6B06A;--warn-bg:rgba(201,161,87,.16);
  --sun:#ABA6A0;--sun-bg:#2B2825;--act:#FF3333;--act-bg:rgba(165,4,4,.32);--chart:#F7F5F2;--chart2:#6E6862;--herostart:#FFFFFF;
  --glow1:transparent;--glow2:transparent;--glow3:transparent;--glow4:transparent;--btnshadow:transparent}
@media(prefers-color-scheme:light){html:not([data-k56-theme=dark]) .k56{--btn:#FF0000;--btnhover:#FF0000;--btnpress:#A50404;--btnsm:#A50404;--red:#FF0000;--hot:#A50404;--hot-bg:rgba(165,4,4,.08);
  --ok:#2E6A4B;--ok-bg:rgba(111,162,135,.16);--ahead:#2A646C;--ahead-bg:rgba(94,154,163,.16);--warn:#7A5A14;--warn-bg:rgba(201,161,87,.18);
  --sun:#57524C;--sun-bg:#E8E6E3;--act:#A50404;--act-bg:rgba(165,4,4,.08);--chart:#0C0B0A;--chart2:#B4AEA8;--herostart:#0C0B0A;
  --glow1:transparent;--glow2:transparent;--glow3:transparent;--glow4:transparent;--btnshadow:transparent}}
html[data-k56-theme=light] .k56{--btn:#FF0000;--btnhover:#FF0000;--btnpress:#A50404;--btnsm:#A50404;--red:#FF0000;--hot:#A50404;--hot-bg:rgba(165,4,4,.08);
  --ok:#2E6A4B;--ok-bg:rgba(111,162,135,.16);--ahead:#2A646C;--ahead-bg:rgba(94,154,163,.16);--warn:#7A5A14;--warn-bg:rgba(201,161,87,.18);
  --sun:#57524C;--sun-bg:#E8E6E3;--act:#A50404;--act-bg:rgba(165,4,4,.08);--chart:#0C0B0A;--chart2:#B4AEA8;--herostart:#0C0B0A;
  --glow1:transparent;--glow2:transparent;--glow3:transparent;--glow4:transparent;--btnshadow:transparent}
html[data-k56-theme=dark] .k56{--btn:#FF0000;--btnhover:#FF0000;--btnpress:#A50404;--btnsm:#A50404;--red:#FF0000;--hot:#FF3333;--hot-bg:rgba(255,0,0,.14);
  --ok:#86BC9F;--ok-bg:rgba(111,162,135,.16);--ahead:#7DB4BC;--ahead-bg:rgba(94,154,163,.16);--warn:#D6B06A;--warn-bg:rgba(201,161,87,.16);
  --sun:#ABA6A0;--sun-bg:#2B2825;--act:#FF3333;--act-bg:rgba(165,4,4,.32);--chart:#F7F5F2;--chart2:#6E6862;--herostart:#FFFFFF;
  --glow1:transparent;--glow2:transparent;--glow3:transparent;--glow4:transparent;--btnshadow:transparent}
.k56 .k56-num,.k56 .k56-odo,.k56 .k56-stat .v,.k56 .k56-table td,.k56 .k56-kv b,.k56-row b,.k56-spend,.k56-race,.k56-ticker{font-variant-numeric:tabular-nums}

/* ── buttons: the main action is Brilliant Red with a large bold label (AA large); small red buttons are Firey Red ─── */
.k56-btn:not(.k56-btn--ghost):not(.k56-btn--text):not(.k56-btn--sm){font-family:var(--fd);font-size:20px;font-weight:700;letter-spacing:.01em}
.k56-btn:not(.k56-btn--ghost):not(.k56-btn--text):not(:disabled):hover{background:var(--btn);box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--line)}
.k56-btn:not(.k56-btn--ghost):not(.k56-btn--text):not(:disabled):active{background:var(--btnpress)}
.k56-btn--sm:not(.k56-btn--ghost):not(.k56-btn--text):not(:disabled),.k56--ops .k56-btn:not(.k56-btn--ghost):not(.k56-btn--text):not(:disabled),
.k56-pill--needs,.k56 .k56-badge,.k56-xbtn--plus .k56-xbtn__l,.k56-cal__g button.is-start::after,.k56-cal__g button.is-end::after{background:var(--btnsm)}
@media(min-width:900px){.k56 .k56-nav a[data-v=wizard],.k56 .k56-nav a[data-v=wizard]:hover{background:var(--btnsm)}}
/* calm: no red fills on bars, steps or dots (they are not actions) */
.k56 .k56-bar i{background:var(--chart);opacity:.85}
.k56-steps li.done::before,.k56-steps li.on::before,.k56-onb__dots li.on{background:var(--chart)}
.k56-pill--rejected{background:var(--act-bg);color:var(--act)}
.k56-pill--in_review,.k56-pill--booking{background:var(--sun-bg);color:var(--sun)}

/* ── pacing: one muted accent, the same meaning everywhere ─────────────────────────────────────────────────────── */
[data-pace=on]{--pace:var(--ok);--pace-bg:var(--ok-bg)}
[data-pace=ahead]{--pace:var(--ahead);--pace-bg:var(--ahead-bg)}
[data-pace=behind]{--pace:var(--warn);--pace-bg:var(--warn-bg)}
.k56-pace{display:inline-flex;align-items:center;gap:6px;margin:0 0 8px;padding:3px 10px;border-radius:999px;background:var(--pace-bg);color:var(--pace);font-size:12px;font-weight:700}
.k56-pace::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.k56 [data-pace] .k56-bar i,.k56 [data-pace] .k56-spend__bar i{background:var(--pace);opacity:1}

/* ── reveals (only once the script runs; without it everything is simply there) ─────────────────────────────────── */
.k56-rv{transition:opacity .5s var(--ease),transform .5s var(--ease)}
.k56-rv--wait:not(.is-in){opacity:0;transform:translateY(16px)}

/* ── Track: the pulse ─────────────────────────────────────────────────────────────────────────────────────────── */
.k56-pulse{margin:18px 0 6px}
.k56-pulse__top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:6px;font-size:13px;color:var(--muted)}
.k56-live{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.k56-live i{position:relative;width:8px;height:8px;border-radius:50%;background:var(--dim)}
.k56-live[data-state=live] i{background:var(--red)}
.k56-live[data-state=live] i::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--red);opacity:0;animation:k56ping 2s var(--ease) infinite}
.k56-live[data-state=stale],.k56-live[data-state=offline],.k56-live[data-state=off]{color:var(--muted)}
@keyframes k56ping{0%{transform:scale(.6);opacity:.7}100%{transform:scale(1.8);opacity:0}}
.k56-odo{display:flex;height:1em;overflow:hidden;font-family:var(--fd);font-weight:700;font-size:clamp(60px,18vw,112px);line-height:1;letter-spacing:-.01em;color:var(--text)}
.k56-odo__d{display:block;height:1em;overflow:hidden}
.k56-odo__s{display:block;width:min-content;text-align:center;transform:translateY(calc(var(--n) * -1em));transition:transform 900ms cubic-bezier(.2,.8,.2,1)}
.k56-odo__d:last-child .k56-odo__s{transition-timing-function:cubic-bezier(.3,1.35,.5,1)}
.k56-odo__sp{display:block;width:.16em}
.k56-odo__l{margin:6px 0 0;color:var(--muted);font-size:14px;font-weight:600}
.k56-delta{margin:4px 0 0;color:var(--ok);font-size:15px;font-weight:700}
.k56-ticker{display:flex;overflow:hidden;margin:14px 0 4px;border-block:1px solid var(--line);font-size:13px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.k56-ticker ul{display:flex;flex:none;gap:28px;margin:0;padding:9px 14px;list-style:none;animation:k56tick 32s linear infinite}
.k56-ticker li{white-space:nowrap;color:var(--muted)}
.k56-ticker b{color:var(--text)}
.k56-ticker i{font-style:normal;font-size:9px;color:var(--ok)}
@keyframes k56tick{to{transform:translateX(-100%)}}
.k56-spark{position:relative;height:84px;margin:12px 0 4px}
.k56-spark svg{display:block;width:100%;height:100%;overflow:visible}
.k56-spark__h{position:absolute;right:-4px;width:9px;height:9px;margin-top:-4.5px;border-radius:50%;background:var(--chart);box-shadow:0 0 0 3px var(--bg);transition:opacity .3s var(--ease) .9s}
.k56-spark.k56-rv--wait:not(.is-in) .k56-spark__h{opacity:0}
.k56-spark__a{fill:var(--chart);opacity:.07}
.k56-spark__l{fill:none;stroke:var(--chart);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 900ms var(--ease) .1s}
.k56-spark.k56-rv--wait:not(.is-in){opacity:1;transform:none}
.k56-spark.k56-rv--wait:not(.is-in) .k56-spark__l{stroke-dashoffset:1}
/* spend: always on screen */
.k56-spend{margin:14px 0;padding:14px 16px;border-radius:var(--rc);background:var(--panel)}
.k56-spend__t{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:0 0 10px;font-weight:600}
.k56-spend__left{color:var(--muted)}
.k56-spend__bar{height:8px;border-radius:999px;background:var(--track);overflow:hidden}
.k56-spend__bar i,.k56-spendchip i{display:block;height:100%;border-radius:inherit;background:var(--chart);transform-origin:0 50%;transform:scaleX(var(--p));transition:transform 600ms var(--ease)}
.k56-spend__dl{margin:8px 0 0;color:var(--muted)}
.k56-spendchip{position:fixed;z-index:29;top:calc(max(8px,env(safe-area-inset-top)) + 70px);left:50%;display:grid;gap:5px;min-width:200px;padding:8px 14px;border-radius:999px;
  background:var(--float-solid,var(--panel));box-shadow:var(--float-sh);font-size:13px;font-weight:600;text-align:center;opacity:0;pointer-events:none;
  transform:translate(-50%,-12px);transition:opacity .2s var(--ease),transform .2s var(--ease)}
.k56-spendchip i{height:3px;background:var(--chart);opacity:.7}
.k56-spendchip.is-on{opacity:1;transform:translate(-50%,0)}
/* moments: a real milestone, celebrated once on this device (the one place besides the action and the Live dot that is red) */
.k56-moment{display:flex;align-items:center;gap:14px;margin:14px 0;padding:16px;border-radius:var(--rc);background:var(--panel)}
.k56-moment p{margin:0}
.k56-moment__t{font-family:var(--fd);font-size:20px;font-weight:700;line-height:1.15}
.k56-moment__ic{position:relative;flex:none;width:44px;height:44px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--red)}
.k56-moment__ic::before{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--red)}
.k56-moment__ic i{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;border-radius:50%;background:var(--red);opacity:0}
.k56-moment.is-new{animation:k56pop .6s var(--ease)}
.k56-moment.is-new .k56-moment__ic i{animation:k56burst .9s var(--ease) .15s forwards}
.k56-moment.is-new .k56-moment__ic i:nth-child(even){background:var(--chart)}
@keyframes k56pop{0%{transform:scale(.94)}60%{transform:scale(1.02)}100%{transform:none}}
@keyframes k56burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}100%{opacity:0;transform:rotate(var(--a)) translateY(-36px)}}
.k56-next{margin:0 0 14px}
.k56-next p{display:flex;justify-content:space-between;margin:0 0 6px;font-size:13px;color:var(--muted)}
.k56-next b{color:var(--text)}
.k56-next__bar{height:4px;border-radius:999px;background:var(--track);overflow:hidden}
.k56-next__bar i{display:block;height:100%;background:var(--chart2);transform-origin:0 50%;transform:scaleX(var(--p));transition:transform 700ms var(--ease)}
/* race bars: neutral, the leader in full ink */
.k56-race ol{display:grid;gap:12px;margin:0;padding:0;list-style:none}
.k56-race li{display:grid;grid-template-columns:minmax(84px,32%) 1fr auto;align-items:center;gap:10px;font-size:14px}
.k56-race li.is-booked{grid-template-columns:minmax(84px,32%) 1fr}
.k56-race__n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.k56-race__bar{height:10px;border-radius:999px;background:var(--track);overflow:hidden}
.k56-race__bar i{display:block;height:100%;border-radius:inherit;background:var(--chart2);transform-origin:0 50%;transform:scaleX(var(--p));transition:transform 700ms var(--ease)}
.k56-race li:first-child .k56-race__bar i{background:var(--chart)}
.k56-race li:nth-child(2) .k56-race__bar i{transition-delay:80ms}.k56-race li:nth-child(3) .k56-race__bar i{transition-delay:160ms}
.k56-race li:nth-child(4) .k56-race__bar i{transition-delay:240ms}.k56-race li:nth-child(n+5) .k56-race__bar i{transition-delay:320ms}
.k56-race.k56-rv--wait:not(.is-in) .k56-race__bar i,.k56-next.k56-rv--wait:not(.is-in) .k56-next__bar i{transform:scaleX(0)}
.k56-race__v small,.k56-lead small{color:var(--muted);font-weight:500}
.k56-race .k56-pill{margin:0}
/* desktop terminal: best days + leaderboard */
.k56-desk{display:grid;gap:16px;margin-top:16px}
@media(min-width:1024px){.k56-desk{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;align-items:start}}
.k56-heat__g{display:grid;grid-template-columns:auto repeat(var(--w),minmax(0,1fr));gap:4px;align-items:center;max-width:420px;margin:12px 0}
.k56-heat__wd{padding-right:6px;font-size:11px;color:var(--muted)}
.k56-heat__g i{aspect-ratio:1;border-radius:4px;background:var(--chart);opacity:calc(.08 + var(--v) * .86);transition:transform .4s var(--ease) calc(var(--k) * 25ms)}
.k56-heat__g i.is-none{background:var(--panel2);opacity:1}
.k56-heat.k56-rv--wait:not(.is-in){opacity:1;transform:none}
.k56-heat.k56-rv--wait:not(.is-in) .k56-heat__g i{transform:scale(0)}
.k56-heat__k{display:flex;align-items:center;gap:8px;color:var(--muted)}
.k56-heat__k i{width:80px;height:8px;border-radius:4px;background:linear-gradient(90deg,color-mix(in srgb,var(--chart) 10%,transparent),var(--chart))}
.k56-mini{width:96px;height:24px;overflow:visible}
.k56-mini path{fill:none;stroke:var(--chart);stroke-width:1.5;vector-effect:non-scaling-stroke}

/* ── Your ad: big, feed style, and where it runs ─────────────────────────────────────────────────────────────── */
.k56-cr{margin:22px 0}
.k56-cr h3{margin:20px 0 10px}
.k56-cr__feed{margin:10px 0 0;overflow:hidden;border-radius:var(--r);background:var(--panel)}
.k56-cr__feed figcaption{display:flex;align-items:center;gap:10px;padding:12px 14px}
.k56-cr__feed figcaption b{display:block;font-size:14px}
.k56-cr__feed figcaption small{display:block;color:var(--muted);font-size:12px}
.k56-cr__av{display:inline-grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--panel2);font-family:var(--fd);font-weight:700}
.k56-cr__box{position:relative;display:grid;place-items:center;min-height:220px;background:#0C0B0A}
.k56-cr__m{display:block;width:100%;height:auto;max-height:72vh;object-fit:contain}
.k56-cr__play,.k56-cr__snd,.k56-cr__aud{position:absolute;display:grid;place-items:center;padding:0;border:0;border-radius:50%;color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;
  transition:transform .12s var(--ease),opacity .2s var(--ease)}
.k56-cr__play{left:50%;top:50%;width:68px;height:68px;margin:-34px 0 0 -34px;background:rgba(12,11,10,.62);opacity:0;pointer-events:none}
.k56-cr__play::before,.k56-cr__aud::before,.k56-row__play::before{content:"";width:0;height:0;margin-left:4px;border-left:18px solid currentColor;border-top:11px solid transparent;border-bottom:11px solid transparent}
.is-tap>.k56-cr__play,.k56-cr__box.is-tap .k56-cr__play{opacity:1;pointer-events:auto}
[data-k56=creative].is-tap .k56-cr__play{opacity:1;pointer-events:auto}
.k56-cr__snd{right:12px;bottom:12px;width:44px;height:44px;background:rgba(12,11,10,.62)}
.k56-cr__snd::before{content:"";width:22px;height:22px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H3v6h3l5 4z'/%3E%3Cpath d='m23 9-6 6M17 9l6 6'/%3E%3C/svg%3E") center/22px no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H3v6h3l5 4z'/%3E%3Cpath d='m23 9-6 6M17 9l6 6'/%3E%3C/svg%3E") center/22px no-repeat}
.k56-cr__snd[aria-pressed=true]::before{
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H3v6h3l5 4z'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E");
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M11 5 6 9H3v6h3l5 4z'/%3E%3Cpath d='M15.5 8.5a5 5 0 0 1 0 7M19 5a10 10 0 0 1 0 14'/%3E%3C/svg%3E")}
.k56-cr__aud{position:relative;width:60px;height:60px;background:#FFFFFF;color:#0C0B0A}
.k56-cr__aud[aria-pressed=true]::before{width:16px;height:18px;margin:0;border:0;border-inline:5px solid currentColor;box-sizing:border-box}
.k56-cr__play.is-press,.k56-cr__snd.is-press,.k56-cr__aud.is-press{transform:scale(.92)}
.k56-cr__ph{display:grid;justify-items:center;gap:12px;padding:44px 24px;color:#ABA6A0;text-align:center}
.k56-cr__ph p{margin:0;max-width:26ch}
.k56-cr__box .k56-wave{width:100%;height:120px;padding:0 24px}
.k56-cr__box .k56-cr__aud{position:absolute;left:50%;top:50%;margin:-30px 0 0 -30px}
.k56-wave{display:flex;align-items:center;gap:3px;height:72px}
.k56-wave i{flex:1;height:46%;border-radius:2px;background:#F7F5F2;opacity:.45;transform-origin:50% 50%}
.k56-wave i:nth-child(3n){height:72%}.k56-wave i:nth-child(4n){height:90%}.k56-wave i:nth-child(5n+1){height:30%}.k56-wave i:nth-child(7n+2){height:60%}
.is-playing>.k56-wave i,.is-playing .k56-wave i{opacity:.85;animation:k56wave .9s ease-in-out infinite alternate}
.k56-wave i:nth-child(2n){animation-delay:-.3s}.k56-wave i:nth-child(3n){animation-delay:-.6s}
@keyframes k56wave{from{transform:scaleY(.45)}to{transform:scaleY(1)}}
.k56-cr__tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}
.k56-cr__tabs button{flex:none;min-height:40px;padding:0 16px;border:0;border-radius:999px;background:var(--panel2);color:var(--text);font:inherit;font-size:14px;font-weight:600;cursor:pointer;
  transition:transform .12s var(--ease),background-color .15s var(--ease),color .15s var(--ease)}
.k56-cr__tabs button[aria-selected=true]{background:var(--text);color:var(--bg)}
.k56-cr__tabs button.is-press{transform:scale(.96)}
.k56-cr__tabs button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.k56-cr__where{display:grid;place-items:center;margin-top:14px;padding:22px 12px;border-radius:var(--r);background:var(--panel)}
.k56-fr{display:none}
.k56-cr__where[data-frame=feed] .k56-fr--feed,.k56-cr__where[data-frame=billboard] .k56-fr--billboard,.k56-cr__where[data-frame=player] .k56-fr--player,
.k56-cr__where[data-frame=radio] .k56-fr--radio,.k56-cr__where[data-frame=message] .k56-fr--message{display:grid;justify-items:center;gap:8px;animation:k56in .3s var(--ease)}
@keyframes k56in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.k56-fr img,.k56-cr__blank{display:block;width:100%;height:auto}
.k56-cr__blank{aspect-ratio:1;background:var(--panel2)}
.k56-fr__phone{display:grid;gap:8px;width:220px;padding:10px 10px 16px;border:6px solid #2B2825;border-radius:30px;background:var(--bg);box-shadow:0 12px 30px rgba(0,0,0,.25)}
.k56-fr__bar{justify-self:center;width:64px;height:6px;border-radius:999px;background:#2B2825}
.k56-fr__h{display:flex;align-items:center;gap:8px;margin:0;font-size:12px;font-weight:700}
.k56-fr__h .k56-cr__av{width:24px;height:24px;font-size:11px}
.k56-fr__phone img{border-radius:10px}
.k56-fr__ln{height:8px;margin:0;border-radius:4px;background:var(--panel2)}
.k56-fr__ln--s{width:60%}
.k56-fr__board{width:min(320px,86vw);aspect-ratio:2/1;overflow:hidden;border:8px solid #3A3633;border-radius:6px;background:#0C0B0A}
.k56-fr__board img{width:100%;height:100%;object-fit:cover}
.k56-fr__pole{width:12px;height:56px;margin-top:-8px;background:#3A3633}
.k56-fr__tv{position:relative;width:min(340px,88vw);aspect-ratio:16/9;overflow:hidden;border-radius:10px;background:#0C0B0A}
.k56-fr__tv img{width:100%;height:100%;object-fit:contain}
.k56-fr__ctl{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;gap:10px;padding:8px 12px;background:linear-gradient(transparent,rgba(12,11,10,.8))}
.k56-fr__ctl i{width:0;height:0;border-left:10px solid #fff;border-top:6px solid transparent;border-bottom:6px solid transparent}
.k56-fr__ctl b{flex:1;height:3px;border-radius:2px;background:linear-gradient(90deg,#fff 35%,rgba(255,255,255,.3) 35%)}
.k56-fr__radio{display:grid;justify-items:center;gap:14px;width:min(320px,86vw);padding:18px;border-radius:18px;background:#1C1A18}
.k56-fr__radio .k56-wave{width:100%}
.k56-fr__bubble{display:grid;gap:6px;width:82%;padding:6px;border-radius:14px 14px 14px 4px;background:var(--panel2)}
.k56-fr__bubble img{border-radius:10px}
.k56-fr .tiny{color:var(--muted)}

/* ── My ads rows (the reference home screen): artwork, channel line, status, spend progress, budget, days left ─── */
.k56-row{display:grid!important;grid-template-columns:88px minmax(0,1fr) auto 10px;align-items:center;gap:14px;padding:14px!important;color:var(--text);text-decoration:none;
  transition:transform .12s var(--ease),background-color .15s var(--ease)}
.k56-row.is-press{transform:scale(.985)}
.k56-row__th{position:relative;display:grid;place-items:center;width:88px;height:88px;overflow:hidden;border-radius:14px;background:#1C1A18}
.k56-row__th img,.k56-row__th video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.k56-row__ph{display:grid;place-items:center;width:100%;height:100%;background:#0C0B0A}
.k56-row__ph img{position:static;width:40px;height:40px}
.k56-row__play{position:absolute;left:8px;bottom:8px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(12,11,10,.62);color:#fff}
.k56-row__play::before{margin-left:3px;border-left-width:10px;border-top-width:6px;border-bottom-width:6px}
.k56-row__th.is-playing .k56-row__play{opacity:0}
.k56-row__th .k56-wave--s{width:70%;height:40px}
.k56-row__main{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}
.k56-row__main .name{max-width:100%;overflow:hidden;font-size:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}
.k56-row__ch{max-width:100%;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.k56-row__sp{display:flex;flex-wrap:wrap;align-items:baseline;gap:0 6px;margin-top:2px;white-space:nowrap}
.k56-row__sp b{font-family:var(--fd);font-size:18px}
.k56-row .k56-adcard__why{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin:0;font-size:13px;color:var(--muted)}
.k56 .k56-adcard--action,.k56 .k56-adcard--action:hover{box-shadow:inset 3px 0 0 var(--btnsm),inset 0 0 0 1px var(--line)}
.k56-row .k56-bar{display:block;width:100%;height:5px;margin:0}
.k56-row__shown{color:var(--muted)}
.k56-row__shown b{color:var(--text)}
.k56-row__side{display:grid;gap:12px;font-size:13px}
.k56-row__side .tiny{display:block;color:var(--muted)}
.k56-row__side b{display:block;font-family:var(--fd);font-size:17px}
.k56-row--noart{grid-template-columns:minmax(0,1fr) auto 10px} /* PROD-035: no artwork, no placeholder tile */
.k56-row__go{width:9px;height:9px;border-top:2px solid var(--dim);border-right:2px solid var(--dim);transform:rotate(45deg)}
@media(max-width:420px){
  .k56-row{grid-template-columns:72px minmax(0,1fr);grid-template-areas:"th main" "th side";gap:4px 12px;padding:12px!important;align-items:start}
  .k56-row__th{grid-area:th;width:72px;height:72px}
  .k56-row--noart{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "side"}
  .k56-row__main{grid-area:main}
  .k56-row__side{grid-area:side;display:flex;gap:16px;align-items:baseline}
  .k56-row__side>*{display:flex;gap:6px;align-items:baseline}
  .k56-row__side .tiny{display:inline}
  .k56-row__go{display:none}
  .k56-row__side b{display:inline;font-size:15px}
  .k56-row__side>:first-child{display:none}
}

/* ── calm references R1b / R6b / R3b (31 Oct 17:42) ───────────────────────────────────────────────────────────── */
.k56-odo{gap:6px;height:auto;overflow:visible;font-size:clamp(52px,15vw,92px)}
.k56-odo__d{height:1.18em;padding:0 .1em;border-radius:12px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line),0 2px 6px rgba(12,11,10,.06)}
.k56-odo__d>.k56-odo__s{line-height:1.18;transform:translateY(calc(var(--n) * -1.18em))}
.k56-odo__d{position:relative;overflow:hidden}
.k56-odo__d::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line);opacity:.7}
.k56-odo__sp{width:.08em}
.k56-ticker{border:0;gap:0;-webkit-mask-image:none;mask-image:none;border-radius:12px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}
.k56-ticker li+li{padding-left:28px;border-left:1px solid var(--line)}
/* race rows: channel icon, neutral bar (ink), one pacing pill */
.k56-race li{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"n v p" "b b b";row-gap:6px}
.k56-race li.is-booked{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"n bk"}
.k56-race__n{grid-area:n;display:flex;align-items:center;gap:10px;font-weight:600}
.k56-race__bar{grid-area:b;height:8px}
.k56-race__v{grid-area:v}
.k56-race .k56-pace{grid-area:p;margin:0}
.k56-race__b{grid-area:bk;color:var(--muted)}
.k56-race__bar i,.k56-race li:first-child .k56-race__bar i{background:var(--chart)}
.k56-race li[data-ch] .k56-race__n::before,.k56-reel__c[data-ch] .k56-reel__ch::before{content:"";flex:none;width:22px;height:22px;background:currentColor;-webkit-mask:var(--ic) center/22px no-repeat;mask:var(--ic) center/22px no-repeat}
[data-ch=adx]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='2.5'/%3E%3Cpath d='M3 9h18M6.5 6.5h.01M9 6.5h.01'/%3E%3C/svg%3E")}[data-ch=audio]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15.5V12a8 8 0 0 1 16 0v3.5'/%3E%3Crect x='3' y='14' width='4.5' height='6.5' rx='1.5'/%3E%3Crect x='16.5' y='14' width='4.5' height='6.5' rx='1.5'/%3E%3C/svg%3E")}[data-ch=dooh]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3.5' width='18' height='11.5' rx='1.5'/%3E%3Cpath d='M8 15v5.5M16 15v5.5M5.5 20.5h13'/%3E%3C/svg%3E")}[data-ch=google_ads]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.5' cy='10.5' r='6.5'/%3E%3Cpath d='M20 20l-4.8-4.8'/%3E%3C/svg%3E")}[data-ch=publisher]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 4h11a1 1 0 0 1 1 1v14.5a1.5 1.5 0 0 0 1.5 1.5H6a2.5 2.5 0 0 1-2.5-2.5V5A1 1 0 0 1 4.5 4z'/%3E%3Cpath d='M16.5 8.5h3a1 1 0 0 1 1 1v10a1.5 1.5 0 0 1-3 0M7.5 8h5.5M7.5 11.5h5.5M7.5 15h3.5'/%3E%3C/svg%3E")}
[data-ch=radio]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='8' width='18' height='12.5' rx='2'/%3E%3Cpath d='M7 8l10-4.5'/%3E%3Ccircle cx='15.5' cy='14.2' r='2.6'/%3E%3Cpath d='M7 12.5h3M7 15.8h3'/%3E%3C/svg%3E")}[data-ch=sms]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 4.5h14a1.5 1.5 0 0 1 1.5 1.5v9.5A1.5 1.5 0 0 1 19 17H9l-5 3.5V6A1.5 1.5 0 0 1 5 4.5z'/%3E%3Cpath d='M8 9h8M8 12.5h5'/%3E%3C/svg%3E")}[data-ch=social]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20a6.5 6.5 0 0 1 13 0'/%3E%3Cpath d='M16 4.6a3.5 3.5 0 0 1 0 6.8M18.5 14.3A6.5 6.5 0 0 1 21.5 20'/%3E%3C/svg%3E")}[data-ch=sponsorship]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='9' r='5.5'/%3E%3Cpath d='M8.8 13.5L7.5 21l4.5-2.5 4.5 2.5-1.3-7.5'/%3E%3C/svg%3E")}[data-ch=tv]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='13' rx='2.5'/%3E%3Cpath d='M8 21h8M12 17.5V21'/%3E%3C/svg%3E")}
[data-ch=whatsapp]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20.5 12a8.5 8.5 0 0 1-12.3 7.6L3.5 20.5l1-4.5A8.5 8.5 0 1 1 20.5 12z'/%3E%3Cpath d='M8.5 12h.01M12 12h.01M15.5 12h.01'/%3E%3C/svg%3E")}[data-ch=youtube_ctv]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4.5' width='19' height='13' rx='2.5'/%3E%3Cpath d='M10 8.5l4.5 2.5-4.5 2.5z'/%3E%3Cpath d='M8 21h8'/%3E%3C/svg%3E")}
.k56-pace--s{padding:2px 8px;font-size:11.5px}
.k56-pace--s::before{display:none}
/* results reel (R6): a fanned stack of real per-channel numbers; it moves only when tapped or when a poll brings a new day */
.k56-reel{margin:18px 0}
.k56-reel h2{font-size:15px;margin:0 0 12px;color:var(--muted);font-weight:600}
.k56-reel__stack{position:relative;display:block;width:100%;height:190px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;perspective:900px;-webkit-tap-highlight-color:transparent}
.k56-reel__c{position:absolute;top:0;left:calc(var(--i) * 21%);display:grid;align-content:start;gap:6px;width:min(200px,46%);height:170px;padding:16px;border-radius:18px;background:var(--panel);
  box-shadow:0 1px 0 var(--line),0 10px 24px rgba(12,11,10,.10);transform:rotate(calc((var(--i) - 1) * 3deg)) scale(calc(1 - var(--i) * .06));transform-origin:50% 100%;z-index:calc(10 - var(--i));
  transition:transform .35s cubic-bezier(.16,1,.3,1),left .35s cubic-bezier(.16,1,.3,1),opacity .35s}
.k56-reel__c:first-child{transform:rotate(-3deg)}
.k56-reel__ch{display:flex;align-items:center;gap:8px;font-family:var(--fd);font-size:15px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.k56-reel__c b{font-family:var(--fd);font-size:44px;font-weight:700;line-height:1}
.k56-reel__c .tiny{color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.k56-reel__c.is-out{animation:k56flip .5s cubic-bezier(.16,1,.3,1)}
@keyframes k56flip{0%{transform:none;opacity:1}100%{transform:perspective(600px) rotateX(-60deg) translateY(-40px);opacity:0}}
/* next milestone: bar with a marker at the real total */
.k56-next__bar{position:relative;height:8px;overflow:visible;margin-bottom:26px}
.k56-next__bar i{border-radius:999px;background:var(--chart)}
.k56-next__mk{position:absolute;top:50%;left:calc(var(--p) * 100%);width:0;height:0;transition:left 600ms cubic-bezier(.65,0,.35,1)}
.k56-next__mk::before{content:"";position:absolute;left:-7px;top:-7px;width:10px;height:10px;border:2px solid var(--chart);border-radius:50%;background:var(--panel)}
.k56-next__mk em{position:absolute;top:10px;left:0;transform:translateX(calc(var(--p) * -100%));font-style:normal;font-size:13px;font-weight:700;white-space:nowrap}
.k56-next.k56-rv--wait:not(.is-in) .k56-next__mk{left:0}
/* desktop terminal (R3b): daily bars + 7-day average, cost per 1 000, best days, leaderboard */
@media(min-width:1024px){.k56-desk{grid-template-columns:repeat(3,minmax(0,1fr))}.k56-daily{grid-column:span 2}.k56-lead{grid-column:span 2}}
.k56-daily svg{display:block;width:100%;height:200px;overflow:visible}
.k56-daily__b rect{fill:var(--chart2);transform-box:fill-box;transform-origin:50% 100%;transition:transform .3s cubic-bezier(.16,1,.3,1) calc(var(--k) * 40ms)}
.k56-daily__ma{fill:none;stroke:var(--chart);stroke-width:2;vector-effect:non-scaling-stroke;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset .6s cubic-bezier(.16,1,.3,1) .8s}
.k56-daily.k56-rv--wait:not(.is-in){opacity:1;transform:none}
.k56-daily.k56-rv--wait:not(.is-in) rect{transform:scaleY(0)}
.k56-daily.k56-rv--wait:not(.is-in) .k56-daily__ma{stroke-dashoffset:1}
.k56-daily__k{display:flex;align-items:center;gap:6px;color:var(--muted)}
.k56-daily__kb{width:10px;height:10px;border-radius:2px;background:var(--chart2)}
.k56-daily__kl{width:16px;height:2px;margin-left:10px;background:var(--chart)}
.k56-daily__x{display:flex;justify-content:space-between;color:var(--muted)}
.k56-cpm__v{margin:10px 0 6px;font-family:var(--fd);font-size:44px;font-weight:700;line-height:1}
@media(prefers-reduced-motion:reduce){.k56-reel__c,.k56-next__mk,.k56-daily__b rect,.k56-daily__ma,.k56-spark__h{transition:none!important}.k56-reel__c.is-out{animation:none}}
html[data-k56-calm] .k56-reel__c,html[data-k56-calm] .k56-next__mk,html[data-k56-calm] .k56-daily__b rect,html[data-k56-calm] .k56-daily__ma{transition:none!important}
html[data-k56-calm] .k56-reel__c.is-out{animation:none}

/* ── colour round (R1c-light lead, R6c-light, R3c-light, R1c-dark; approved 17:55): calm neutral base, colour only from
      the platforms' own colours (on the channel marks, a low-saturation tint on their bars and trend lines) and from
      the real artwork. YouTube red is softened so it never competes with the #FF0000 + button / main action / Live dot.
      Billboards and radio stay neutral; radio has no bar or line. Our own channel glyphs, tinted (no third-party logos). ── */
[data-ch=social]{--chc:#C13584}[data-ch=youtube_ctv]{--chc:#E0625A}[data-ch=google_ads],[data-ch=adx]{--chc:#4A86E8}
[data-ch=whatsapp]{--chc:#25B864}[data-ch=sms]{--chc:#3E9BA8}[data-ch=audio]{--chc:#1DA851}
[data-ch=dooh],[data-ch=radio],[data-ch=tv],[data-ch=publisher],[data-ch=sponsorship]{--chc:var(--muted)}
html[data-k56-theme=dark] [data-ch=social]{--chc:#E067A8}html[data-k56-theme=dark] [data-ch=youtube_ctv]{--chc:#EE827B}html[data-k56-theme=dark] [data-ch=google_ads],html[data-k56-theme=dark] [data-ch=adx]{--chc:#7BA7F0}
@media(prefers-color-scheme:dark){html:not([data-k56-theme=light]) [data-ch=social]{--chc:#E067A8}html:not([data-k56-theme=light]) [data-ch=youtube_ctv]{--chc:#EE827B}html:not([data-k56-theme=light]) [data-ch=google_ads],html:not([data-k56-theme=light]) [data-ch=adx]{--chc:#7BA7F0}}
.k56-race li[data-ch] .k56-race__n::before,.k56-reel__c[data-ch] .k56-reel__ch::before{width:26px;height:26px;background:var(--chc);-webkit-mask-size:26px;mask-size:26px}
.k56-race li[data-ch] .k56-race__bar i{background:color-mix(in srgb,var(--chc) 78%,var(--panel))}
.k56-race li[data-ch] .k56-race__bar{background:color-mix(in srgb,var(--chc) 12%,var(--track))}
.k56-reel__c[data-ch]{box-shadow:0 1px 0 var(--line),0 10px 24px rgba(12,11,10,.10)}
/* per-channel latest day (R1c row): mark, name, number */
.k56-chd{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));margin:14px 0 6px;padding:0;list-style:none}
.k56-chd li{display:grid;justify-items:center;gap:4px;padding:6px 4px;text-align:center;min-width:0}
.k56-chd li+li{border-left:1px solid var(--line)}
.k56-chd__ic{width:30px;height:30px;background:var(--chc);-webkit-mask:var(--ic) center/30px no-repeat;mask:var(--ic) center/30px no-repeat}
.k56-chd__n{max-width:100%;overflow:hidden;font-size:12px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}
.k56-chd b{font-family:var(--fd);font-size:20px;font-variant-numeric:tabular-nums}
.k56-chd small{font-family:var(--fb, inherit);font-size:12px;font-weight:600;color:var(--muted)}
/* "Your ads": the real artwork, side by side (R1c / R3c) */
.k56-strip{margin:4px 0 16px}
.k56-strip h2{margin:0 0 8px;font-size:13px;font-weight:600;color:var(--muted);text-transform:none;letter-spacing:0}
.k56-strip__r{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 20px) / 3);gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.k56-strip__r::-webkit-scrollbar{display:none}
.k56-strip__t{position:relative;display:block;aspect-ratio:1/0.82;overflow:hidden;border-radius:14px;background:var(--track);scroll-snap-align:start;box-shadow:0 0 0 1px var(--line)}
.k56-strip__t img{display:block;width:100%;height:100%;object-fit:cover}
.k56-strip__play{position:absolute;left:50%;top:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border:2px solid #fff;border-radius:50%;background:rgba(12,11,10,.28)}
.k56-strip__play::before{content:"";position:absolute;left:15px;top:11px;border-left:13px solid #fff;border-top:8px solid transparent;border-bottom:8px solid transparent}
.k56-strip__ch{position:absolute;left:8px;bottom:8px;width:28px;height:28px;border-radius:8px;background:#fff;box-shadow:0 1px 4px rgba(12,11,10,.18)}
.k56-strip__ch::before{content:"";position:absolute;inset:4px;background:var(--chc);-webkit-mask:var(--ic) center/20px no-repeat;mask:var(--ic) center/20px no-repeat}
@media(min-width:1024px){.k56-strip__r{grid-auto-columns:minmax(0,180px)}}
.k56-lead td:nth-child(2)[data-ch]::before{content:"";display:inline-block;width:20px;height:20px;margin-right:10px;background:var(--chc);-webkit-mask:var(--ic) center/20px no-repeat;mask:var(--ic) center/20px no-repeat;vertical-align:-5px}
.k56-lead tr:has(td[data-ch]) .k56-mini path{stroke:var(--chc)}

/* ── reduced motion, Calm mode, low-end devices ──────────────────────────────────────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  .k56-odo__s,.k56-spend__bar i,.k56-spendchip,.k56-spendchip i,.k56-race__bar i,.k56-next__bar i,.k56-spark__l,.k56-heat__g i,.k56-rv,.k56-row,.k56-cr__tabs button{transition:none!important}
  .k56-live i::after,.k56-wave i,.k56-moment,.k56-fr{animation:none!important}
  .k56-ticker{overflow-x:auto;-webkit-mask-image:none;mask-image:none}.k56-ticker ul{animation:none}.k56-ticker ul[aria-hidden]{display:none}
  .k56-rv--wait:not(.is-in){opacity:1;transform:none}
  .k56-moment__ic i{display:none}
}
html[data-k56-calm] .k56-odo__s,html[data-k56-calm] .k56-spend__bar i,html[data-k56-calm] .k56-spendchip,html[data-k56-calm] .k56-race__bar i,html[data-k56-calm] .k56-next__bar i,
html[data-k56-calm] .k56-spark__l,html[data-k56-calm] .k56-heat__g i,html[data-k56-calm] .k56-rv{transition:none!important}
html[data-k56-calm] .k56-live i::after,html[data-k56-calm] .k56-wave i,html[data-k56-calm] .k56-moment,html[data-k56-calm] .k56-fr{animation:none!important}
html[data-k56-calm] .k56-ticker{overflow-x:auto;-webkit-mask-image:none;mask-image:none}html[data-k56-calm] .k56-ticker ul{animation:none}html[data-k56-calm] .k56-ticker ul[aria-hidden]{display:none}
html[data-k56-calm] .k56-moment__ic i{display:none}
html.k56-lite .k56-ticker{-webkit-mask-image:none;mask-image:none}
html.k56-lite .k56-spendchip{box-shadow:0 0 0 1px var(--line)}
/* the live number in its own card (R1c): label above, softer tiles */
.k56-pulse__c{padding:18px 18px 12px!important;margin:0 0 14px}
.k56-pulse__c .k56-odo__l{margin:0 0 10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text)}
.k56-pulse__c .k56-odo{font-size:clamp(40px,11.5vw,72px)}
.k56-pulse__c .k56-odo__d{border-radius:10px;background:linear-gradient(var(--panel),color-mix(in srgb,var(--panel) 88%,var(--track)))}
.k56-pulse__c .k56-odo__d::after{opacity:.45}
.k56-pulse__c .k56-delta{margin:10px 0 0}
.k56-pulse__c .k56-chd{margin:14px -6px 4px}
.k56-pulse__c .k56-spark{margin:6px 0 0}

/* ── motion + type tokens (MOTION.md): one easing family, one duration scale ── */
.k56{--e-enter:cubic-bezier(.2,.8,.2,1);--e-move:cubic-bezier(.65,0,.35,1);--e-exit:cubic-bezier(.4,0,1,1);
  --e-spring:linear(0,.009,.035 2.1%,.141 4.4%,.723 12.9%,.938 16.7%,1.017 19.9%,1.067,1.096 25.4%,1.1 27.3%,1.096,1.084 31.6%,1.032 39.2%,1.003 44.5%,.991 49.6%,.989 54.6%,.998 66.6%,1);
  --d1:120ms;--d2:240ms;--d3:400ms;--d4:700ms;--stagger:40ms}
@supports not (transition-timing-function:linear(0,1)){.k56{--e-spring:cubic-bezier(.3,1.35,.5,1)}}
.k56-odo__s{transition-property:transform;transition-duration:var(--d4);transition-timing-function:var(--e-spring)}
/* ── reports: charts ── */
.k56-rep .k56-card{min-width:0;margin:0}
.k56-cht__h{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;margin:0 0 4px}
.k56-cht__h h2{margin:0}
.k56-cht__sw{display:inline-flex;padding:2px;border-radius:999px;background:var(--track);visibility:hidden}
.k56-rep.is-js .k56-cht__sw{visibility:visible}
.k56-cht__sw button{min-height:32px;padding:0 12px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:600 13px/1 var(--fb,inherit);cursor:pointer;transition:background var(--d1) var(--e-enter),color var(--d1) var(--e-enter)}
.k56-cht__sw button[aria-checked=true]{background:var(--panel);color:var(--text);box-shadow:0 1px 2px rgba(12,11,10,.12)}
.k56-cht__sw button:focus-visible,.k56-cht__hit:focus-visible{outline:2px solid var(--text);outline-offset:2px}
.k56-cht__key{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0;padding:0;list-style:none;font-size:13px;color:var(--muted)}
.k56-cht__key li{display:flex;align-items:center;gap:6px}
.k56-cht__key i,.k56-cht__tip i,.k56-cmp li i{width:10px;height:10px;border-radius:3px;background:var(--chc)}
[data-ch=total]{--chc:var(--sun)}
.k56-cht__body{display:grid;gap:16px}
@media(min-width:1024px){.k56-cht__body{grid-template-columns:minmax(0,1fr) 200px}}
.k56-cht__plot{position:relative;min-height:120px}
.k56-cht__tbl{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.k56-rep:not(.is-js) .k56-cht__tbl{position:static!important;width:100%!important;height:auto!important;clip:auto;clip-path:none;white-space:normal}
.k56-cht__svg{display:block;width:100%;height:auto;overflow:visible}
.k56-cht__grid{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}
.k56-cht__ax{fill:var(--muted);font:500 11px var(--fb,sans-serif);font-variant-numeric:tabular-nums}
.k56-cht__lb{fill:var(--text);font:600 13px var(--fb,sans-serif)}
.k56-cht__v{fill:var(--muted);font:700 13px var(--fd);font-variant-numeric:tabular-nums}
.k56-cht__big{fill:var(--text);font:700 24px var(--fd);font-variant-numeric:tabular-nums}
.k56-cht__s:not([data-ch]){--chc:var(--sun)}
.k56-cht__s[data-ch]{color:var(--chc)}
.k56-cht__ln{fill:none;stroke:var(--chc);stroke-width:2.25;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}
.k56-cht__s.is-total .k56-cht__ln{stroke:var(--sun);stroke-width:3}
.k56-cht__pt{fill:var(--panel);stroke:var(--chc);stroke-width:1.5;vector-effect:non-scaling-stroke;opacity:0;transition:opacity var(--d1) var(--e-enter)}
.k56-cht__svg:hover .k56-cht__pt,.k56-cht__svg:focus-within .k56-cht__pt{opacity:1}
.k56-cht__bar,.k56-cht__slice{transition:opacity var(--d1) var(--e-enter)}
.k56-cht__bar--teal{fill:color-mix(in srgb,var(--teal-hi) calc(var(--v) * 100%),var(--teal-lo))}
/* colour-blind-safe: on hover or focus, fills take their pattern and lines their own dash */
.k56-cht__svg.is-pat .k56-cht__bar,.k56-cht__svg.is-pat .k56-cht__slice{fill:var(--pat)}
.k56-pat__bg{fill:var(--chc)}.k56-pat__l{stroke:var(--panel);stroke-width:1.1;fill:var(--panel);opacity:.75}
pattern[data-ch=total]{--chc:var(--sun)}
.k56-cht__svg.is-pat .k56-cht__s:nth-of-type(3) .k56-cht__ln{stroke-dasharray:6 4}
.k56-cht__svg.is-pat .k56-cht__s:nth-of-type(4) .k56-cht__ln{stroke-dasharray:2 3}
.k56-cht__svg.is-pat .k56-cht__s:nth-of-type(5) .k56-cht__ln{stroke-dasharray:10 3 2 3}
.k56-cht__band{fill:transparent;transition:fill var(--d1) var(--e-enter)}
.k56-cht__band.is-hov{fill:color-mix(in srgb,var(--text) 6%,transparent)}
.k56-cht__band.is-on{fill:color-mix(in srgb,var(--text) 11%,transparent)}
.k56-cht__hit{fill:transparent;cursor:pointer}
.k56-cht__tip{position:absolute;top:0;z-index:2;display:grid;gap:4px;min-width:150px;padding:8px 12px;border-radius:12px;background:var(--panel);box-shadow:0 0 0 1px var(--line),0 8px 24px rgba(12,11,10,.12);
  font-size:12px;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity var(--d1) var(--e-enter),transform var(--d1) var(--e-enter)}
.k56-cht__tip.is-on{opacity:1;transform:none}
.k56-cht__tip span{display:flex;align-items:center;gap:6px}.k56-cht__tip em{margin-left:auto;font:700 13px var(--fd);font-style:normal;font-variant-numeric:tabular-nums}
/* compare panel */
.k56-cmp{align-self:start;padding:12px 16px;border-radius:16px;background:color-mix(in srgb,var(--track) 55%,transparent)}
.k56-cmp h3{margin:0 0 8px;font:700 16px var(--fd)}
.k56-cmp__r{padding:8px 0;border-top:1px solid var(--line)}
.k56-cmp__r:first-child{border-top:0}
.k56-cmp__d{display:grid;grid-template-columns:1fr auto;gap:0 8px;margin:0;font-weight:600}
.k56-cmp__d b{font:700 18px var(--fd);font-variant-numeric:tabular-nums}
.k56-cmp__d small{grid-column:1/-1;color:var(--muted);font-size:12px}
.k56-cmp ul{display:grid;gap:4px;margin:6px 0 0;padding:0;list-style:none;font-size:12px;color:var(--muted)}
.k56-cmp li{display:flex;align-items:center;gap:6px}.k56-cmp li em{margin-left:auto;font-style:normal;font-variant-numeric:tabular-nums;color:var(--text)}
.k56-cmp__r{animation:k56cmpin var(--d2) var(--e-enter)}
@keyframes k56cmpin{from{opacity:0;transform:translateY(4px)}}
/* enter: lines draw, bars rise, slices fade, once per draw */
.k56-cht__svg.is-enter .k56-cht__ln{stroke-dasharray:1;stroke-dashoffset:1;animation:k56draw var(--d4) var(--e-enter) forwards}
.k56-cht__svg.is-enter .k56-cht__bar{transform-box:fill-box;transform-origin:50% 100%;animation:k56rise var(--d3) var(--e-enter) both;animation-delay:calc(var(--k) * 20ms)}
.k56-cht__svg.is-enter .k56-cht__slice{animation:k56fade var(--d3) var(--e-enter) both;animation-delay:calc(var(--k) * var(--stagger))}
@keyframes k56draw{to{stroke-dashoffset:0}}@keyframes k56rise{from{transform:scaleY(0)}}@keyframes k56fade{from{opacity:0}}
.k56-cht__svg.is-pat .k56-cht__ln{stroke-dashoffset:0;animation:none}
/* teal heatmap (pale to deep), cells fill in by diagonal */
.k56{--teal-lo:#E3F1EF;--teal-hi:#0E5C58}
html[data-k56-theme=dark] .k56{--teal-lo:#1B2A29;--teal-hi:#5FC4B8}
@media(prefers-color-scheme:dark){html:not([data-k56-theme=light]) .k56{--teal-lo:#1B2A29;--teal-hi:#5FC4B8}}
.k56-heat__g i{background:color-mix(in srgb,var(--teal-hi) calc(var(--v) * 100%),var(--teal-lo))!important;border-radius:4px;opacity:1!important}
.k56-heat.k56-rv--wait:not(.is-in) .k56-heat__g i{transform:none}
.k56-heat__g i.is-none{background:transparent!important;box-shadow:inset 0 0 0 1px var(--line)}
.k56-heat__g i:focus-visible{outline:2px solid var(--text);outline-offset:1px}
.k56-heat__g.is-enter i{animation:k56fill var(--d3) var(--e-enter) both;animation-delay:calc(var(--k) * 30ms)}
@keyframes k56fill{from{background:var(--teal-lo)}}
.k56-heat__k i{background:linear-gradient(90deg,var(--teal-lo),var(--teal-hi))!important}
@media(min-width:1024px){.k56-rep{grid-template-columns:repeat(3,minmax(0,1fr))}.k56-rep .k56-daily{grid-column:1/-1}.k56-rep .k56-lead{grid-column:span 2}}
@media(prefers-reduced-motion:reduce){.k56-cht__svg .k56-cht__ln,.k56-cht__svg .k56-cht__bar,.k56-cht__svg .k56-cht__slice,.k56-heat__g i,.k56-cmp__r{animation:none!important;stroke-dasharray:none;stroke-dashoffset:0}.k56-cht__tip,.k56-cht__band,.k56-cht__pt{transition:none}}
html[data-k56-calm] .k56-cht__svg .k56-cht__ln,html[data-k56-calm] .k56-cht__svg .k56-cht__bar,html[data-k56-calm] .k56-cht__svg .k56-cht__slice,html[data-k56-calm] .k56-heat__g i,html[data-k56-calm] .k56-cmp__r{animation:none!important;stroke-dasharray:none;stroke-dashoffset:0}
/* reel cards carry the real artwork on top (R6c) */
.k56-reel__c{overflow:hidden}
.k56-reel__art{display:block;margin:-16px -16px 6px;height:84px;overflow:hidden;background:var(--track)}
.k56-reel__art img{display:block;width:100%;height:100%;object-fit:cover}
.k56-reel__c:has(.k56-reel__art){height:auto;min-height:200px}
/* leaderboard fits a 390 screen: compact trend, drop the "last day" column on phones */
.k56-lead{overflow:hidden}
.k56-lead .k56-table{width:100%;table-layout:auto}
@media(max-width:560px){.k56-lead th:nth-child(4),.k56-lead td:nth-child(4){display:none}.k56-lead .k56-mini{width:64px}.k56-lead th,.k56-lead td{padding-left:4px;padding-right:4px}}
.k56-lead .k56-table td,.k56-lead .k56-table th{white-space:normal;overflow-wrap:anywhere}
.k56-lead .k56-table td:last-child{width:72px}
/* ---- UI-023b craft pass (see MOTION.md). One easing family, one duration scale, 4/8pt rhythm, tabular numbers. ---- */
.k56{--ease:var(--e-enter);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s6:24px;--s8:32px}
/* numbers: Avenir Next Condensed Bold (K Display), tabular, never jiggling as they change */
.k56-cht__tip,.k56-cmp,.k56-cmp b,.k56-heat__g,.k56-chd,.k56-lead td,.k56-cpm__v,.k56-reel__c b,.k56-spendchip,.k56-spend,.k56-next,.k56-race b{font-variant-numeric:tabular-nums}
.k56-cht__tip b,.k56-cmp b{font-family:var(--fd);font-weight:700;letter-spacing:.01em}
.k56-rep .k56-card h2,.k56-pulse .k56-card h2{margin:0 0 var(--s2);font-family:var(--fd);font-size:20px;font-weight:700;line-height:1.2;letter-spacing:.01em}
.k56-rep .k56-card{padding:var(--s4)}
@media(min-width:768px){.k56-rep .k56-card{padding:var(--s6)}}
.k56-rep{gap:var(--s4)}
.k56-cht__h{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);flex-wrap:wrap;margin-bottom:var(--s2)}
.k56-cht__h h2{margin:0!important}
/* press: a short, physical 2% give on every button, released on the spring */
.k56 button,.k56 .k56-btn,.k56 a.k56-btn{transition-property:transform,background-color,color,box-shadow;transition-duration:var(--d1);transition-timing-function:var(--e-enter)}
.k56 .k56-btn:active,.k56 .k56-cht__sw button:active,.k56 .k56-cr__tabs button:active,.k56 .k56-seg button:active{transform:scale(.98);transition-duration:60ms}
/* the + opens on the enter curve; its icon turns on the spring so it lands with a tiny settle */
.k56-xbtn__l{transition:clip-path var(--d2) var(--e-enter),background-color var(--d2) var(--e-enter),box-shadow var(--d2) var(--e-enter)}
.k56-xbtn--plus::after{transition:transform var(--d3) var(--e-spring)}
.k56-xbtn--plus:active .k56-xbtn__l{transform:scale(.98)}
/* capsules: the header tightens and gains depth once content passes under it (state change, not decoration) */
.k56-top::before{transition:inset var(--d2) var(--e-move),border-radius var(--d2) var(--e-move),box-shadow var(--d2) var(--e-move)}
html.k56-scrolled .k56-top::before{box-shadow:0 1px 0 var(--line),0 12px 32px -12px rgba(12,11,10,.28)}
html[data-k56-theme=dark].k56-scrolled .k56-top::before{box-shadow:0 0 0 1px var(--line),0 12px 32px -12px rgba(0,0,0,.7)}
/* Live dot: one quiet ping every 2.4s means "numbers are flowing"; it stops the moment data stops */
.k56-live[data-state=live] i::after{animation:k56ping 2400ms var(--e-exit) infinite}
@keyframes k56ping{0%{transform:scale(.5);opacity:.55}70%,100%{transform:scale(2);opacity:0}}
.k56-live b{transition:color var(--d2) var(--e-enter)}
/* chart hover and select: hover is instant and light, a chosen day is a firm band */
.k56-cht__band{transition:opacity var(--d1) var(--e-enter)}
.k56-cht__tip{transition:opacity var(--d1) var(--e-enter),transform var(--d1) var(--e-enter)}
.k56-cht__hit{cursor:pointer}
.k56-cmp__r{animation:k56cmpin var(--d2) var(--e-enter) both}
/* heatmap: cells fill pale to deep, diagonal, 40ms steps capped so the whole grid lands inside 700ms */
.k56-heat__g.is-enter i{animation-duration:var(--d3);animation-delay:min(calc(var(--k,0) * var(--stagger)),300ms)}
/* empty states read as intentional cards, not blank space */
.k56-cht__empty{display:grid;place-items:center;min-height:160px;padding:var(--s6);border-radius:12px;background:var(--track);color:var(--muted);text-align:center;font-size:14px}
@media(prefers-reduced-motion:reduce){.k56 .k56-btn:active,.k56 button:active,.k56-xbtn--plus:active .k56-xbtn__l{transform:none}.k56-cmp__r,.k56-heat__g.is-enter i{animation:none!important}.k56-top::before,.k56-xbtn__l,.k56-xbtn--plus::after{transition:none}}
html[data-k56-calm] .k56-cmp__r,html[data-k56-calm] .k56-heat__g.is-enter i{animation:none!important}
/* craft: chosen-days panel hides its Clear until there is something to clear; heat squares stay square-sized on wide screens */
.k56-cmp [hidden],.k56-rep [hidden]{display:none!important}
.k56-heat__g{grid-template-columns:auto repeat(var(--w),minmax(0,40px))}
/* craft: reel stack makes room for the artwork, chip and tooltip never break a number */
.k56-reel__stack:has(.k56-reel__art){height:262px}
.k56-reel__c:has(.k56-reel__art){height:240px;min-height:0}
.k56-reel__art{height:88px;margin:-16px -16px 8px}
.k56-spendchip{white-space:nowrap;transition:opacity var(--d2) var(--e-enter),transform var(--d2) var(--e-enter)}
.k56-cht__tip em{white-space:nowrap;padding-left:var(--s3)}
.k56-cht__tip{min-width:168px;max-width:240px}
