/* book-kit.css: shared visual kit for every Zero To Hero book. GENERATED from css/office-book.css (ob- to bk-)
   plus the Power Platform and governance additions at the end. Exhibits are dark in both themes. */

:root{--bk-ease:var(--ease-out,cubic-bezier(.23,1,.32,1));--bk-word:#2b7cd3;--bk-excel:#1f9d55;--bk-ppt:#d35230;--bk-outlook:#28a8ea;--bk-teams:#5b5fc7;--bk-copilot:#a855f7}

:is(.bk-hero,.bk-panel,.bk-app,.bk-gloss,.bk-stack,.bk-steps,.bk-cli,.bk-flow){--white:#f4f2fa;--text:#f4f2fa;--muted:#a9a5b8;--border:rgba(255,255,255,.1);--line:rgba(255,255,255,.1);--link:#c4b5fd;--teal:#2dd4bf;color:#f4f2fa}

/* Shared exhibit frame */
.bk-panel,.bk-gloss,.bk-stack,.bk-steps,.bk-flow{position:relative;margin:2.2rem 0 .9rem;padding:1.2rem 1.25rem 1.1rem;border:1px solid rgba(255,255,255,.09);border-radius:18px;overflow:hidden;
  background:radial-gradient(120% 90% at 12% -10%,rgba(124,58,237,.16),transparent 60%),radial-gradient(110% 90% at 100% 110%,rgba(234,88,12,.10),transparent 62%),#101019;box-shadow:0 18px 46px rgba(0,0,0,.34)}
.bk-panel::before,.bk-gloss::before,.bk-stack::before,.bk-steps::before,.bk-flow::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:var(--bk-rail,linear-gradient(90deg,var(--bk-word),var(--bk-excel),var(--bk-ppt),var(--bk-copilot)));opacity:.85}
.bk-title{font-family:var(--font-display);font-weight:700;font-size:1rem;color:#f4f2fa;margin:0 0 .25rem;text-wrap:balance}
.bk-sub{font-size:.82rem;color:#a9a5b8;margin:0 0 1rem;line-height:1.5}
.bk-note{font-size:.8rem;color:#a9a5b8;margin-top:.8rem;line-height:1.5}
.bk-note a{color:#c4b5fd}
.bk-logo{width:1.15em;height:1.15em;object-fit:contain;display:inline-block;vertical-align:-.2em}

/* Scroll reveal */
.bk-reveal{transition:opacity .45s var(--bk-ease),transform .45s var(--bk-ease)}
.bk-js .bk-reveal{opacity:0;transform:translateY(18px)}
.bk-js .bk-reveal.is-in{opacity:1;transform:none}
.bk-stagger>*{transition:opacity .4s var(--bk-ease),transform .4s var(--bk-ease);transition-delay:calc(var(--i,0) * 60ms)}
.bk-js .bk-stagger>*{opacity:0;transform:translateY(14px)}
.bk-js .bk-stagger.is-in>*{opacity:1;transform:none}

/* ── Chapter hero: Copilot at the centre, the apps in orbit ── */
.bk-hero{position:relative;margin:0 0 2rem;border-radius:22px;overflow:hidden;border:1px solid rgba(255,255,255,.08);min-height:300px;display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:1rem;padding:1.6rem 1.75rem;
  background:radial-gradient(90% 120% at 100% 50%,rgba(168,85,247,.22),transparent 60%),radial-gradient(70% 90% at 0% 100%,color-mix(in srgb,var(--hero,#d35230) 26%,transparent),transparent 65%),#0d0c16}
.bk-hero__kicker{font-family:var(--font-display);font-weight:700;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;color:#e0bf5f;margin:0 0 .6rem}
.bk-hero__line{font-family:var(--font-display);font-weight:800;font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.12;color:#fff;margin:0 0 .7rem;text-wrap:balance}
.bk-hero__line span{color:color-mix(in srgb,var(--hero,#fb923c) 55%,#fff)}
.bk-hero__meta{display:flex;flex-wrap:wrap;gap:.4rem}
.bk-hero__meta span{font-size:.72rem;font-weight:700;padding:.2rem .6rem;border-radius:99px;background:rgba(255,255,255,.07);color:#d9d6e6}
.bk-orbit{position:relative;width:100%;max-width:300px;aspect-ratio:1;margin-inline:auto}
.bk-orbit__ring{position:absolute;inset:8%;border-radius:50%;border:1px dashed rgba(255,255,255,.16)}
.bk-orbit__ring--2{inset:24%;border-style:solid;border-color:rgba(168,85,247,.25)}
.bk-orbit__core{position:absolute;inset:36%;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle,rgba(168,85,247,.35),rgba(168,85,247,.05) 70%)}
.bk-orbit__core img{width:62%;height:auto}
.bk-orbit__spin{position:absolute;inset:8%;animation:bk-spin 48s linear infinite;animation-play-state:paused}
.bk-orbit__sat{position:absolute;width:19%;aspect-ratio:1;left:calc(50% + 50% * var(--x) - 9.5%);top:calc(50% + 50% * var(--y) - 9.5%);display:grid;place-items:center;border-radius:14px;background:#17141f;border:1px solid rgba(255,255,255,.12);box-shadow:0 10px 24px rgba(0,0,0,.45);animation:bk-spin 48s linear infinite reverse;animation-play-state:paused}
.bk-orbit.is-in .bk-orbit__spin,.bk-orbit.is-in .bk-orbit__sat{animation-play-state:running}
.bk-orbit__sat img{width:66%;height:auto}
@keyframes bk-spin{to{transform:rotate(360deg)}}
@keyframes bk-breathe{0%,100%{transform:scale(1);opacity:.95}50%{transform:scale(1.06);opacity:1}}
@media (max-width:700px){.bk-hero{grid-template-columns:1fr;padding:1.3rem 1.1rem;min-height:0;gap:.5rem}.bk-orbit{max-width:160px}.bk-note,.bk-tl__d,.bk-term__eg{font-size:.84rem}}

/* ── Animated horizontal bars ── */
.bk-bars{display:flex;flex-direction:column;gap:.85rem}
.bk-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.3rem .8rem;align-items:end}
.bk-bar__label{font-size:.86rem;color:#e9e6f3;line-height:1.4}
.bk-bar__val{font-family:var(--font-display);font-weight:800;font-size:1.15rem;color:#fff;font-variant-numeric:tabular-nums}
.bk-bar__track{grid-column:1/-1;height:10px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.bk-bar__fill{height:100%;width:100%;border-radius:99px;background:linear-gradient(90deg,var(--c1,#a855f7),var(--c2,#fb923c));transform:scaleX(0);transform-origin:left;transition:transform .9s var(--bk-ease)}
.is-in .bk-bar__fill{transform:scaleX(calc(var(--v) / 100))}

/* ── Big stat tiles ── */
.bk-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(130px,100%),1fr));gap:.8rem}
.bk-stat{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:1rem;background:rgba(255,255,255,.03)}
.bk-stat__v{font-family:var(--font-display);font-weight:800;font-size:2rem;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.bk-stat__v small{font-size:.55em;color:#e0bf5f;margin-left:.1em}
.bk-stat__k{font-size:.8rem;color:#a9a5b8;margin-top:.45rem;line-height:1.45}

/* ── Timeline ── */
.bk-timeline{position:relative;display:grid;grid-template-columns:repeat(var(--n,6),minmax(0,1fr));gap:.6rem;padding-top:2.1rem}
.bk-timeline::before{content:"";position:absolute;left:0;right:0;top:.95rem;height:2px;background:linear-gradient(90deg,rgba(255,255,255,.12),rgba(168,85,247,.7));transform-origin:left;transform:scaleX(0);transition:transform 1.2s var(--bk-ease)}
.bk-timeline.is-in::before{transform:scaleX(1)}
.bk-js .bk-tl{opacity:0;transform:translateY(12px)}
.bk-tl{position:relative;transition:opacity .45s var(--bk-ease),transform .45s var(--bk-ease);transition-delay:calc(200ms + var(--i,0) * 70ms)}
.bk-timeline.is-in .bk-tl{opacity:1;transform:none}
.bk-tl::before{content:"";position:absolute;top:-1.5rem;left:0;width:12px;height:12px;border-radius:50%;background:#101019;border:2px solid var(--dot,#a855f7);box-shadow:0 0 0 4px rgba(168,85,247,.12)}
.bk-tl__year{font-family:var(--font-display);font-weight:800;font-size:1rem;color:#fff}
.bk-tl__name{font-size:.78rem;font-weight:700;color:#e0bf5f;margin:.15rem 0 .3rem}
.bk-tl__d{font-size:.8rem;color:#a9a5b8;line-height:1.45}
.bk-tl img{position:absolute;top:-2.05rem;left:1.1rem;height:16px;width:auto;margin:0}
@media (max-width:760px){.bk-tl img{top:.1rem;left:auto;right:0}.bk-timeline{grid-template-columns:1fr;padding-top:0;padding-left:1.5rem;gap:1rem}.bk-timeline::before{left:.35rem;right:auto;top:0;bottom:0;width:2px;height:auto;transform-origin:top;transform:scaleY(0)}.bk-timeline.is-in::before{transform:scaleY(1)}.bk-tl::before{top:.2rem;left:-1.5rem}}

/* ── Before / after loop ── */
.bk-vs{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:stretch}
.bk-vs__col{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:1rem;background:rgba(255,255,255,.025)}
.bk-vs__col--new{border-color:rgba(168,85,247,.45);background:rgba(168,85,247,.07)}
.bk-vs__h{font-family:var(--font-display);font-weight:700;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:#a9a5b8;margin-bottom:.7rem}
.bk-vs__col--new .bk-vs__h{color:#c084fc}
.bk-vs ol{margin:0;padding-left:1.2rem;list-style:decimal;font-size:.86rem;line-height:1.55;color:#e9e6f3}
.bk-vs ol li{margin-bottom:.35rem}
.bk-vs__arrow{display:grid;place-items:center;color:#e0bf5f;font-size:1.6rem}
@media (max-width:700px){.bk-vs{grid-template-columns:1fr}.bk-vs__arrow{transform:rotate(90deg)}}

/* ── Tabs (app switcher, glossary filter) ── */
.bk-tabs{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}
.bk-tab{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .8rem;border-radius:99px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);color:#e9e6f3;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer;transition:background .2s var(--bk-ease),border-color .2s var(--bk-ease),transform .15s var(--bk-ease)}
.bk-tab img{width:18px;height:18px}
@media (hover:hover) and (pointer:fine){.bk-tab:hover{background:rgba(255,255,255,.08)}}
.bk-tab:active{transform:scale(.97)}
.bk-tab[aria-selected="true"],.bk-tab[aria-pressed="true"]{background:color-mix(in srgb,var(--tab,#a855f7) 26%,transparent);border-color:var(--tab,#a855f7);color:#fff}
.bk-tab:focus-visible{outline:2px solid #e0bf5f;outline-offset:2px}
.bk-tabpanel{animation:bk-fade 150ms ease-out}
@keyframes bk-fade{from{opacity:0}}
.bk-tabpanel[hidden]{display:none}
@keyframes bk-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.bk-appcard{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start}
.bk-appcard__logo{width:56px;height:56px;border-radius:14px;display:grid;place-items:center;background:#17141f;border:1px solid rgba(255,255,255,.1)}
.bk-appcard__logo img{width:36px;height:36px}
.bk-appcard h4{text-transform:none;letter-spacing:0;margin:0 0 .3rem;font-family:var(--font-display);font-size:1rem;color:#fff}
.bk-appcard p{margin:0 0 .6rem;font-size:.86rem;color:#d9d6e6;line-height:1.55}
.bk-appcard ul{margin:0;padding-left:1.1rem;list-style:disc;font-size:.84rem;color:#e9e6f3;line-height:1.55}

/* ── App window mockup with a Copilot pane ── */
.bk-app{margin:2.2rem 0 .9rem;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#14121d;box-shadow:0 24px 60px rgba(0,0,0,.45)}
.bk-app__bar{display:flex;align-items:center;gap:.6rem;padding:.55rem .8rem;background:var(--app,#2b7cd3);color:#fff;font-size:.78rem;font-weight:700}
.bk-app__bar img{width:18px;height:18px;filter:drop-shadow(0 1px 1px rgba(0,0,0,.3))}
.bk-app__dots{display:none}
.bk-app__ribbon{display:flex;gap:.9rem;padding:.4rem .8rem;background:#1b1826;border-bottom:1px solid rgba(255,255,255,.06);font-size:.7rem;color:#a9a5b8;overflow:hidden;white-space:nowrap}
.bk-app__ribbon b{color:#fff;font-weight:700;border-bottom:2px solid var(--app,#2b7cd3);padding-bottom:.15rem}
.bk-app__body{display:grid;grid-template-columns:1fr 290px;min-height:300px}
.bk-app__canvas{padding:1.1rem 1.2rem;background:#f7f6fb;color:#17151f;position:relative;overflow:hidden}
.bk-app__pane{border-left:1px solid rgba(255,255,255,.08);background:#17141f;padding:.8rem;display:flex;flex-direction:column;gap:.6rem;font-size:.78rem}
.bk-app__pane-h{display:flex;align-items:center;gap:.45rem;font-weight:800;color:#fff}
.bk-app__pane-h img{width:18px;height:18px}
.bk-msg{border-radius:12px;padding:.55rem .7rem;line-height:1.5;transition:opacity .4s var(--bk-ease),transform .4s var(--bk-ease)}
.bk-js .bk-msg{opacity:0;transform:translateY(8px)}
.bk-msg--you{align-self:flex-end;max-width:92%;background:rgba(168,85,247,.22);color:#fff}
.bk-msg--ai{background:rgba(255,255,255,.05);color:#e9e6f3;border:1px solid rgba(255,255,255,.07)}
.bk-msg code{font-size:.92em}
.bk-msg .bk-skill{display:inline-block;padding:0 .4rem;border-radius:6px;background:rgba(224,191,95,.18);color:#f5d77a;font-weight:700}
.bk-js .bk-app.is-in .bk-msg{opacity:1;transform:none;transition-delay:calc(var(--i,1) * 320ms - 200ms)}
.bk-app__input{margin-top:auto;border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:.5rem .6rem;color:#a9a5b8;display:flex;align-items:center;gap:.4rem}
.bk-app__input b{color:#f5d77a}
.bk-typing::after{content:"";display:inline-block;width:2px;height:1em;background:#c084fc;vertical-align:-.15em;margin-left:2px;animation:bk-caret 1s steps(1) 6}
@keyframes bk-caret{50%{opacity:0}}
/* canvas content helpers */
.bk-doc h5{font-family:Georgia,"Times New Roman",serif;font-size:1.05rem;margin:0 0 .5rem;color:#111}
.bk-doc p{font-family:Georgia,"Times New Roman",serif;font-size:.8rem;line-height:1.6;margin:0 0 .55rem;color:#2a2733}
.bk-doc mark{background:rgba(43,124,211,.16);color:inherit;padding:0 .1em;border-radius:3px;transition:background .6s var(--bk-ease)}
.bk-app.is-in .bk-doc mark{background:rgba(43,124,211,.28)}
.bk-doc .bk-flag{display:inline-block;font-family:var(--font-display);font-size:.62rem;font-weight:800;padding:.05rem .4rem;border-radius:99px;background:#fde7e2;color:#b42318;vertical-align:.1em}
.bk-line{height:8px;border-radius:4px;background:#e4e1ec;margin:.45rem 0}
.bk-line--s{width:55%}.bk-line--m{width:78%}
@media (max-width:760px){.bk-app__body{grid-template-columns:1fr}.bk-app__pane{border-left:0;border-top:1px solid rgba(255,255,255,.08)}}

/* Sheet grid inside the Excel canvas */
.bk-sheet{width:100%;border-collapse:collapse;font-family:"Segoe UI",var(--sans);font-size:.72rem;font-variant-numeric:tabular-nums;color:#1f1d26}
.bk-sheet th,.bk-sheet td{border:1px solid #dcd9e4;padding:.28rem .45rem;text-align:right;white-space:nowrap}
.bk-sheet thead th{background:#ecebf2;color:#57536a;font-weight:600;text-align:center}
.bk-sheet tbody th{background:#f2f1f6;color:#57536a;text-align:left;font-weight:600}
.bk-sheet td.is-calc{background:#e9f7ef;color:#0f5132;font-weight:700}
.bk-sheet td.is-warn{background:#fff4e5;color:#92400e;font-weight:700;position:relative}
.bk-app.is-in .bk-sheet td.is-warn{animation:bk-pulse 1.6s ease-in-out 2 1.4s}
@keyframes bk-pulse{50%{box-shadow:inset 0 0 0 2px #f59e0b}}

/* Slide canvas for PowerPoint */
.bk-deck{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.bk-slide{aspect-ratio:16/9;border-radius:8px;background:#fff;border:1px solid #e4e1ec;padding:8%;display:flex;flex-direction:column;gap:6%;box-shadow:0 6px 14px rgba(23,21,31,.12);transition:opacity .45s var(--bk-ease),transform .45s var(--bk-ease);transition-delay:calc(.5s + var(--i,0) * 70ms)}
.bk-js .bk-slide{opacity:0;transform:scale(.94) translateY(8px)}
.bk-js .bk-app.is-in .bk-slide{opacity:1;transform:none}
.bk-slide__t{height:12%;width:70%;border-radius:3px;background:#d35230}
.bk-slide__l{height:6%;border-radius:3px;background:#e4e1ec}
.bk-slide__chart{flex:1;display:flex;align-items:flex-end;gap:6%}
.bk-slide__chart i{flex:1;background:linear-gradient(#fb923c,#d35230);border-radius:2px 2px 0 0}
.bk-slide--hero{background:linear-gradient(135deg,#d35230,#7c3aed)}
.bk-slide--hero .bk-slide__t{background:rgba(255,255,255,.9)}
.bk-slide--hero .bk-slide__l{background:rgba(255,255,255,.5)}
@media (max-width:520px){.bk-deck{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ── Glossary cards ── */
.bk-gloss__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.75rem}
.bk-term{border:1px solid rgba(255,255,255,.08);border-left:3px solid var(--t,#a855f7);border-radius:6px 14px 14px 6px;padding:.95rem;background:rgba(255,255,255,.03);display:flex;flex-direction:column;gap:.4rem;transition:border-color .2s var(--bk-ease)}
@media (hover:hover) and (pointer:fine){.bk-term:hover{border-top-color:rgba(168,85,247,.5);border-right-color:rgba(168,85,247,.5);border-bottom-color:rgba(168,85,247,.5)}}
.bk-term[hidden]{display:none}
.bk-term__k{display:flex;align-items:center;gap:.5rem;font-family:var(--font-display);font-weight:800;font-size:1rem;color:#fff}
.bk-term__k i{font-style:normal;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;font-size:.95rem;background:color-mix(in srgb,var(--t,#a855f7) 22%,transparent);color:var(--t,#c084fc)}
.bk-term__d{font-size:.84rem;color:#e9e6f3;line-height:1.55}
.bk-term__eg{font-size:.8rem;color:#a9a5b8;line-height:1.5;border-top:1px dashed rgba(255,255,255,.1);padding-top:.45rem;margin-top:auto}
.bk-term__eg b{color:#e0bf5f;font-weight:700}

/* ── Layered stack diagram ── */
.bk-layers{display:flex;flex-direction:column;gap:.5rem}
.bk-layer{display:grid;grid-template-columns:150px 1fr;gap:.9rem;align-items:center;border-radius:12px;padding:.75rem .9rem;background:color-mix(in srgb,var(--l,#a855f7) 13%,#15131f);border:1px solid color-mix(in srgb,var(--l,#a855f7) 38%,transparent)}
.bk-layer__k{font-family:var(--font-display);font-weight:800;font-size:.86rem;color:#fff}
.bk-layer__k small{display:block;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--l,#c084fc);font-weight:700;margin-bottom:.1rem}
.bk-layer__v{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-size:.8rem;color:#e9e6f3}
.bk-pill{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .55rem;border-radius:99px;background:rgba(255,255,255,.07);font-size:.76rem;font-weight:600;color:#f4f2fa;white-space:nowrap}
.bk-pill img{width:15px;height:15px}
@media (max-width:620px){.bk-layer{grid-template-columns:1fr;gap:.4rem}}

/* ── Simulated click-through steps ── */
.bk-steps__row{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:.7rem;counter-reset:bkstep}
.bk-step{position:relative;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:.9rem .9rem .85rem;background:rgba(255,255,255,.03);counter-increment:bkstep}
.bk-step::before{content:counter(bkstep);position:absolute;top:-.6rem;left:.8rem;width:1.5rem;height:1.5rem;border-radius:50%;display:grid;place-items:center;background:#e0bf5f;color:#1a1405;font-family:var(--font-display);font-weight:800;font-size:.75rem;box-shadow:0 0 0 4px #101019}
.bk-step__h{font-weight:800;font-size:.86rem;color:#fff;margin:.35rem 0 .3rem}
.bk-step__d{font-size:.8rem;color:#d9d6e6;line-height:1.5}
.bk-step kbd{font-family:var(--mono);font-size:.74rem;padding:.05rem .35rem;border-radius:5px;border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff}
.bk-click{position:relative}
.bk-click::after{content:"";position:absolute;right:.7rem;bottom:.7rem;width:16px;height:16px;border-radius:50%;border:2px solid #c084fc;opacity:0}
.bk-steps.is-in .bk-step:first-child.bk-click::after{animation:bk-ripple 1.2s var(--bk-ease) .5s 1}
@keyframes bk-ripple{0%{opacity:.9;transform:scale(.4)}100%{opacity:0;transform:scale(2.2)}}
@media (max-width:760px){.bk-steps__row{grid-template-columns:1fr 1fr}}
@media (max-width:460px){.bk-steps__row{grid-template-columns:1fr}}

/* Status chips (match chapter 2 of the governance book) */
.chip{display:inline-block;padding:.1rem .55rem;border-radius:99px;font-size:.72rem;font-weight:700;white-space:nowrap}
.chip--ga{background:rgba(52,211,153,.18);color:#34D399}
.chip--pv{background:rgba(234,179,8,.18);color:#EAB308}
.chip--fr{background:rgba(168,85,247,.2);color:#d8b4fe}
.chip--in{background:rgba(96,165,250,.18);color:#93c5fd}

@media (prefers-reduced-motion:reduce){
  .bk-tabpanel{animation:none}.bk-term,.bk-tab{transition:none}
  .bk-reveal,.bk-stagger>*,.bk-tl,.bk-msg,.bk-slide{opacity:1!important;transform:none!important;transition:none!important}
  .bk-orbit__spin,.bk-orbit__sat,.bk-orbit__core,.bk-typing::after{animation:none!important}
  .bk-bar__fill{transition:none}.bk-timeline::before{transform:none;transition:none}
  .bk-steps .bk-click::after,.bk-sheet td.is-warn{animation:none!important}
}

/* Keep the simulated sheet looking like Excel inside .chapter-body tables */
.chapter-body .bk-sheet{margin:0;min-width:0;background:#fff;border-radius:0;box-shadow:none}
.chapter-body .bk-sheet tr,.chapter-body .bk-sheet tbody tr:nth-child(even),.chapter-body .bk-sheet tbody tr:hover{background:#fff}
.chapter-body .bk-sheet tr:nth-child(n) td{color:#1f1d26;background:#fff;font-size:.72rem}
.chapter-body .bk-sheet thead th{background:#ecebf2;color:#57536a;font-size:.68rem;letter-spacing:0;text-transform:none}
.chapter-body .bk-sheet tbody th{background:#f2f1f6;color:#57536a}
.chapter-body .bk-sheet tr:nth-child(n) td.is-calc{background:#e9f7ef;color:#0f5132}
.chapter-body .bk-sheet tr:nth-child(n) td.is-warn{background:#fff4e5;color:#92400e}

@media print{.bk-reveal,.bk-stagger>*,.bk-tl,.bk-msg,.bk-slide{opacity:1!important;transform:none!important}.bk-bar__fill{transform:scaleX(calc(var(--v) / 100))!important}.bk-orbit__spin,.bk-orbit__sat{animation:none!important}}

/* ════ Additions for the Power Platform and governance books ════ */
:root{--bk-apps:#c03bc4;--bk-automate:#0f6cbd;--bk-pages:#8a5cf6;--bk-dataverse:#1fa06a;--bk-cps:#14b8a6;--bk-claude:#d97757;--bk-ghc:#9ca3af;--bk-purview:#3b82f6;--bk-entra:#38bdf8}
/* Book accents: set on .chapter-body. They change the 2px rail on every exhibit. */
.bk-pp{--bk-acc:#0f6cbd;--bk-acc2:#a855f7;--bk-rail:linear-gradient(90deg,var(--bk-acc),var(--bk-acc2))}
.bk-gov{--bk-acc:#38bdf8;--bk-acc2:#6366f1;--bk-rail:linear-gradient(90deg,var(--bk-acc),var(--bk-acc2))}
.bk-hero--pp{background:radial-gradient(90% 120% at 100% 50%,rgba(168,85,247,.24),transparent 60%),radial-gradient(70% 90% at 0% 100%,color-mix(in srgb,var(--hero,#0f6cbd) 30%,transparent),transparent 65%),#0d0c16}

/* ── CLI window: an AI Client / Harness session played line by line ── */
.bk-cli{margin:2.2rem 0 .9rem;border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#0b0a12;box-shadow:0 24px 60px rgba(0,0,0,.45)}
.bk-cli__bar{display:flex;align-items:center;gap:.55rem;padding:.55rem .85rem;background:#17141f;border-bottom:1px solid rgba(255,255,255,.07);font-size:.76rem;font-weight:700;color:#d9d6e6}
.bk-cli__bar img{width:18px;height:18px}
.bk-cli__bar span{margin-left:auto;font-weight:600;color:#a9a5b8;font-family:var(--mono);font-size:.7rem}
.bk-cli__body{padding:.9rem 1rem 1rem;font-family:var(--mono);font-size:.76rem;line-height:1.65;color:#d9d6e6;overflow-x:auto}
.bk-cli__l{display:block;white-space:pre-wrap;word-break:break-word;transition:opacity .22s var(--bk-ease),transform .22s var(--bk-ease);transition-delay:var(--d,calc(var(--i,0) * 120ms))}
.bk-js .bk-cli__l{opacity:0;transform:translateY(4px)}
.bk-js .bk-cli.is-in .bk-cli__l{opacity:1;transform:none}
.bk-cli__l--you{color:#fff}
.bk-cli__l--you::before{content:"> ";color:#d97757;font-weight:700}
.bk-cli__l--cmd::before{content:"$ ";color:#2dd4bf;font-weight:700}
.bk-cli__l--tool{color:#c4b5fd}
.bk-cli__l--tool::before{content:"● ";color:#a855f7}
.bk-cli__l--ok{color:#6ee7b7}
.bk-cli__l--ok::before{content:"✓ ";font-weight:700}
.bk-cli__l--warn{color:#fcd34d}
.bk-cli__l--dim{color:#8b879c}
.bk-cli__l b{color:#f5d77a;font-weight:700}

/* ── Flow chain: nodes joined by animated connectors (pipelines, triggers, ALM) ── */
.bk-chain{display:grid;grid-template-columns:repeat(var(--n,4),minmax(0,1fr));gap:1.6rem;position:relative}
.bk-node{position:relative;border:1px solid color-mix(in srgb,var(--c,#a855f7) 40%,transparent);border-radius:14px;padding:.85rem .85rem .8rem;background:color-mix(in srgb,var(--c,#a855f7) 10%,#14121d);transition:opacity .4s var(--bk-ease),transform .4s var(--bk-ease);transition-delay:calc(var(--i,0) * 300ms)}
.bk-js .bk-node{opacity:0;transform:translateY(10px)}
.bk-js .bk-flow.is-in .bk-node{opacity:1;transform:none}
.bk-node img{width:26px;height:26px;margin-bottom:.4rem;display:block}
.bk-node__k{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--c,#c084fc)}
.bk-node__h{font-family:var(--font-display);font-weight:800;font-size:.9rem;color:#fff;margin:.15rem 0 .3rem;line-height:1.25}
.bk-node__d{font-size:.78rem;color:#d9d6e6;line-height:1.5}
.bk-node:not(:last-child)::after{content:"";position:absolute;top:50%;right:-1.6rem;width:1.6rem;height:2px;background:linear-gradient(90deg,var(--c,#a855f7),rgba(255,255,255,.25));transform-origin:left;transform:scaleX(0);transition:transform .22s var(--bk-ease);transition-delay:calc(var(--i,0) * 300ms + 160ms)}
.bk-flow.is-in .bk-node:not(:last-child)::after{transform:scaleX(1)}
html:not(.bk-js) .bk-node::after{transform:scaleX(1)}
.bk-node:not(:last-child)::before{content:"";position:absolute;top:calc(50% - 4px);right:-1.6rem;width:0;height:0;border-left:7px solid rgba(255,255,255,.4);border-top:5px solid transparent;border-bottom:5px solid transparent;opacity:0;transition:opacity .12s;transition-delay:calc(var(--i,0) * 300ms + 340ms)}
.bk-flow.is-in .bk-node:not(:last-child)::before{opacity:1}
.bk-node--gate{border-style:dashed}
@media (max-width:760px){.bk-chain{grid-template-columns:1fr;gap:1.4rem}.bk-node:not(:last-child)::after{top:auto;bottom:-1.4rem;right:auto;left:1.4rem;width:2px;height:1.4rem;transform-origin:top;transform:scaleY(0)}.bk-flow.is-in .bk-node:not(:last-child)::after,html:not(.bk-js) .bk-node::after{transform:scaleY(1)}.bk-node:not(:last-child)::before{display:none}}

/* ── Compare cards: two or three options side by side, one recommended ── */
.bk-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:.8rem}
.bk-card{border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:1rem;background:rgba(255,255,255,.03);display:flex;flex-direction:column;gap:.45rem}
.bk-card--pick{border-color:color-mix(in srgb,var(--c,#a855f7) 60%,transparent);background:color-mix(in srgb,var(--c,#a855f7) 9%,transparent)}
.bk-card__h{display:flex;align-items:center;gap:.55rem;font-family:var(--font-display);font-weight:800;font-size:.98rem;color:#fff}
.bk-card__h img{width:26px;height:26px}
.bk-card__tag{font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;font-weight:800;color:var(--c,#c084fc)}
.bk-card p{margin:0;font-size:.83rem;color:#d9d6e6;line-height:1.55}
.bk-card ul{margin:0;padding-left:1.05rem;list-style:disc;font-size:.82rem;color:#e9e6f3;line-height:1.55}
.bk-card ul li{margin-bottom:.2rem}
.bk-card__foot{margin-top:auto;padding-top:.5rem;border-top:1px dashed rgba(255,255,255,.1);font-size:.76rem;color:#a9a5b8}
.bk-card__foot b{color:#e0bf5f}

/* Dark-in-both-themes guard for the exhibits inside .chapter-body (reading.css styles bare lists, code and tables) */
.chapter-body :is(.bk-panel,.bk-stack,.bk-steps,.bk-flow,.bk-gloss,.bk-cli) :is(p,li){color:inherit}
.chapter-body :is(.bk-panel,.bk-stack,.bk-steps,.bk-flow,.bk-gloss,.bk-cli,.bk-app__pane) code{background:rgba(255,255,255,.08);color:#f5d77a;border:0}

@media (prefers-reduced-motion:reduce){
  .bk-cli__l,.bk-node{opacity:1!important;transform:none!important;transition:none!important}
  .bk-node::after{transform:none!important;transition:none!important}.bk-node::before{opacity:1!important;transition:none!important}
}
@media print{.bk-cli__l,.bk-node{opacity:1!important;transform:none!important}}

/* Heroes and other div exhibits take the wide measure, like figures do in reading.css */
.chapter-body>:is(.bk-hero,div.bk-panel,div.bk-stack,div.bk-steps,div.bk-flow,div.bk-cli,div.bk-app,div.bk-gloss){max-width:var(--wide,100%)}
@media (max-width:420px){.bk-pill{white-space:normal}}
.chapter-body p.bk-note{font-size:.72rem;line-height:1.5;margin:.8rem 0 0;max-width:none}
.bk-node code,.bk-card code,.bk-step code,.bk-layer code{overflow-wrap:anywhere;word-break:break-word}

html:not(.bk-js) .bk-node:not(:last-child)::before{opacity:1}
[data-bk-filter] .bk-note[aria-live]{min-height:1.1em}
@media print{
  :is(.bk-hero,.bk-panel,.bk-stack,.bk-steps,.bk-flow,.bk-gloss,.bk-cli,.bk-app){-webkit-print-color-adjust:exact;print-color-adjust:exact;break-inside:avoid;box-shadow:none}
  .bk-node::after{transform:none!important}.bk-node::before{opacity:1!important}.bk-timeline::before{transform:none!important}
  .bk-tabpanel[hidden],.bk-term[hidden]{display:block!important}
}

/* One quiet glow per book instead of the Office book's purple + PowerPoint orange (Taste review) */
:is(.bk-pp,.bk-gov) :is(.bk-panel,.bk-gloss,.bk-stack,.bk-steps,.bk-flow){background:radial-gradient(120% 90% at 12% -10%,color-mix(in srgb,var(--bk-acc) 14%,transparent),transparent 60%),#101019}
:is(.bk-pp,.bk-gov) .bk-vs__col--new{border-color:color-mix(in srgb,var(--bk-acc) 50%,transparent);background:color-mix(in srgb,var(--bk-acc) 8%,transparent)}
:is(.bk-pp,.bk-gov) .bk-vs__col--new .bk-vs__h{color:color-mix(in srgb,var(--bk-acc) 60%,#fff)}
:is(.bk-pp,.bk-gov) .bk-timeline::before{background:linear-gradient(90deg,rgba(255,255,255,.12),color-mix(in srgb,var(--bk-acc) 70%,transparent))}
.bk-layer__k small{text-transform:none;letter-spacing:.01em;font-size:.72rem}
/* Small screens: at most three hero pills, smaller orbit */
@media (max-width:520px){.bk-hero__meta span:nth-child(n+4){display:none}}

/* Impeccable review: small accent labels need AA contrast on the dark frames */
.bk-node__k,.bk-card__tag,.bk-layer__k small{color:color-mix(in srgb,var(--c,var(--l,#a855f7)) 55%,#fff)}
.bk-layer__k small{color:color-mix(in srgb,var(--l,#a855f7) 55%,#fff)}
@media (pointer:coarse){.bk-tab{min-height:44px}}
@media (max-width:700px){.chapter-body p.bk-note{font-size:.8rem}.bk-cli__body{font-size:.8rem}}
.bk-cli__l--you::before{content:"> " / ""}.bk-cli__l--cmd::before{content:"$ " / ""}.bk-cli__l--tool::before{content:"● " / ""}.bk-cli__l--ok::before{content:"✓ " / ""}
html:not(.bk-js) .bk-bar__fill{transform:scaleX(calc(var(--v) / 100))}html:not(.bk-js) .bk-timeline::before{transform:none}
