.ct-p .av.cpp-av-1 { background: #2563EB; }
.ct-p .av.cpp-av-2 { background: #6D28D9; }
.ct-p .av.cpp-av-3 { background: #059669; }
.ct-p .av.cpp-av-4 { background: #0D9488; }
.ct-p .av.cpp-av-5 { background: #D97706; }
.ct-p .av.cpp-av-6 { background: #E11D48; }
.ct-p .av.cpp-av-7 { background: #7C3AED; }
.ct-p .av.cpp-av-8 { background: #0F766E; }
.ct-p .av.cpp-av-9 { background: #64748B; }
.ct-p .av.cpp-av-10 { background: #1D4ED8; }
.ct-p .av.cpp-av-11 { background: #DB2777; }
.ct-p .av.cpp-av-12 { background: #047857; }
.cpp-wy-actions { display: flex; gap: 8px; }
.n-ring.cpp-ring-44 { --p: 44; }
.n-tribar .cpp-w44 { width: 44%; }
.n-tribar .cpp-w13 { width: 13%; }
.n-tribar .cpp-w43 { width: 43%; }
.section.cpp-tight { padding-top: 0; }

.cpp-life { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; counter-reset: none; }
.cpp-life-step { position: relative; display: flex; flex-direction: column; gap: 8px; padding: 22px 20px 20px; border-radius: 18px; background: #fff; border: 1px solid #E2E8F0; box-shadow: 0 1px 2px rgba(15, 23, 42, .04); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.cpp-life-step:hover { border-color: #DDD6FE; box-shadow: 0 22px 44px -30px rgba(109, 40, 217, .45); transform: translateY(-3px); }
.cpp-life-step small { position: absolute; top: 18px; right: 20px; font-size: 22px; font-weight: 800; color: #EDE9FE; font-variant-numeric: tabular-nums; }
.cpp-life-step h3 { margin: 4px 0 0; font-size: 18px; color: #0F172A; }
.cpp-life-step p { margin: 0; font-size: 14px; line-height: 1.55; color: #475569; flex: 1; }
.cpp-life-ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #F5F3FF; color: #6D28D9; }
.cpp-life-ico svg { width: 20px; height: 20px; }
.cpp-life-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 14px; font-weight: 700; color: #6D28D9; text-decoration: none; }
.cpp-life-link svg { width: 15px; height: 15px; transition: transform .18s ease; }
.cpp-life-link:hover svg { transform: translateX(4px); }
.cpp-life-link:focus-visible { outline: 3px solid rgba(109, 40, 217, .45); outline-offset: 3px; border-radius: 6px; }

.cpp-roles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.cpp-role { padding: 22px 20px; border-radius: 18px; background: #fff; border: 1px solid #E2E8F0; }
.cpp-role h3 { margin: 12px 0 10px; font-size: 18px; color: #0F172A; }
.cpp-role ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cpp-role li { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; line-height: 1.5; color: #475569; }
.cpp-role li svg { width: 16px; height: 16px; margin-top: 3px; color: #6D28D9; flex: none; }
.cpp-role-ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: #6D28D9; color: #fff; }
.cpp-role-ico svg { width: 20px; height: 20px; }

.cpd-section {
  --cp-primary: #6D28D9; --cp-hover: #5B21B6; --cp-soft: #F5F3FF; --cp-soft-2: #DDD6FE;
  --cp-bg: #F8FAFC; --cp-card: #FFFFFF; --cp-ink: #0F172A; --cp-text: #334155; --cp-muted: #64748B; --cp-line: #E2E8F0;
  --cp-ok: #047857; --cp-ok-bg: #ECFDF5; --cp-warn: #B45309; --cp-warn-bg: #FFFBEB; --cp-bad: #B91C1C; --cp-bad-bg: #FEF2F2;
  --cp-info: #1D4ED8; --cp-info-bg: #EFF6FF; --cp-violet: #6D28D9; --cp-violet-bg: #F5F3FF;
  --cp-radius: 16px; --cp-font: "Inter", "Manrope", system-ui, sans-serif;
}
.cpd { position: relative; margin-top: 8px; background: var(--cp-bg); border: 1px solid var(--cp-line); border-radius: 20px; box-shadow: 0 30px 80px -50px rgba(15, 23, 42, .45); font-family: var(--cp-font); color: var(--cp-text); font-size: 14px; line-height: 1.5; overflow: hidden; }
.cpd *, .cpd *::before, .cpd *::after { box-sizing: border-box; }
.cpd h3, .cpd h4 { margin: 0; color: var(--cp-ink); font-family: var(--cp-font); letter-spacing: -.01em; }
.cpd h3 { font-size: 20px; font-weight: 700; }
.cpd h4 { font-size: 15px; font-weight: 650; }
.cpd p { margin: 0; }
.cpd small { display: block; color: var(--cp-muted); font-size: 12.5px; }
.cpd svg { width: 16px; height: 16px; flex: none; }
.cpd :focus-visible { outline: 3px solid rgba(109, 40, 217, .45); outline-offset: 2px; }
.cpd .cpd-main:focus, .cpd [data-cpd-focus]:focus, #cpd-title:focus { outline: none; }
.cpd-mono { font-family: var(--font-mono, ui-monospace, monospace); font-size: 12px; }
.cpd-muted { display: flex; gap: 6px; align-items: flex-start; color: var(--cp-muted); font-size: 13px; }
.cpd-muted svg { margin-top: 2px; }
.cpd-loading { padding: 48px 24px; text-align: center; color: var(--cp-muted); }
.cpd-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.cpd-btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 40px; padding: 8px 14px; border-radius: 11px; border: 1px solid transparent; font: 600 13.5px/1.2 var(--cp-font); cursor: pointer; text-decoration: none; white-space: nowrap; transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.cpd-btn-sm { min-height: 34px; padding: 6px 11px; font-size: 13px; }
.cpd-btn-primary { background: var(--cp-primary); color: #fff; box-shadow: 0 6px 16px -10px rgba(109, 40, 217, .9); }
.cpd-btn-primary:hover { background: var(--cp-hover); }
.cpd-btn-soft { background: var(--cp-soft); color: var(--cp-hover); border-color: var(--cp-soft-2); }
.cpd-btn-soft:hover { background: #EDE9FE; }
.cpd-btn-ghost { background: var(--cp-card); color: var(--cp-ink); border-color: var(--cp-line); }
.cpd-btn-ghost:hover { background: #F1F5F9; border-color: #CBD5E1; }
.cpd-btn-danger { background: var(--cp-bad-bg); color: var(--cp-bad); border-color: #FECACA; }
.cpd-btn:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.cpd-btn:active:not(:disabled) { transform: translateY(1px); }
.cpd-row { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cpd-link { padding: 0; border: 0; background: none; font: inherit; color: var(--cp-primary); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }

.cpd-gate { position: absolute; inset: 0; z-index: 30; display: grid; place-items: center; background: rgba(82, 91, 117, .55); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
.cpd-gate[hidden] { display: none; }
.cpd.is-gated { max-height: 720px; }
.cpd.is-gated > :not(.cpd-gate) { filter: blur(2px); user-select: none; }
.cpd-gate-btn { display: inline-flex; align-items: center; gap: 10px; padding: 14px 28px; border: 1px solid var(--cp-line); border-radius: 10px; background: var(--cp-card); color: var(--cp-ink); font: 600 18px var(--cp-font); text-decoration: none; box-shadow: 0 10px 30px -12px rgba(20, 24, 36, .45); transition: transform .18s ease, box-shadow .18s ease, color .18s ease; }
.cpd-gate-btn:hover { color: var(--cp-primary); transform: translateY(-1px); box-shadow: 0 14px 36px -12px rgba(20, 24, 36, .55); }
.cpd-gate-btn:focus-visible { outline: 3px solid rgba(255, 255, 255, .8); outline-offset: 3px; }
.cpd-gate-btn svg { width: 16px; height: 16px; }

body.cpd-live .sl-nav, body.cpd-live .sl-mobile, body.cpd-live .sl-foot, body.cpd-live #global-nav, body.cpd-live #global-footer, body.cpd-live .sl-annc { display: none; }
.cpd-page { --cpd-frame: 4px; --cpd-gap: 12px; --cpd-inset: calc(var(--cpd-frame) + var(--cpd-gap)); padding: var(--cpd-inset); background: #F8FAFC; }
.cpd-page::after { content: ""; position: fixed; inset: 0; z-index: 1000; border: var(--cpd-frame) solid #6D28D9; border-image: linear-gradient(135deg, #6D28D9, #5B21B6 50%, #A78BFA) 1; box-shadow: inset 0 0 0 var(--cpd-gap) #F8FAFC; pointer-events: none; }
body.cpd-live .cpd-section { padding: 0; background: none; }
body.cpd-live .cpd-section > .container { max-width: none; width: 100%; padding: 0; }
body.cpd-live .cpd { margin: var(--cpd-inset) 0 0; border-radius: 12px; box-shadow: none; overflow: visible; }
body.cpd-live .cpd-bar { display: none; }
body.cpd-live .cpd-time { position: sticky; top: calc(var(--cpd-inset) + 64px); z-index: 40; border-radius: 12px 12px 0 0; }
body.cpd-live .cpd-section .cps-top { border-radius: 12px; }
.cps { --cs-primary: #6D28D9; --cs-hover: #5B21B6; --cs-soft: #F5F3FF; --cs-soft-2: #DDD6FE; --cs-ink: #0F172A; --cs-text: #334155; --cs-muted: #64748B; --cs-line: #E2E8F0; --cs-card: #FFFFFF; --cs-bg: #F8FAFC; --cs-navy: #081220;
  background: var(--cs-bg); font-family: "Inter", system-ui, sans-serif; color: var(--cs-text); font-size: 15px; line-height: 1.5; }
.cps *, .cps *::before, .cps *::after { box-sizing: border-box; }
.cps svg { width: 16px; height: 16px; flex: none; }
.cps h1, .cps h2 { margin: 0; font-family: inherit; letter-spacing: -.02em; }
.cps p { margin: 0; }
.cps :focus-visible { outline: 3px solid rgba(109, 40, 217, .5); outline-offset: 2px; }
.cps-wrap { width: min(1600px, 100% - 64px); margin: 0 auto; }
.cps-btn { position: relative; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 38px; padding: 8px 18px; border: 1px solid transparent; border-radius: 8px; font-family: inherit; font-size: 13.5px; font-weight: 700; line-height: 1.2; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; }
.cps-btn::after { content: ""; position: absolute; top: 0; bottom: 0; left: -60%; width: 40%; background: linear-gradient(100deg, transparent, rgba(255, 255, 255, .45), transparent); transform: skewX(-20deg); transition: left .6s ease; pointer-events: none; }
.cps-btn:hover::after { left: 130%; }
.cps-btn-lg { min-height: 48px; padding: 12px 22px; border-radius: 10px; font-size: 15px; }
.cps-btn-light { background: #fff; color: var(--cs-navy); box-shadow: 0 14px 30px -16px rgba(0, 0, 0, .6); }
.cps-btn-light:hover { color: var(--cs-primary); transform: translateY(-1px); }
.cps-btn-light::after, .cps-btn-ghost::after { background: linear-gradient(100deg, transparent, rgba(109, 40, 217, .18), transparent); }
.cps-btn-outline { background: rgba(255, 255, 255, .06); color: #fff; border-color: rgba(255, 255, 255, .32); }
.cps-btn-outline:hover { background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .6); }
.cps-btn-ghost { background: rgba(255, 255, 255, .04); color: #fff; border-color: rgba(255, 255, 255, .28); }
.cps-btn-ghost:hover { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .6); }

.cps-top { position: sticky; top: 0; z-index: 50; background: linear-gradient(90deg, #081220 0%, #2E1065 60%, #4C1D95 100%); border-bottom: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 10px 24px -18px rgba(46, 16, 101, .8); }
.cpd-page .cps-top { top: var(--cpd-inset); }
.cps-top-row { display: flex; align-items: center; gap: 24px; height: 64px; }
.cps-brand { display: inline-flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; }
.cps-brand b { display: block; font-size: 15px; font-weight: 800; line-height: 1.2; }
.cps-brand small { display: block; font-size: 12px; font-weight: 600; color: #C4B5FD; }
.cps-logo { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(135deg, #8B5CF6, #5B21B6); color: #fff; box-shadow: 0 8px 18px -10px rgba(109, 40, 217, .9); }
.cps-logo svg { width: 18px; height: 18px; }
.cps-top-links { display: flex; gap: 4px; margin: 0 auto; }
.cps-top-links a { padding: 8px 14px; border-radius: 8px; color: #DDD6FE; font-size: 14px; font-weight: 700; text-decoration: none; }
.cps-top-links a:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.cps-top-actions { display: flex; align-items: center; gap: 8px; }
.cps-top :focus-visible { outline-color: rgba(255, 255, 255, .8); }
.cps-roles { display: inline-flex; gap: 2px; padding: 3px; border-radius: 8px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .2); }
.cps-role-btn { display: inline-flex; align-items: center; gap: 7px; min-height: 30px; padding: 5px 12px; border: 0; border-radius: 6px; background: none; color: #DDD6FE; font: 700 13.5px "Inter", system-ui, sans-serif; cursor: pointer; transition: background .18s ease, color .18s ease; }
.cps-role-btn svg { width: 15px; height: 15px; }
.cps-role-btn:hover { background: rgba(255, 255, 255, .1); color: #fff; }
.cps-role-btn[aria-pressed="true"] { background: #fff; color: var(--cs-primary); }

.cps-hero { position: relative; overflow: hidden; padding: 44px 0 40px; color: #fff; background: radial-gradient(900px 480px at 85% 10%, rgba(139, 92, 246, .55), transparent 60%), radial-gradient(700px 420px at 0% 100%, rgba(109, 40, 217, .45), transparent 60%), linear-gradient(160deg, #081220 0%, #2E1065 55%, #4C1D95 100%); }
.cps-hero::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .14) 1px, transparent 1px); background-size: 22px 22px; mask-image: linear-gradient(180deg, rgba(0, 0, 0, .7), transparent 85%); -webkit-mask-image: linear-gradient(180deg, rgba(0, 0, 0, .7), transparent 85%); pointer-events: none; animation: cps-dots 40s linear infinite; }
@keyframes cps-dots { to { background-position: 220px 220px; } }
.cps-hero-orbs { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.cps-hero-orbs span { position: absolute; border-radius: 50%; filter: blur(60px); opacity: .55; animation: cps-drift 18s ease-in-out infinite alternate; }
.cps-hero-orbs span:nth-child(1) { left: -80px; top: 40%; width: 420px; height: 420px; background: #6D28D9; }
.cps-hero-orbs span:nth-child(2) { right: 8%; top: -120px; width: 360px; height: 360px; background: #8B5CF6; animation-duration: 22s; animation-delay: -6s; }
.cps-hero-orbs span:nth-child(3) { left: 45%; bottom: -140px; width: 260px; height: 260px; background: #22D3EE; opacity: .3; animation-duration: 26s; animation-delay: -12s; }
@keyframes cps-drift { 0% { translate: 0 0; scale: 1; } 50% { translate: 60px -40px; scale: 1.12; } 100% { translate: -40px 30px; scale: .95; } }
.cps-hero-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 48px; align-items: center; }
.cps-hero h1 { margin: 0 0 12px; font-size: clamp(34px, 4.6vw, 56px); font-weight: 800; line-height: 1.05; color: #fff; }
.cps-hero h1 span { background-image: linear-gradient(90deg, #C4B5FD 0%, #C4B5FD 30%, #ffffff 50%, #C4B5FD 70%, #C4B5FD 100%); background-size: 250% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; animation: cps-shimmer 6s ease-in-out infinite; }
@keyframes cps-shimmer { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
.cps-hero-copy > p { max-width: 540px; font-size: 17px; color: #DDD6FE; }
.cps-hero-copy > * { animation: cps-rise .8s cubic-bezier(.2, .8, .2, 1) both; }
.cps-hero-copy > :nth-child(2) { animation-delay: .15s; }
.cps-hero-copy > :nth-child(3) { animation-delay: .28s; }
.cps-hero-copy > :nth-child(4) { animation-delay: .4s; }
@keyframes cps-rise { from { opacity: 0; translate: 0 26px; filter: blur(6px); } to { opacity: 1; translate: 0 0; filter: blur(0); } }
.cps-hero-ctas { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }
.cps-stats { list-style: none; margin: 26px 0 0; padding: 18px 0 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; border-top: 1px solid rgba(255, 255, 255, .14); }
.cps-stats b { display: block; font-size: 30px; font-weight: 800; line-height: 1.1; color: #fff; font-variant-numeric: tabular-nums; }
.cps-stats span { font-size: 13px; font-weight: 600; color: #C4B5FD; }

.cps-cert { position: relative; display: grid; justify-items: center; gap: 4px; padding: 26px 18px 18px; border-radius: 6px; background: linear-gradient(135deg, #FFFFFF, #F8F5FF); border: 2px solid #6D28D9; outline: 1px solid #6D28D9; outline-offset: -7px; color: #0F172A; text-align: center; overflow: hidden; }
.cps-cert-tag { position: absolute; top: 10px; right: 10px; padding: 2px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; }
.cps-cert-tag.is-ok { background: #ECFDF5; color: #047857; }
.cps-cert-tag.is-warn { background: #FFFBEB; color: #B45309; }
.cps-cert-tag.is-info { background: #EFF6FF; color: #1D4ED8; }
.cps-cert-seal { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #C4B5FD, #6D28D9 70%); color: #fff; box-shadow: 0 0 0 3px #EDE9FE, 0 0 0 4px #6D28D9; }
.cps .cps-cert-seal svg { width: 16px; height: 16px; }
.cps-cert-org { margin-top: 4px; font-size: 8.5px; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; color: #6D28D9; }
.cps-cert-title { font-family: Georgia, "Times New Roman", serif; font-size: 14px; font-weight: 700; }
.cps-cert-lead { font-size: 9px; font-style: italic; color: #6B7280; }
.cps-cert-name { font-family: Georgia, "Times New Roman", serif; font-style: italic; font-size: 19px; color: #5B21B6; }
.cps-cert-rule { width: 60%; height: 1px; background: linear-gradient(90deg, transparent, #C4B5FD, transparent); }
.cps-cert-course { font-size: 11px; font-weight: 700; color: #111827; }
.cps-cert-id { font-family: var(--font-mono, ui-monospace, monospace); font-size: 9.5px; color: #64748B; }

.cps-hero-art { position: relative; height: 300px; user-select: none; -webkit-user-select: none; cursor: grab; touch-action: pan-y; transform: translate(var(--cps-gx, 0px), var(--cps-gy, 0px)); transition: transform .6s cubic-bezier(.22, .9, .25, 1); }
.cps-hero-art.is-dragging { cursor: grabbing; transition: none; }
.cps-hero-art.is-dragging .cps-fan .cps-cert, .cps-hero-art.is-dragging .cps-chip { animation-play-state: paused; }
.cps-fan { position: absolute; width: 56%; padding: 0; border: 0; border-radius: 8px; background: none; font: inherit; cursor: pointer; animation: cps-deal 1s cubic-bezier(.2, .9, .25, 1.15) both; transition: left .75s cubic-bezier(.22, .9, .25, 1), top .75s cubic-bezier(.22, .9, .25, 1), transform .75s cubic-bezier(.22, .9, .25, 1), filter .5s ease; }
.cps-fan .cps-cert { box-shadow: 0 34px 60px -30px rgba(0, 0, 0, .75); animation: cps-float 6s ease-in-out infinite; }
.cps-fan:focus-visible { outline: 3px solid rgba(255, 255, 255, .8); outline-offset: 4px; }
.cps-fan[data-cps-pos="left"] { left: 0; top: 70px; z-index: 1; transform: translate(var(--cps-dx, 0px), var(--cps-dy, 0px)) rotate(-9deg); filter: brightness(.92); }
.cps-fan[data-cps-pos="right"] { left: 44%; top: 48px; z-index: 1; transform: translate(var(--cps-dx, 0px), var(--cps-dy, 0px)) rotate(8deg); filter: brightness(.92); }
.cps-fan[data-cps-pos="center"] { left: 22%; top: 0; z-index: 3; transform: translate(var(--cps-dx, 0px), var(--cps-dy, 0px)) translateY(14px); }
.cps-fan[data-cps-pos="center"] .cps-cert { box-shadow: 0 40px 70px -28px rgba(0, 0, 0, .8), 0 0 0 1px rgba(255, 255, 255, .08); }
.cps-fan[data-cps-pos="center"] .cps-cert::after { content: ""; position: absolute; inset: 0; background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, .7) 50%, transparent 65%); background-size: 250% 100%; background-position: 150% 0; mix-blend-mode: soft-light; animation: cps-gloss 5s ease-in-out 1.4s infinite; pointer-events: none; }
@keyframes cps-gloss { 0%, 60% { background-position: 150% 0; } 100% { background-position: -50% 0; } }
.cps-hero-art:hover .cps-fan[data-cps-pos="left"] { transform: translate(var(--cps-dx, 0px), var(--cps-dy, 0px)) rotate(-12deg) translateX(-10px); }
.cps-hero-art:hover .cps-fan[data-cps-pos="right"] { transform: translate(var(--cps-dx, 0px), var(--cps-dy, 0px)) rotate(11deg) translateX(10px); }
.cps-fan[data-cps-pos="left"]:hover, .cps-fan[data-cps-pos="right"]:hover { filter: brightness(1.05); }
.cps-fan.is-rising { z-index: 4; }
.cps-fan { cursor: grab; -webkit-user-drag: none; }
.cps-fan.is-dragging { cursor: grabbing; transition: filter .2s ease; filter: brightness(1.05); }
.cps-fan.is-dragging .cps-cert { animation-play-state: paused; box-shadow: 0 50px 80px -30px rgba(0, 0, 0, .85); }
.cps-fan.is-bump .cps-cert { animation: cps-bump .55s cubic-bezier(.3, 1.6, .5, 1); }
@keyframes cps-bump { 40% { scale: 1.06; } }
.cps-fan-left { animation-delay: .35s; --cps-from: -120px 60px; }
.cps-fan-right { animation-delay: .5s; --cps-from: 120px 60px; }
.cps-fan-center { animation-delay: .2s; --cps-from: 0 90px; }
.cps-fan-left .cps-cert { animation-delay: -2s; animation-duration: 7s; }
.cps-fan-right .cps-cert { animation-delay: -4s; animation-duration: 8s; }
@keyframes cps-deal { from { opacity: 0; translate: var(--cps-from, 0 80px); } to { opacity: 1; translate: 0 0; } }
@keyframes cps-float { 0%, 100% { translate: 0 0; } 50% { translate: 0 -12px; } }
.cps-chip { position: absolute; z-index: 5; left: 6%; bottom: 0; display: flex; align-items: center; gap: 10px; padding: 10px 16px 10px 10px; border-radius: 14px; background: #fff; color: var(--cs-ink); box-shadow: 0 24px 40px -20px rgba(0, 0, 0, .55); animation: cps-pop .7s cubic-bezier(.2, 1.4, .4, 1) 1.1s both, cps-float 5s ease-in-out 2s infinite; }
.cps-chip b { display: block; font-size: 14px; font-weight: 800; color: #047857; }
.cps-chip small { display: block; font-size: 12px; color: var(--cs-muted); }
.cps-chip-ico { position: relative; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: #ECFDF5; color: #047857; }
.cps-chip-ico::after { content: ""; position: absolute; inset: 0; border: 2px solid #10B981; border-radius: inherit; opacity: 0; animation: cps-ring 2.4s ease-out 1.8s infinite; }
@keyframes cps-pop { from { opacity: 0; scale: .6; translate: 0 20px; } to { opacity: 1; scale: 1; translate: 0 0; } }
@keyframes cps-ring { 0% { opacity: .8; scale: 1; } 100% { opacity: 0; scale: 1.7; } }
.cps-spark { position: absolute; z-index: 4; width: 18px; height: 18px; background: #fff; clip-path: polygon(50% 0, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0 50%, 39% 39%); opacity: 0; filter: drop-shadow(0 0 6px rgba(196, 181, 253, .9)); animation: cps-twinkle 3.2s ease-in-out infinite; }
.cps-spark-1 { left: 14%; top: 4%; animation-delay: 1.2s; }
.cps-spark-2 { right: 6%; top: 10%; width: 12px; height: 12px; background: #C4B5FD; animation-delay: 2s; }
.cps-spark-3 { right: 22%; bottom: 14%; width: 14px; height: 14px; background: #C4B5FD; animation-delay: 2.7s; }
.cps-spark-4 { left: 2%; bottom: 34%; width: 10px; height: 10px; animation-delay: 3.4s; }
@keyframes cps-twinkle { 0%, 100% { opacity: 0; scale: .3; rotate: 0deg; } 50% { opacity: 1; scale: 1; rotate: 90deg; } }

.cps-section { padding: 36px 0 0; }
.cps-section-alt { margin-top: 36px; padding: 36px 0; background: #fff; border-block: 1px solid var(--cs-line); }
.cps-section-alt + .cps-section { padding-top: 36px; }
.cps-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 12px 24px; margin-bottom: 18px; }
.cps-eyebrow { display: inline-block; margin-bottom: 8px; font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--cs-primary); }
.cps-head h2 { font-size: clamp(26px, 3vw, 34px); font-weight: 800; line-height: 1.15; color: var(--cs-ink); }
.cps-head p { max-width: 520px; font-size: 14.5px; color: var(--cs-muted); text-align: right; }
.cps-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.cps-grid-courses { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 18px; }
.cps-grid-life { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.cps-grid-views { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.cps-card, .cps-view, .cps-step { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--cs-line); border-radius: 14px; background: var(--cs-card); color: inherit; text-decoration: none; box-shadow: 0 1px 2px rgba(20, 24, 36, .04); transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.cps-card:hover, .cps-view:hover, .cps-step:hover { border-color: var(--cs-soft-2); box-shadow: 0 26px 50px -30px rgba(20, 24, 60, .45); transform: translateY(-4px); }
.cps-shot { position: relative; display: block; padding: 22px 18px; overflow: hidden; background: radial-gradient(120% 90% at 50% 0%, #fff 0%, #F3EEFF 100%); border-bottom: 1px solid var(--cs-line); }
.cps-shot::before { content: ""; position: absolute; inset: 0; background-image: radial-gradient(rgba(109, 40, 217, .12) 1px, transparent 1px); background-size: 16px 16px; pointer-events: none; }
.cps-course { position: relative; display: grid; gap: 10px; padding: 16px; border-radius: 12px; background: #fff; border: 1px solid var(--cs-line); box-shadow: 0 18px 30px -24px rgba(20, 24, 60, .55); transition: transform .3s ease; pointer-events: none; }
.cps-card:hover .cps-course { transform: scale(1.03); }
.cps-course-head { display: flex; align-items: center; gap: 10px; min-height: 44px; }
.cps-course-head b { display: block; font-size: 14px; font-weight: 800; line-height: 1.25; color: var(--cs-ink); }
.cps-course-head small { display: block; font-size: 11.5px; color: var(--cs-muted); }
.cps-course-ico { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--cs-soft); color: var(--cs-primary); flex: none; }
.cps-course-rate b { font-size: 28px; font-weight: 800; color: var(--cs-ink); font-variant-numeric: tabular-nums; }
.cps-course-rate small { margin-left: 6px; font-size: 12px; font-weight: 600; color: var(--cs-muted); }
.cps .cps-course-bar { display: block; width: 100%; height: 8px; border-radius: 999px; overflow: hidden; background: #E2E8F0; }
.cps-course-bar rect { fill: var(--cs-primary); }
.cps-course-meta { font-size: 11.5px; color: var(--cs-muted); }
.cps-shot-cta { position: absolute; left: 50%; bottom: 14px; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; border-radius: 999px; background: var(--cs-ink); color: #fff; font-size: 12.5px; font-weight: 700; white-space: nowrap; opacity: 0; transform: translate(-50%, 8px); transition: opacity .2s ease, transform .2s ease; }
.cps-card:hover .cps-shot-cta, .cps-card:focus-visible .cps-shot-cta { opacity: 1; transform: translate(-50%, 0); }
.cps-card.is-opening .cps-course { opacity: 0; }
.cps-body { display: grid; flex: 1; align-content: start; gap: 8px; padding: 18px 20px 20px; }
.cps-body b, .cps-step b { display: flex; align-items: center; gap: 8px; font-size: 17px; font-weight: 800; color: var(--cs-ink); }
.cps-body small, .cps-step small { display: block; font-size: 14px; line-height: 1.55; color: var(--cs-text); }
.cps-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.cps-tags span { padding: 3px 9px; border-radius: 999px; background: var(--cs-soft); color: var(--cs-hover); font-size: 11.5px; font-weight: 700; }
.cps-tags .is-ok { background: #ECFDF5; color: #047857; }
.cps-tags .is-bad { background: #FEF2F2; color: #B91C1C; }
.cps-link { display: inline-flex; align-items: center; gap: 6px; margin-top: 6px; font-size: 14px; font-weight: 800; color: var(--cs-primary); }
.cps-link svg { width: 15px; height: 15px; transition: transform .18s ease; }
.cps-card:hover .cps-link svg, .cps-view:hover .cps-link svg, .cps-step:hover .cps-link svg { transform: translateX(4px); }
.cps-step { gap: 8px; padding: 20px; }
.cps-step-top { display: flex; align-items: center; justify-content: space-between; }
.cps-step-ico { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 12px; background: var(--cs-soft); color: var(--cs-primary); }
.cps-step-ico svg { width: 20px; height: 20px; }
.cps-step-num { font-size: 26px; font-weight: 800; color: #EDE9FE; font-variant-numeric: tabular-nums; }
.cps-step .cps-link { margin-top: auto; padding-top: 4px; }
.cps-view { flex-direction: row; align-items: flex-start; padding: 22px 0 0 22px; }
.cps-view::after { content: ""; position: absolute; inset: 0 0 auto; height: 3px; background: var(--cps-tone); opacity: 0; transition: opacity .2s ease; }
.cps-view:hover::after { opacity: 1; }
.cps-view .cps-body { padding-top: 0; }
.cps-view-ico { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 12px; background: var(--cps-tone-bg); color: var(--cps-tone); flex: none; }
.cps-view-ico svg { width: 22px; height: 22px; }
.cps-view.is-admin { --cps-tone: #6D28D9; --cps-tone-bg: #F5F3FF; }
.cps-view.is-employee { --cps-tone: #047857; --cps-tone-bg: #ECFDF5; }
.cps-view.is-manager { --cps-tone: #B45309; --cps-tone-bg: #FFFBEB; }
.cps-role { justify-self: start; padding: 2px 8px; border-radius: 4px; background: var(--cps-tone-bg); color: var(--cps-tone); font-size: 10.5px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.cps-section-cta { padding: 36px 0 32px; }
.cps-band { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 24px; padding: 40px 44px; border-radius: 20px; color: #fff; background: radial-gradient(600px 300px at 100% 0%, rgba(139, 92, 246, .6), transparent 60%), linear-gradient(135deg, #081220, #4C1D95); box-shadow: 0 30px 60px -40px rgba(46, 16, 101, .8); }
.cps-band h2 { font-size: clamp(24px, 2.6vw, 30px); font-weight: 800; color: #fff; }
.cps-band p { max-width: 520px; margin-top: 6px; color: #DDD6FE; }
.cps-band-ctas { display: flex; flex-wrap: wrap; gap: 12px; }
.cps-note { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 24px !important; font-size: 12.5px; color: var(--cs-muted); }

.cps-zoom-veil { position: fixed; inset: 0; z-index: 2000; background: rgba(46, 16, 101, 0); transition: background .55s ease, backdrop-filter .55s ease, -webkit-backdrop-filter .55s ease; }
.cps-zoom-veil.is-on { background: rgba(46, 16, 101, .62); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.cps-zoom-card { position: fixed; z-index: 2001; margin: 0; transform-origin: center center; transition: transform .65s cubic-bezier(.2, .85, .25, 1); box-shadow: 0 50px 90px -30px rgba(0, 0, 0, .7); pointer-events: none; }
.cps-zoom-label { position: fixed; z-index: 2002; left: 50%; bottom: 12vh; display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; border-radius: 999px; background: #fff; color: #0F172A; font: 700 14px "Inter", system-ui, sans-serif; box-shadow: 0 20px 40px -20px rgba(0, 0, 0, .6); opacity: 0; transform: translate(-50%, 16px); transition: opacity .4s ease .2s, transform .4s ease .2s; }
.cps-zoom-label.is-on { opacity: 1; transform: translate(-50%, 0); }
.cps-zoom-spin { width: 16px; height: 16px; border-radius: 50%; border: 2px solid #EDE9FE; border-top-color: #6D28D9; animation: cps-spin .7s linear infinite; }
@keyframes cps-spin { to { rotate: 360deg; } }
.cpd-arrive .cpd-main > * { animation: cpd-arrive .6s cubic-bezier(.2, .85, .25, 1) both; }
@keyframes cpd-arrive { from { opacity: 0; translate: 0 24px; filter: blur(4px); } to { opacity: 1; translate: 0 0; filter: blur(0); } }

@media (max-width: 1400px) {
  .cps-grid-courses { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cps-top-row:has([data-cpd-controls]) .cps-top-links { display: none; }
  .cps-top-row:has([data-cpd-controls]) .cps-top-actions { margin-left: auto; }
}
@media (max-width: 1080px) {
  .cps-grid, .cps-grid-courses, .cps-grid-life, .cps-grid-views { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cps-hero { padding: 36px 0; }
  .cps-hero-grid { grid-template-columns: 1fr; gap: 24px; }
  .cps-hero-art { width: 100%; max-width: 560px; height: 320px; margin: 0 auto; }
  .cps-top-links { display: none; }
  .cps-top-actions { margin-left: auto; }
  .cps-top-actions[data-cpd-controls] .cps-btn span, .cps-role-btn span { display: none; }
  .cps-top-actions[data-cpd-controls] .cps-btn { padding: 8px 11px; }
  .cps-role-btn { padding: 6px 10px; }
}
@media (max-width: 760px) {
  .cps-wrap { width: calc(100% - 32px); }
  .cps-grid, .cps-grid-courses, .cps-grid-life, .cps-grid-views { grid-template-columns: 1fr; }
  .cps-top-row { flex-wrap: wrap; gap: 10px 12px; height: auto; min-height: 64px; padding: 10px 0; }
  .cps-top-actions[data-cpd-controls] { width: 100%; margin-left: 0; }
  .cps-top-actions[data-cpd-controls] .cps-roles { margin-right: auto; }
  .cps-top-actions .cps-btn span, .cps-brand small { display: none; }
  .cps-top-actions .cps-btn { padding: 8px 11px; }
  .cps-hero { padding: 28px 0 32px; }
  .cps-hero-ctas .cps-btn, .cps-band-ctas .cps-btn { flex: 1 1 100%; }
  .cps-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 12px; }
  .cps-hero-art { height: 260px; }
  .cps-fan { width: 64%; }
  .cps-fan[data-cps-pos="right"] { left: 36%; }
  .cps-fan[data-cps-pos="center"] { left: 18%; }
  .cps-chip { left: 0; }
  .cps-head p { text-align: left; }
  .cps-section { padding-top: 28px; }
  .cps-section-alt { margin-top: 28px; padding: 28px 0; }
  .cps-band { padding: 28px 22px; }
  .cps-shot-cta { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .cps *, .cps *::before, .cps *::after, .cpd-arrive .cpd-main > * { animation: none !important; transition: none !important; }
}

.cpd-bar { display: flex; align-items: center; gap: 16px; padding: 14px 18px; background: var(--cp-card); border-bottom: 1px solid var(--cp-line); }
.cpd-brand { display: flex; align-items: center; gap: 10px; margin-right: auto; }
.cpd-bar .cpd-btn { flex: none; white-space: nowrap; }
.cpd-brand > div { min-width: 0; }
.cpd-brand b { color: var(--cp-ink); font-size: 15px; }
.cpd-logo { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 12px; background: linear-gradient(135deg, #6D28D9, #5B21B6); color: #fff; }
.cpd-time { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 10px 18px; background: var(--cp-soft); border-bottom: 1px solid var(--cp-soft-2); }
.cpd-clock { display: inline-flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-right: auto; font-size: 13px; }
.cpd-clock svg { color: var(--cp-primary); }
.cpd-clock b { padding: 3px 9px; border-radius: 8px; background: var(--cp-card); border: 1px solid var(--cp-soft-2); color: var(--cp-ink); font-size: 15px; }
.cpd-clock em { font-style: normal; color: var(--cp-muted); font-size: 12.5px; }
.cpd-time-btns { display: flex; flex-wrap: wrap; gap: 6px; }
.cpd-time .cpd-btn { min-height: 34px; padding: 6px 11px; font-size: 13px; }

.cpd-body { display: grid; grid-template-columns: 228px minmax(0, 1fr); min-height: 660px; }
.cpd-nav { padding: 14px 12px; background: var(--cp-card); border-right: 1px solid var(--cp-line); }
.cpd-nav ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; }
.cpd-nav-btn { display: grid; grid-template-columns: 20px minmax(0, 1fr); column-gap: 10px; align-items: center; width: 100%; padding: 9px 11px; border: 0; border-radius: 12px; background: none; color: var(--cp-text); font: 600 14px var(--cp-font); text-align: left; cursor: pointer; transition: background .18s ease, color .18s ease; }
.cpd-nav-btn svg { grid-row: span 2; width: 18px; height: 18px; }
.cpd-nav-btn small { font-size: 11px; font-weight: 600; color: var(--cp-muted); }
.cpd-nav-btn:hover { background: #F1F5F9; }
.cpd-nav-btn[aria-current="page"] { background: var(--cp-soft); color: var(--cp-hover); }
.cpd-nav-btn[aria-current="page"] small { color: var(--cp-primary); }
.cpd-main { display: grid; gap: 18px; align-content: start; min-width: 0; padding: 22px 24px 26px; outline: none; }
.cpd-note { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 18px; border-top: 1px solid var(--cp-line); background: var(--cp-card); color: var(--cp-muted); font-size: 12.5px; text-align: center; }

.cpd-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
.cpd-head p { margin-top: 4px; max-width: 640px; color: var(--cp-muted); }
.cpd-head-side { display: flex; gap: 10px; flex-wrap: wrap; align-items: flex-end; }
.cpd-card { padding: 16px 18px; border-radius: var(--cp-radius); background: var(--cp-card); border: 1px solid var(--cp-line); min-width: 0; }
.cpd-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.cpd-card-head span { color: var(--cp-muted); font-size: 12.5px; }
.cpd-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.cpd-grid-wide { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); }
.cpd-span { grid-column: 1 / -1; }

.cpd-field { display: grid; gap: 5px; min-width: 0; }
.cpd-field > span { font-size: 12.5px; font-weight: 650; color: var(--cp-ink); }
.cpd-field select, .cpd-field input { width: 100%; min-height: 40px; padding: 8px 11px; border: 1px solid #CBD5E1; border-radius: 10px; background: var(--cp-card); color: var(--cp-ink); font: 14px var(--cp-font); }
.cpd-field select:focus, .cpd-field input:focus { outline: none; border-color: var(--cp-primary); box-shadow: 0 0 0 3px rgba(109, 40, 217, .2); }
.cpd-filters { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.cpd-filters .cpd-field { flex: 1 1 160px; }
.cpd-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cpd-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 6px 4px 10px; border-radius: 999px; background: var(--cp-soft); color: var(--cp-hover); font-size: 12.5px; font-weight: 600; border: 1px solid var(--cp-soft-2); cursor: pointer; font-family: inherit; }
.cpd-chip svg { width: 13px; height: 13px; }
.cpd-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 12px; background: #F1F5F9; }
.cpd-seg label { position: relative; }
.cpd-seg input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.cpd-seg span { display: inline-flex; align-items: center; min-height: 34px; padding: 6px 12px; border-radius: 9px; font-size: 13px; font-weight: 600; color: var(--cp-text); }
.cpd-seg input:checked + span { background: var(--cp-card); color: var(--cp-primary); box-shadow: 0 1px 3px rgba(15, 23, 42, .12); }
.cpd-seg input:focus-visible + span { outline: 3px solid rgba(109, 40, 217, .45); }

.cpd-tag { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 650; white-space: nowrap; background: #F1F5F9; color: var(--cp-muted); }
.cpd-tag::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.cpd-tag-ok { background: var(--cp-ok-bg); color: var(--cp-ok); }
.cpd-tag-warn { background: var(--cp-warn-bg); color: var(--cp-warn); }
.cpd-tag-bad { background: var(--cp-bad-bg); color: var(--cp-bad); }
.cpd-tag-info { background: var(--cp-info-bg); color: var(--cp-info); }
.cpd-tag-violet { background: var(--cp-violet-bg); color: var(--cp-violet); }

.cpd-kpis { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
.cpd-kpi { display: grid; gap: 2px; padding: 14px; border-radius: var(--cp-radius); border: 1px solid var(--cp-line); background: var(--cp-card); text-align: left; font: inherit; color: inherit; cursor: pointer; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.cpd-kpi:hover { border-color: var(--cp-soft-2); transform: translateY(-2px); box-shadow: 0 14px 30px -22px rgba(109, 40, 217, .5); }
.cpd-kpi[aria-pressed="true"] { border-color: var(--cp-primary); box-shadow: 0 0 0 3px rgba(109, 40, 217, .15); }
.cpd-kpi svg { width: 18px; height: 18px; color: var(--cp-primary); }
.cpd-kpi b { font-size: 26px; font-weight: 800; color: var(--cp-ink); line-height: 1.15; font-variant-numeric: tabular-nums; }
.cpd-kpi span { font-size: 12.5px; font-weight: 600; color: var(--cp-muted); }
.cpd-kpi.is-ok svg, .cpd-kpi.is-ok b { color: var(--cp-ok); }
.cpd-kpi.is-warn svg, .cpd-kpi.is-warn b { color: var(--cp-warn); }
.cpd-kpi.is-bad svg, .cpd-kpi.is-bad b { color: var(--cp-bad); }

.cpd .cpd-bar-svg { display: block; width: 100%; height: 8px; border-radius: 999px; background: #E2E8F0; overflow: hidden; }
.cpd-bar-svg rect { fill: var(--cp-primary); }
.cpd-depts { display: grid; gap: 6px; }
.cpd-dept { display: grid; grid-template-columns: minmax(0, 150px) minmax(0, 1fr) 48px; gap: 6px 12px; align-items: center; width: 100%; padding: 9px 10px; border: 1px solid transparent; border-radius: 12px; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; }
.cpd-dept:hover { background: #F8FAFC; border-color: var(--cp-line); }
.cpd-dept[aria-pressed="true"] { background: var(--cp-soft); border-color: var(--cp-soft-2); }
.cpd-dept b { color: var(--cp-ink); font-size: 13.5px; }
.cpd-dept em { font-style: normal; font-weight: 700; color: var(--cp-ink); text-align: right; font-variant-numeric: tabular-nums; }
.cpd-dept small { grid-column: 1 / -1; }

.cpd-table-wrap { overflow-x: auto; border: 1px solid var(--cp-line); border-radius: var(--cp-radius); background: var(--cp-card); }
.cpd-table { width: 100%; border-collapse: collapse; font-size: 13.5px; }
.cpd-table th { padding: 10px 12px; background: #F8FAFC; border-bottom: 1px solid var(--cp-line); color: var(--cp-muted); font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; text-align: left; white-space: nowrap; }
.cpd-table td { padding: 10px 12px; border-top: 1px solid var(--cp-line); vertical-align: middle; }
.cpd-table tbody tr:first-child td { border-top: 0; }
.cpd-table tbody tr:hover td { background: #FCFAFF; }
.cpd-table td b { display: block; color: var(--cp-ink); font-weight: 600; }
.cpd-count { color: var(--cp-muted); font-size: 12.5px; }
.cpd-person { display: inline-flex; align-items: center; gap: 10px; padding: 0; border: 0; background: none; font: inherit; color: inherit; text-align: left; cursor: pointer; min-width: 0; }
.cpd-person b { color: var(--cp-ink); }
.cpd-person:hover b { color: var(--cp-primary); text-decoration: underline; }
.cpd-av { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: #fff; font-size: 12px; font-weight: 700; flex: none; }
.cpd-av-0 { background: #2563EB; } .cpd-av-1 { background: #0D9488; } .cpd-av-2 { background: #D97706; } .cpd-av-3 { background: #DB2777; }
.cpd-av-4 { background: #7C3AED; } .cpd-av-5 { background: #059669; } .cpd-av-6 { background: #E11D48; } .cpd-av-7 { background: #475569; }

.cpd-empty { display: grid; justify-items: center; gap: 8px; padding: 28px 16px; text-align: center; color: var(--cp-muted); }
.cpd-empty svg { width: 26px; height: 26px; }
.cpd-cta { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 14px 16px; border-radius: var(--cp-radius); background: linear-gradient(135deg, #F5F3FF, #F5F3FF); border: 1px solid var(--cp-soft-2); }
.cpd-cta p { color: var(--cp-ink); font-weight: 600; }
.cpd-success { display: grid; gap: 12px; padding: 16px 18px; border-radius: var(--cp-radius); background: var(--cp-ok-bg); border: 1px solid #A7F3D0; }
.cpd-success h4 { display: flex; align-items: center; gap: 8px; color: var(--cp-ok); }

.cpd-preview-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 300px; overflow: auto; }
.cpd-preview-list li { display: flex; align-items: center; gap: 10px; padding: 6px 4px; }
.cpd-preview-list li > span:nth-child(2) { flex: 1; min-width: 0; }
.cpd-course-info { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.cpd-course-info div { padding: 10px; border-radius: 12px; background: #F8FAFC; border: 1px solid var(--cp-line); }
.cpd-course-info b { display: block; color: var(--cp-ink); }

.cpd-learner { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.cpd-tasks { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.cpd-task { display: grid; gap: 10px; align-content: start; padding: 16px; border-radius: var(--cp-radius); background: var(--cp-card); border: 1px solid var(--cp-line); }
.cpd-task-top { display: flex; justify-content: space-between; gap: 8px; align-items: flex-start; }
.cpd-task-top b { color: var(--cp-ink); font-size: 15px; }
.cpd-next { display: flex; gap: 8px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; background: #F8FAFC; font-size: 13px; }
.cpd-next svg { margin-top: 2px; color: var(--cp-primary); }
.cpd-progress { display: grid; gap: 4px; }
.cpd-progress span { font-size: 12px; color: var(--cp-muted); }

.cpd-player { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 16px; }
.cpd-player-head { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; justify-content: space-between; padding: 14px 16px; border-radius: var(--cp-radius); background: var(--cp-card); border: 1px solid var(--cp-line); }
.cpd-player-head h4 { font-size: 17px; }
.cpd-player-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; font-size: 13px; color: var(--cp-muted); }
.cpd-player-meta .cpd-progress { min-width: 180px; }
.cpd-outline { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; align-content: start; }
.cpd-outline button { display: flex; gap: 10px; align-items: flex-start; width: 100%; padding: 10px 12px; border: 1px solid var(--cp-line); border-radius: 12px; background: var(--cp-card); font: inherit; color: var(--cp-text); text-align: left; cursor: pointer; }
.cpd-outline button[aria-current="step"] { border-color: var(--cp-primary); background: var(--cp-soft); }
.cpd-outline .is-done svg { color: var(--cp-ok); }
.cpd-outline .is-locked { color: var(--cp-muted); }
.cpd-lesson { display: grid; gap: 12px; align-content: start; padding: 20px 22px; border-radius: var(--cp-radius); background: var(--cp-card); border: 1px solid var(--cp-line); }
.cpd-eyebrow { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--cp-primary); }
.cpd-key { display: flex; gap: 10px; padding: 12px 14px; border-radius: 12px; background: var(--cp-warn-bg); border: 1px solid #FDE68A; }
.cpd-key svg { color: var(--cp-warn); margin-top: 2px; }
.cpd-key b { display: block; color: var(--cp-ink); }
.cpd-lesson-foot { display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding-top: 4px; }

.cpd-quiz { display: grid; gap: 14px; }
.cpd-q { display: grid; gap: 8px; margin: 0; padding: 14px 16px; border: 1px solid var(--cp-line); border-radius: var(--cp-radius); background: var(--cp-card); }
.cpd-q legend { padding: 0 6px; font-weight: 650; color: var(--cp-ink); font-size: 14.5px; }
.cpd-opt { display: flex; gap: 10px; align-items: center; min-height: 44px; padding: 10px 12px; border: 1px solid var(--cp-line); border-radius: 10px; cursor: pointer; }
.cpd-opt:hover { border-color: var(--cp-soft-2); background: #FCFAFF; }
.cpd-opt input { width: 16px; height: 16px; accent-color: var(--cp-primary); flex: none; }
.cpd-opt:has(input:checked) { border-color: var(--cp-primary); background: var(--cp-soft); }
.cpd-form-error { min-height: 1em; color: var(--cp-bad); font-size: 13px; font-weight: 600; }
.cpd-result { display: grid; justify-items: center; gap: 8px; padding: 20px; border-radius: var(--cp-radius); text-align: center; }
.cpd-result.is-pass { background: var(--cp-ok-bg); border: 1px solid #A7F3D0; }
.cpd-result.is-fail { background: var(--cp-bad-bg); border: 1px solid #FECACA; }
.cpd-result h4 { font-size: 20px; }
.cpd-result.is-pass h4 { color: var(--cp-ok); }
.cpd-result.is-fail h4 { color: var(--cp-bad); }
.cpd-big { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: var(--cp-card); }
.cpd .cpd-big svg { width: 26px; height: 26px; }
.cpd-result.is-pass .cpd-big { color: var(--cp-ok); }
.cpd-result.is-fail .cpd-big { color: var(--cp-bad); }
.cpd-review { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cpd-review li { display: flex; gap: 10px; padding: 10px 12px; border-radius: 12px; background: var(--cp-card); border: 1px solid var(--cp-line); }
.cpd-review li.is-ok svg { color: var(--cp-ok); }
.cpd-review li.is-bad svg { color: var(--cp-bad); }
.cpd-review svg { margin-top: 2px; }
.cpd-review b { display: block; color: var(--cp-ink); font-weight: 600; }

.cpd-certs { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; max-height: 620px; overflow: auto; }
.cpd-cert-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 8px; align-items: center; width: 100%; padding: 10px 12px; border: 1px solid var(--cp-line); border-radius: 12px; background: var(--cp-card); font: inherit; color: inherit; text-align: left; cursor: pointer; }
.cpd-cert-item:hover { border-color: var(--cp-soft-2); }
.cpd-cert-item[aria-pressed="true"] { border-color: var(--cp-primary); background: var(--cp-soft); }
.cpd-cert-item b { color: var(--cp-ink); font-weight: 600; }
.cpd-cert-item small { grid-column: 1; }
.cpd-cert-item .cpd-tag { grid-row: 1 / span 2; grid-column: 2; }

.cpd-doc { position: relative; padding: 10px; border-radius: 6px; background: linear-gradient(135deg, #FFFFFF, #F8F5FF); border: 1px solid #E4DCF7; box-shadow: 0 24px 50px -34px rgba(15, 23, 42, .5); text-align: center; overflow: hidden; }
.cpd-doc-inner { position: relative; display: grid; justify-items: center; gap: 6px; padding: 30px 28px 20px; border: 2px solid var(--doc-tone, #6D28D9); outline: 1px solid var(--doc-tone, #6D28D9); outline-offset: -7px; border-radius: 3px; }
.cpd-doc-warn { --doc-tone: #B45309; }
.cpd-doc-bad { --doc-tone: #B91C1C; }
.cpd-doc-muted { --doc-tone: #64748B; }
.cpd-doc-tag { position: absolute; top: 14px; right: 16px; }
.cpd-doc-seal { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #C4B5FD, #6D28D9 70%); color: #fff; box-shadow: 0 0 0 4px #EDE9FE, 0 0 0 5px #6D28D9; }
.cpd .cpd-doc-seal svg { width: 24px; height: 24px; }
.cpd .cpd-doc-org { margin-top: 8px; font-size: 11.5px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: var(--doc-tone, #6D28D9); }
.cpd .cpd-doc-title { font-family: Georgia, "Times New Roman", serif; font-size: 24px; font-weight: 700; color: #111827; }
.cpd .cpd-doc-lead { font-size: 13px; font-style: italic; color: #6B7280; }
.cpd .cpd-doc-name { font-family: Georgia, "Times New Roman", serif; font-style: italic; font-size: 30px; line-height: 1.15; color: var(--doc-tone, #6D28D9); }
.cpd-doc-rule { width: min(300px, 80%); height: 1px; background: linear-gradient(90deg, transparent, #C4B5FD, transparent); }
.cpd .cpd-doc-text { max-width: 440px; font-size: 13.5px; color: #374151; }
.cpd-doc-meta { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; width: 100%; margin: 10px 0 2px; padding: 10px 0; border-block: 1px dashed #DDD3F3; }
.cpd-doc-meta dt { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #94A3B8; }
.cpd-doc-meta dd { margin: 2px 0 0; font-size: 14px; font-weight: 700; color: #111827; }
.cpd-doc-foot { display: flex; justify-content: space-between; align-items: flex-end; gap: 14px; width: 100%; margin-top: 6px; text-align: left; font-size: 11.5px; color: #64748B; }
.cpd-doc-foot b { color: #111827; }
.cpd-doc-sign { display: grid; gap: 2px; padding-top: 4px; border-top: 1px solid #94A3B8; }
.cpd-doc-script { font-family: "Brush Script MT", "Segoe Script", cursive; font-size: 19px; color: #1F2937; }
.cpd-doc-ids { display: grid; gap: 2px; justify-items: end; text-align: right; }
.cpd .cpd-doc-note { display: flex; align-items: center; justify-content: center; gap: 6px; margin-top: 8px; font-size: 11.5px; color: #64748B; }

.cpd-verify { display: grid; gap: 10px; }
.cpd-verify form { display: flex; gap: 8px; flex-wrap: wrap; align-items: flex-end; }
.cpd-verify .cpd-field { flex: 1 1 200px; }
.cpd-verdict { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--cp-line); }
.cpd-verdict svg { width: 22px; height: 22px; margin-top: 1px; }
.cpd-verdict b { display: block; color: var(--cp-ink); }
.cpd-verdict-ok { background: var(--cp-ok-bg); border-color: #A7F3D0; color: var(--cp-ok); }
.cpd-verdict-warn { background: var(--cp-warn-bg); border-color: #FDE68A; color: var(--cp-warn); }
.cpd-verdict-bad { background: var(--cp-bad-bg); border-color: #FECACA; color: var(--cp-bad); }
.cpd-verdict-muted { background: #F1F5F9; color: var(--cp-muted); }

.cpd-stages { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; counter-reset: stage; }
.cpd-stage { position: relative; display: grid; justify-items: center; gap: 6px; padding: 12px 6px; border-radius: 14px; background: var(--cp-card); border: 1px solid var(--cp-line); text-align: center; font-size: 12.5px; font-weight: 650; color: var(--cp-muted); counter-increment: stage; }
.cpd-stage::before { content: counter(stage); display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: #F1F5F9; color: var(--cp-muted); font-weight: 800; }
.cpd-stage.is-done { color: var(--cp-text); }
.cpd-stage.is-done::before { content: "✓"; background: var(--cp-ok-bg); color: var(--cp-ok); }
.cpd-stage.is-on { border-color: var(--cp-primary); background: var(--cp-soft); color: var(--cp-hover); box-shadow: 0 10px 24px -18px rgba(109, 40, 217, .8); }
.cpd-stage.is-on::before { background: var(--cp-primary); color: #fff; animation: cpd-pulse 1.8s ease-in-out infinite; }
@keyframes cpd-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(109, 40, 217, .45); } 50% { box-shadow: 0 0 0 6px rgba(109, 40, 217, 0); } }
.cpd-dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; margin: 0; }
.cpd-dl dt { font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--cp-muted); }
.cpd-dl dd { margin: 2px 0 0; color: var(--cp-ink); font-weight: 600; }
.cpd-pick { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.cpd-pick button { display: flex; justify-content: space-between; align-items: center; gap: 10px; width: 100%; padding: 9px 11px; border: 1px solid var(--cp-line); border-radius: 12px; background: var(--cp-card); font: inherit; color: inherit; text-align: left; cursor: pointer; }
.cpd-pick button[aria-pressed="true"] { border-color: var(--cp-primary); background: var(--cp-soft); }
.cpd-pick b { display: block; color: var(--cp-ink); font-weight: 600; }

.cpd-feed { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cpd-feed li { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; }
.cpd-feed-ico { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--cp-soft); color: var(--cp-primary); }
.cpd-feed-ico svg { width: 14px; height: 14px; }
.cpd-feed b { display: block; color: var(--cp-ink); font-weight: 600; font-size: 13.5px; }
.cpd-feed-scroll { max-height: 360px; overflow: auto; padding-right: 4px; }
.cpd-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.cpd-summary div { padding: 12px; border-radius: 12px; background: #F8FAFC; border: 1px solid var(--cp-line); }
.cpd-summary b { display: block; font-size: 22px; color: var(--cp-ink); font-variant-numeric: tabular-nums; }
.cpd-risks { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.cpd-risks li { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--cp-line); background: var(--cp-card); }
.cpd-matrix td { white-space: nowrap; }
.cpd-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #CBD5E1; }

.cpd-mail { border: 1px solid var(--cp-line); border-radius: 14px; overflow: hidden; }
.cpd-mail dl { margin: 0; padding: 10px 14px; display: grid; gap: 4px; background: #F8FAFC; border-bottom: 1px solid var(--cp-line); font-size: 13px; }
.cpd-mail dl div { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 8px; }
.cpd-mail dt { color: var(--cp-muted); }
.cpd-mail dd { margin: 0; color: var(--cp-ink); overflow-wrap: anywhere; }
.cpd-mail-body { display: grid; gap: 10px; padding: 16px; }
.cpd-mail-body .cpd-btn { justify-self: start; }

.cpd-overlay { position: fixed; inset: 0; z-index: 1200; background: rgba(15, 23, 42, .42); }
.cpd-drawer { position: fixed; top: 0; right: 0; bottom: 0; z-index: 1210; display: flex; flex-direction: column; width: min(520px, 100%); background: var(--cp-card); box-shadow: -20px 0 50px -30px rgba(15, 23, 42, .5); font-family: var(--cp-font); animation: cpd-slide .22s ease; }
.cpd-drawer[hidden], .cpd-modal[hidden], .cpd-overlay[hidden] { display: none; }
@keyframes cpd-slide { from { transform: translateX(30px); opacity: 0; } }
.cpd-drawer-head { display: flex; gap: 12px; align-items: center; padding: 16px 18px; border-bottom: 1px solid var(--cp-line); }
.cpd-drawer-head > div { flex: 1; min-width: 0; }
.cpd-drawer-body { display: grid; gap: 14px; align-content: start; padding: 16px 18px 24px; overflow: auto; }
.cpd-icon-btn { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--cp-line); background: var(--cp-card); color: var(--cp-text); cursor: pointer; flex: none; }
.cpd-icon-btn:hover { color: var(--cp-primary); border-color: var(--cp-soft-2); }
.cpd-modal { position: fixed; inset: 0; z-index: 1220; display: grid; place-items: center; padding: 20px; pointer-events: none; font-family: var(--cp-font); }
.cpd-modal-box { display: grid; width: min(620px, 100%); max-height: calc(100vh - 40px); overflow: auto; border-radius: 20px; background: var(--cp-card); box-shadow: 0 30px 80px -30px rgba(15, 23, 42, .55); pointer-events: auto; animation: cpd-pop .2s ease; }
@keyframes cpd-pop { from { transform: scale(.97); opacity: 0; } }
.cpd-modal-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; padding: 18px 20px 14px; border-bottom: 1px solid var(--cp-line); }
.cpd-modal-body { display: grid; gap: 14px; padding: 16px 20px; }
.cpd-modal-foot { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding: 12px 20px 18px; border-top: 1px solid var(--cp-line); }
.cpd-toast { position: fixed; left: 50%; bottom: 96px; z-index: 1230; max-width: min(520px, calc(100% - 32px)); padding: 11px 16px; border-radius: 12px; background: var(--cp-ink); color: #fff; font-size: 13.5px; font-weight: 550; box-shadow: 0 16px 40px -20px rgba(15, 23, 42, .7); opacity: 0; pointer-events: none; transform: translate(-50%, 16px); transition: opacity .2s ease, transform .2s ease; }
.cpd-toast.is-on { opacity: 1; transform: translate(-50%, 0); }
.cpd-main > * { animation: cpd-in .3s ease both; }
@keyframes cpd-in { from { opacity: 0; translate: 0 8px; } }
body:has(.cpd-overlay:not([hidden])) .si-launcher { display: none; }

@media (max-width: 1240px) {
  .cpd-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cpd-stages { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1080px) {
  .cpp-life, .cpp-roles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cpd-body { grid-template-columns: 1fr; min-height: 0; }
  .cpd-nav { padding: 8px 12px; border-right: 0; border-bottom: 1px solid var(--cp-line); overflow-x: auto; }
  .cpd-nav ul { display: flex; gap: 4px; width: max-content; }
  .cpd-nav-btn { display: inline-flex; gap: 7px; width: auto; white-space: nowrap; }
  .cpd-nav-btn svg { width: 16px; height: 16px; }
  .cpd-nav-btn small { display: none; }
  .cpd-grid, .cpd-grid-wide { grid-template-columns: minmax(0, 1fr); }
  .cpd-player { grid-template-columns: 1fr; }
  .cpd-outline { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
  .cpd-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .cpp-life, .cpp-roles { grid-template-columns: 1fr; }
  .cpd { margin-left: -4px; margin-right: -4px; border-radius: 16px; }
  .cpd-bar { padding: 12px; }
  .cpd-time { padding: 10px 12px; }
  .cpd-time-btns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .cpd-time .cpd-btn { min-height: 44px; white-space: normal; text-align: center; }
  .cpd-main { padding: 16px 12px 20px; }
  .cpd-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cpd-stages { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cpd-course-info, .cpd-doc-meta { grid-template-columns: minmax(0, 1fr); }
  .cpd-dl { grid-template-columns: minmax(0, 1fr); }
  .cpd-dept { grid-template-columns: minmax(0, 1fr) 44px; }
  .cpd-dept .cpd-bar-svg { grid-column: 1 / -1; grid-row: 2; }
  .cpd-doc-inner { padding: 44px 14px 16px; }
  .cpd-doc-tag { left: 50%; right: auto; transform: translateX(-50%); }
  .cpd .cpd-doc-title { font-size: 20px; }
  .cpd .cpd-doc-name { font-size: 25px; }
  .cpd-doc-foot { flex-direction: column; align-items: stretch; }
  .cpd-doc-ids { justify-items: start; text-align: left; }
  .cpd-btn { white-space: normal; text-align: center; }
  .cpd-modal { padding: 10px; align-items: end; }
  .cpd-modal-head, .cpd-modal-body, .cpd-modal-foot { padding-left: 14px; padding-right: 14px; }
  .cpd-drawer-head, .cpd-drawer-body { padding-left: 14px; padding-right: 14px; }
  .cpd-table.is-stack thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .cpd-table.is-stack, .cpd-table.is-stack tbody, .cpd-table.is-stack tr, .cpd-table.is-stack td { display: block; width: 100%; }
  .cpd-table.is-stack tr { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; padding: 10px 12px; border-top: 1px solid var(--cp-line); }
  .cpd-table.is-stack tbody tr:first-child { border-top: 0; }
  .cpd-table.is-stack td { padding: 6px 0; border: 0; min-width: 0; }
  .cpd-table.is-stack td::before { content: attr(data-label); display: block; margin-bottom: 2px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--cp-muted); }
  .cpd-table.is-stack td:first-child, .cpd-table.is-stack td.is-wide { grid-column: 1 / -1; }
  .cpd-table.is-stack td:first-child::before { display: none; }
  .cpd-table.is-stack td[colspan] { grid-column: 1 / -1; }
  .cpd-table.is-stack td[colspan]::before { display: none; }
  .cpd-table-wrap:has(.is-stack) { overflow: visible; }
}
@media (max-width: 760px) {
  .cpd-page { --cpd-gap: 6px; }
  body.cpd-live .cpd-time { position: static; }
  body.cpd-live .cpd { margin-left: 0; margin-right: 0; }
}
@media (max-width: 380px) {
  .cpd-time .cpd-btn { padding: 6px 7px; gap: 5px; font-size: 12.5px; }
  .cpd-kpis { gap: 8px; }
  .cpd-kpi { padding: 12px 10px; }
  .cpd-table.is-stack tr { grid-template-columns: minmax(0, 1fr); }
  .cpd-stages { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  .cpd *, .cpd *::before, .cpd *::after, .cpp-life-step, .cpp-life-link svg { animation: none !important; transition: none !important; }
}
