/* Demo polish (D1): cockpit visual system. 4px spacing grid, type ramp 12/13/15/20/28/34, one icon set, status colours AA on white. */
.ck{--ck-bg:#fff;--ck-line:#E3E6EA;--ck-ink:#14181F;--ck-ink2:#4B5563;--ck-ink3:#5F6B7A;--ck-brand:#1F4D3A;--ck-brand-h:#163A2B;
 --ck-ok:#0F7A4F;--ck-ok-bg:#E8F5EE;--ck-warn:#975A00;--ck-warn-bg:#FFF4E0;--ck-bad:#B42318;--ck-bad-bg:#FDECEA;--ck-r:12px;
 --ck-sh:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.06);font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ck-ink);margin:0 0 32px}
.ck *{box-sizing:border-box}
.ck-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px}
.ck-eyebrow{font:500 12px/16px "IBM Plex Sans",sans-serif;letter-spacing:.02em;color:var(--ck-ink3);display:flex;flex-wrap:wrap;align-items:center;gap:8px;text-transform:none}
.ck-ex{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:10px;background:var(--ck-warn-bg);color:var(--ck-warn);font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase}
.ck-h1{font:600 28px/34px "IBM Plex Sans",sans-serif!important;letter-spacing:-.02em;margin:4px 0 0!important;color:var(--ck-ink);outline:none!important;border:0!important}
.ck-hero .ck-h1{font-size:34px!important;line-height:40px!important;max-width:18ch}
.ck-lede{font-size:15px;line-height:22px;color:var(--ck-ink2);margin:8px 0 16px;max-width:none}
.ck-note{font-size:12px;line-height:16px;color:var(--ck-ink3);margin:12px 0 0}
.ck-sum{display:flex;gap:6px}
.ck-pill{display:inline-flex;align-items:center;height:24px;padding:0 10px;border-radius:12px;font:600 12px/1 "IBM Plex Sans",sans-serif;white-space:nowrap}
.ck-pill.is-ok{background:var(--ck-ok-bg);color:var(--ck-ok)}.ck-pill.is-warn{background:var(--ck-warn-bg);color:var(--ck-warn)}.ck-pill.is-bad{background:var(--ck-bad-bg);color:var(--ck-bad)}
.ck-grid{display:grid;grid-template-columns:1fr;gap:8px;margin:0;padding:0}
.ck-tile{all:unset;box-sizing:border-box;display:grid;grid-template-columns:28px 1fr 16px;align-items:center;gap:12px;width:100%;min-height:64px;padding:12px 14px;background:var(--ck-bg);border:1px solid var(--ck-line);border-radius:var(--ck-r);box-shadow:var(--ck-sh);cursor:pointer;position:relative;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}
.ck-tile::before{content:"";position:absolute;left:-1px;top:12px;bottom:12px;width:3px;border-radius:0 3px 3px 0;background:var(--c)}
.ck-tile.is-ok{--c:var(--ck-ok);--cb:var(--ck-ok-bg)}.ck-tile.is-warn{--c:var(--ck-warn);--cb:var(--ck-warn-bg)}.ck-tile.is-bad{--c:var(--ck-bad);--cb:var(--ck-bad-bg)}
.ck-tile:hover{border-color:#C9CED6;box-shadow:0 4px 12px rgba(16,24,40,.08)}.ck-tile:active{transform:scale(.99)}
.ck-tile:focus-visible{outline:2px solid #2563EB;outline-offset:2px}
.ck-ic{width:28px;height:28px;border-radius:8px;background:var(--cb);display:grid;place-items:center}
.ck-ic svg{width:16px;height:16px;fill:none;stroke:var(--c);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ck-tx{display:grid;grid-template-columns:1fr auto;column-gap:8px;min-width:0}
.ck-t{font:500 13px/18px "IBM Plex Sans",sans-serif;color:var(--ck-ink2)}
.ck-v{font:600 15px/18px "IBM Plex Sans",sans-serif;color:var(--c);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.ck-d{grid-column:1/-1;font-size:12px;line-height:16px;color:var(--ck-ink3);margin-top:2px;overflow-wrap:anywhere}
.ck-go svg,.ck-link svg{width:16px;height:16px;fill:none;stroke:var(--ck-ink3);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.ck-h2{font:600 15px/20px "IBM Plex Sans",sans-serif!important;margin:28px 0 12px!important;color:var(--ck-ink)}
.ck-out{display:grid;grid-template-columns:1fr;gap:12px}
.ck-card{background:var(--ck-bg);border:1px solid var(--ck-line);border-radius:var(--ck-r);box-shadow:var(--ck-sh);padding:16px;min-width:0}
.ck-card header{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ck-k{font:500 13px/18px "IBM Plex Sans",sans-serif;color:var(--ck-ink2)}
.ck-tag{font-size:11px;line-height:16px;font-weight:600;color:var(--ck-ink3);background:#F2F4F7;border-radius:10px;padding:2px 8px;white-space:nowrap}
.ck-big{font:600 28px/34px "IBM Plex Sans",sans-serif;letter-spacing:-.02em;margin-top:6px;font-variant-numeric:tabular-nums}
.ck-sub{font-size:12px;line-height:16px;color:var(--ck-ink3);margin-top:2px}
.bm{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:6px}
.bm li{display:grid;grid-template-columns:minmax(0,1fr) 34% 64px;align-items:center;gap:8px;font-size:12px;line-height:16px}
.bm-l{color:var(--ck-ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bm-b{height:8px;background:#F2F4F7;border-radius:4px;overflow:hidden}.bm-b i{display:block;height:100%;border-radius:4px;background:#98A2B3}
.bm-pos .bm-b i{background:var(--ck-ok)}.bm-neg .bm-b i{background:var(--ck-bad)}.bm-tot .bm-b i{background:var(--ck-brand)}
.bm-v{text-align:right;font-variant-numeric:tabular-nums;color:var(--ck-ink)}.bm-tot .bm-l,.bm-tot .bm-v{font-weight:600;color:var(--ck-ink)}
.bm-end{border-top:1px solid var(--ck-line);padding-top:6px}
.ck-link{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;margin-top:12px;min-height:44px;font:600 13px/18px "IBM Plex Sans",sans-serif;color:var(--ck-brand);cursor:pointer}
.ck-link svg{stroke:var(--ck-brand)}.ck-link:focus-visible{outline:2px solid #2563EB;outline-offset:2px;border-radius:4px}
.ck-cta{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.ck-btn{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:8px;font:600 14px/1 "IBM Plex Sans",sans-serif;cursor:pointer;transition:background .15s ease,border-color .15s ease;white-space:nowrap}
.ck-btn:focus-visible{outline:2px solid #2563EB;outline-offset:2px}
.ck-pri{background:var(--ck-brand,#1F4D3A);color:#fff}.ck-pri:hover{background:var(--ck-brand-h,#163A2B)}
.ck-sec{background:#fff;color:var(--ck-ink,#14181F);border:1px solid #CDD2D9}.ck-sec:hover{border-color:#98A2B3}
.ck-ghost{color:#4B5563;padding:0 8px}.ck-ghost:hover{color:#14181F}
.ck-tourrow{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-top:20px}.ck-tourrow .ck-note{margin:0}
.ck-hero{padding:8px 0 4px}
.ck-skel{display:grid;grid-template-columns:1fr;gap:8px;margin-top:24px}
.ck-skel i{display:block;height:64px;border-radius:12px;background:linear-gradient(90deg,#EEF0F3 0,#F6F7F9 40%,#EEF0F3 80%);background-size:200% 100%;animation:ck-sh 1.2s linear infinite}
@keyframes ck-sh{to{background-position:-200% 0}}
/* tour sheet: bottom sheet on phone, card bottom-right on larger screens; never covers the tab bar */
.ck-tour{position:fixed;left:8px;right:8px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:90;font-family:"IBM Plex Sans",sans-serif;animation:ck-in .2s ease-out}
.ck-tour[hidden]{display:none}
.ck-tour-in{background:#14181F;color:#fff;border-radius:14px;padding:16px;box-shadow:0 16px 40px rgba(16,24,40,.28)}
.ck-tour h2{font:600 17px/22px "IBM Plex Sans",sans-serif!important;margin:4px 0 6px!important;color:#fff!important}
.ck-tour p{font-size:14px;line-height:20px;margin:0;color:#D0D5DD}
.ck-step{font-size:12px;line-height:16px;color:#A9B1BD}
.ck-dots{display:flex;gap:4px;margin-bottom:10px}.ck-dots i{flex:1;height:3px;border-radius:2px;background:#3A414C}.ck-dots i.on{background:#6EE7B7}
.ck-tour-a{display:flex;justify-content:space-between;align-items:center;margin-top:14px;gap:8px}.ck-tour-a span{display:flex;gap:8px}
.ck-tour .ck-ghost{color:#D0D5DD}.ck-tour .ck-ghost:hover{color:#fff}.ck-tour .ck-sec{background:transparent;color:#fff;border-color:#4B5563}
.ck-tour .ck-pri{background:#fff;color:#14181F}.ck-tour .ck-pri:hover{background:#E4E7EC}
.ck-tour .ck-btn:focus-visible{outline-color:#93C5FD}
@keyframes ck-in{from{opacity:0;transform:translateY(8px)}}
@media (min-width:600px){.ck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ck-skel{grid-template-columns:repeat(2,1fr)}.ck-out{grid-template-columns:repeat(2,minmax(0,1fr))}.ck-ebitda{grid-row:span 2}
 .ck-tour{left:auto;right:24px;bottom:24px;width:380px}}
@media (min-width:1000px){.ck-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ck-skel{grid-template-columns:repeat(3,1fr)}.ck-out{grid-template-columns:1.4fr 1fr 1fr}.ck-ebitda{grid-row:auto}}
@media (prefers-reduced-motion:reduce){.ck-tile,.ck-btn,.ck-tour{transition:none;animation:none}.ck-skel i{animation:none}}
/* first screen belongs to the cockpit: the long-form intro stays below it */
#t-home>#ck+#touroffer,#t-home>#ck~#onb{margin-top:0}
#main:focus,#main h1:focus{outline:none}
.ck-kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--ck-line);border:1px solid var(--ck-line);border-radius:var(--ck-r);overflow:hidden;margin:16px 0 4px;box-shadow:var(--ck-sh)}
.ck-kpi>div{background:#fff;padding:10px 12px;min-width:0}
.ck-kpi span{display:block;font-size:11px;line-height:14px;font-weight:500;color:var(--ck-ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ck-kpi b{display:block;font:600 20px/26px "IBM Plex Sans",sans-serif;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--ck-ink)}
.ck-kpi em{display:block;font-style:normal;font-size:11px;line-height:14px;color:var(--ck-ink3)}
.ck-head .ck-sum{margin-bottom:2px}
@media (max-width:599px){.ck-h1{font-size:24px!important;line-height:30px!important}.ck-tile{min-height:56px;padding:10px 12px}.ck-d{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ck-lede{font-size:14px;line-height:20px;margin:8px 0 12px}}
body.ck-touring #coverage,body.ck-touring #cash,body.ck-touring #adj,body.ck-touring #t-export .card{scroll-margin-top:72px}
.ck-pend{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:1px;background:var(--ck-line);border:1px solid var(--ck-line);border-radius:var(--ck-r);overflow:hidden}
.ck-pend li{display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:center;background:#fff;padding:10px 12px}
.ck-pend .ck-ic{--c:#5F6B7A;--cb:#F2F4F7}.ck-pend b{display:block;font:500 13px/18px "IBM Plex Sans",sans-serif}.ck-pend b+span{display:block;font-size:12px;line-height:16px;color:var(--ck-ink3)}
@media (min-width:600px){.ck-pend{grid-template-columns:repeat(2,1fr)}}@media (min-width:1000px){.ck-pend{grid-template-columns:repeat(3,1fr)}}
.ck-sr{position:absolute;left:0;top:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.ck-kpi-sk b,.ck-kpi-sk span,.ck-kpi-sk em{background:#EEF0F3;border-radius:4px;color:transparent;margin:2px 0}
.ck-skel i{height:64px}@media (max-width:599px){.ck-skel i{height:56px}}
/* the older 8-step walkthrough offer stays available, painted below the cockpit */
/* the bottom tab bar replaces the side nav at <=1024px; hide the nav from first paint so it does not flash and shift the page when v9.js runs */
@media (max-width:1024px){nav#nav{display:none}}
/* the cockpit is always painted first, whatever order other modules insert their cards in (no flash, no layout shift) */
#t-home.on{display:flex;flex-direction:column}#t-home>*{min-width:0}#t-home>#ck{order:-2}#t-home>#touroffer{order:-1;margin:0 0 24px}
/* "Example data" banner must not show when no example is loaded (.banner display:flex was overriding [hidden]) */
.banner[hidden]{display:none!important}
.chip[hidden],#restored[hidden]{display:none!important}
#main>#touroffer{display:none}/* until dpolish.js moves it under the cockpit */
/* D2: live-check badge */
.ck-live{display:inline-flex;align-items:center;gap:4px;height:20px;padding:0 8px 0 6px;border-radius:10px;font:600 11px/1 "IBM Plex Sans",sans-serif;white-space:nowrap}
.ck-live svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ck-live.is-ok{background:#E8F5EE;color:#0F7A4F}.ck-live.is-warn{background:#FFF4E0;color:#975A00}.ck-live.is-pend{background:#F2F4F7;color:#5F6B7A}
