/* ===== Unicorn.pm hero component (scoped to .ucd) ===== */
.ucd{--e:cubic-bezier(0.22,1,0.36,1);--pop:cubic-bezier(0.34,1.56,0.64,1);--mut:rgba(24,24,27,.65);position:relative;width:100%;container-type:inline-size;font-family:'DM Sans',system-ui,sans-serif;color:#18181b;-webkit-font-smoothing:antialiased;text-align:left}
.ucd *,.ucd *::before,.ucd *::after{box-sizing:border-box;margin:0;padding:0}
.ucd svg{display:block}
.ucd .i{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ucd-win{position:relative;border-radius:14px;overflow:hidden;background:#fff;transform-origin:50% 45%;box-shadow:0 0 0 1px rgba(24,24,27,.06),0 2px 6px rgba(24,24,27,.04),0 24px 48px -16px rgba(24,24,27,.12),0 64px 120px -32px rgba(24,24,27,.18)}
.ucd-bar{height:clamp(22px,2.4cqw,34px);display:flex;align-items:center;gap:clamp(5px,.55cqw,8px);padding:0 clamp(10px,1.2cqw,16px);background:#fff;border-bottom:1px solid rgba(24,24,27,.06)}
.ucd-bar i{width:clamp(7px,.75cqw,11px);height:clamp(7px,.75cqw,11px);border-radius:50%;background:rgba(24,24,27,.12)}
.ucd-view{position:relative;aspect-ratio:1440/1100;overflow:hidden;background:#f8f8f8}
.ucd.is-narrow .ucd-view{aspect-ratio:1200/1100}
.ucd-stage{position:absolute;left:0;top:0;width:1440px;height:1100px;transform-origin:0 0;transform:scale(var(--s,1)) translateX(var(--x,0px));background:#f8f8f8;font-size:14px;line-height:20px}
.ucd.is-narrow .ucd-stage{--x:-240px}
.ucd.is-narrow .ucd-side,.ucd.is-narrow .ucd-collapse{visibility:hidden}

/* sidebar */
.ucd-side{position:absolute;left:0;top:0;bottom:0;width:240px;background:#fff}
.ucd-brand{height:80px;display:flex;align-items:center;gap:14px;padding-left:22px;font-size:18px;line-height:28px;font-weight:600}
.ucd-brand svg{width:36px;height:40px;fill:#ec4899}
.ucd-nav{padding:16px 12px 0}
.ucd-sec+.ucd-sec{margin-top:24px}
.ucd-lab{padding-left:8px;margin-bottom:12px;font-size:12px;line-height:16px;letter-spacing:.05em;text-transform:uppercase;color:rgba(24,24,27,.5)}
.ucd-items{position:relative;display:flex;flex-direction:column;gap:4px}
.ucd-item{position:relative;z-index:1;height:40px;display:flex;align-items:center;gap:12px;padding:0 12px;font-size:14px;font-weight:500}
.ucd-item svg{width:20px;height:20px;flex:none}
.ucd-item.on{color:#ec4899}
.ucd-hl{position:absolute;left:0;right:0;top:0;height:40px;border-radius:8px;background:rgba(236,72,153,.1)}
.ucd-collapse{position:absolute;z-index:3;left:228px;top:28px;width:24px;height:24px;border-radius:50%;background:#fff;display:grid;place-items:center;box-shadow:0 0 0 1px rgba(24,24,27,.04),0 2px 6px rgba(24,24,27,.12)}
.ucd-collapse svg{width:14px;height:14px;stroke-width:2}

/* main */
.ucd-main{position:absolute;left:240px;top:0;width:1200px;height:1100px}
.ucd-head{height:80px;border-bottom:1px solid rgba(24,24,27,.06);display:flex;align-items:center;justify-content:space-between;padding:0 24px 0 48px}
.ucd-crumb{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500}
.ucd-crumb svg{width:16px;height:16px}
.ucd-acts{display:flex;align-items:center;gap:12px}
.ucd-bell{width:36px;height:36px;padding:8px;border-radius:8px;color:rgba(24,24,27,.8)}
.ucd-bell svg{width:20px;height:20px;stroke-width:2;transform-origin:50% 0}
.ucd-av{position:relative;width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#fb64b6,#ad46ff);color:#fff;display:grid;place-items:center;font-size:14px;font-weight:600}
.ucd-av::after{content:"";position:absolute;top:-2px;right:-2px;width:12px;height:12px;border-radius:50%;background:#00c27a;border:2px solid #fff}
.ucd-body{padding:24px 40px 0}
.ucd-h1{font-size:24px;line-height:32px;font-weight:700}
.ucd-sub{margin-top:2px;font-size:14px;line-height:20px;color:var(--mut)}
.ucd-card{background:#fff;border:1px solid #f8f8f8;border-radius:12px;padding:20px}
.ucd-ch{display:flex;justify-content:space-between;align-items:flex-start}
.ucd-ct{font-size:16px;line-height:24px;font-weight:600}
.ucd-cs{font-size:12px;line-height:20px;color:var(--mut)}
.ucd-btn{height:34px;display:flex;align-items:center;gap:6px;padding:0 12px;border:1px solid rgba(24,24,27,.09);border-radius:8px;background:#fff;font-size:14px;line-height:20px}
.ucd-btn svg{width:14px;height:14px;stroke-width:2}
.ucd-chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:6px;font-size:11px;line-height:20px;font-weight:500;white-space:nowrap}
.ucd .c-pos{color:#007a55;background:rgba(0,188,125,.1)}
.ucd .c-pur{color:#7008e7;background:rgba(142,81,255,.1)}
.ucd .c-neu{color:var(--mut);background:#f8f8f8}
.ucd .c-dup{color:#0069a8;background:rgba(0,166,244,.1)}
.ucd-logo{width:32px;height:32px;flex:none;border-radius:8px;overflow:hidden;background:#fff;border:1px solid #f8f8f8;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)}
.ucd-logo img{display:block;width:100%;height:100%;object-fit:contain;padding:2px}

/* KPIs */
.ucd-kpis{margin-top:24px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.ucd-kpi{position:relative;height:113px}
.ucd-kpi-l{font-size:14px;line-height:20px;color:var(--mut)}
.ucd-kpi-ic{position:absolute;top:20px;right:20px;width:32px;height:32px;border-radius:8px;display:grid;place-items:center}
.ucd-kpi-ic svg{width:16px;height:16px}
.ucd .k-sky{color:#0084d1;background:rgba(0,166,244,.1)}
.ucd .k-pink{color:#e60076;background:rgba(246,51,154,.1)}
.ucd-kpi-v{margin-top:15px;height:36px;display:flex;align-items:center;gap:12px}
.ucd-num{display:inline-block;font-size:30px;line-height:36px;font-weight:700}

/* middle */
.ucd-mid{margin-top:25px;height:436px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.ucd-rows{margin-top:12px;display:flex;flex-direction:column;gap:4px}
.ucd-row{position:relative;height:52px;margin:0 -8px;padding:0 8px;border-radius:8px;display:flex;align-items:center;gap:12px}
.ucd-row::before{content:"";position:absolute;top:8px;bottom:8px;left:0;width:2px;border-radius:9999px;background:#00bcff;opacity:0}
.ucd-rn{font-size:14px;line-height:20px;font-weight:500}
.ucd-rm{font-size:12px;line-height:16px;color:var(--mut)}
.ucd-row>.ucd-chip{margin-left:auto}
.ucd-cap{padding:16px}
.ucd-cap .ucd-ct{font-size:18px;line-height:28px}
.ucd-tree{margin-top:10px;height:318px;display:flex;gap:4px}
.ucd-col{display:flex;flex-direction:column;gap:4px;min-width:0}
.ucd-tile{position:relative;min-height:0;border-radius:8px;padding:8px;display:flex;flex-direction:column;justify-content:flex-end;background:rgba(56,189,248,.2);overflow:hidden;transform-origin:50% 50%}
.ucd-tile::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:rgba(56,189,248,var(--b,0))}
.ucd-tl,.ucd-tn{position:relative}
.ucd-tl{font-size:10px;line-height:14px;color:rgba(24,24,27,.6)}
.ucd-tn{font-size:14px;line-height:20px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ucd-leg{margin-top:10px;display:flex;justify-content:flex-end;align-items:center;gap:8px;font-size:11px;line-height:16px;color:rgba(24,24,27,.55)}
.ucd-leg i{width:80px;height:6px;border-radius:3px;background:linear-gradient(90deg,rgba(56,189,248,.2),rgba(56,189,248,.85))}

/* stakeholders */
.ucd-stake{margin-top:25px}
.ucd-stake .ucd-cs b{font-weight:700;color:#18181b}
.ucd-track{margin-top:14px;height:8px;border-radius:4px;background:rgba(24,24,27,.06);overflow:hidden}
.ucd-fill{width:100%;height:100%;border-radius:4px;background:#00bba7}
.ucd-sleg{margin-top:10px;display:flex;align-items:center;gap:6px;font-size:12px;line-height:20px;color:var(--mut)}
.ucd-sleg i{width:8px;height:8px;border-radius:50%;background:#00bba7}
.ucd-hr{margin-top:17px;height:1px;background:rgba(24,24,27,.06)}
.ucd-slab{margin-top:16px;font-size:11px;line-height:16px;letter-spacing:.03em;text-transform:uppercase;color:rgba(24,24,27,.5)}
.ucd-tiles{margin-top:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.ucd-st{border:1px solid rgba(24,24,27,.07);border-radius:12px;padding:12px}
.ucd-st-top{height:36px;display:flex;align-items:center;gap:10px}
.ucd-role{display:flex;align-items:center;gap:6px;font-size:12px;line-height:16px;color:var(--mut)}
.ucd-role i{width:6px;height:6px;border-radius:50%;background:#00bba7}
.ucd-st-ft{margin-top:12px;display:flex}

/* motion: pre-state, then transitions once .is-play is set */
.ucd.is-pre .ucd-win{opacity:0;transform:scale(.98)}
.ucd.is-pre [data-a]{opacity:0}
.ucd.is-pre [data-a="up"]{transform:translateY(10px)}
.ucd.is-pre [data-a="left"]{transform:translateX(-10px)}
.ucd.is-pre [data-a="nav"]{transform:translateX(-8px)}
.ucd.is-pre [data-a="hl"]{transform:translateX(-12px)}
.ucd.is-pre [data-a="pop"]{transform:scale(.8)}
.ucd.is-pre [data-a="grow"]{transform:scale(.85)}
.ucd.is-pre .ucd-tile::before{opacity:0}
.ucd.is-pre .ucd-fill{width:0}
.ucd.is-play .ucd-win{transition:opacity 600ms var(--e),transform 900ms var(--e)}
.ucd.is-play [data-a]{transition:opacity var(--t,500ms) var(--e) var(--d,0ms),transform var(--t,500ms) var(--e) var(--d,0ms)}
.ucd.is-play [data-a="pop"]{transition:opacity 220ms var(--e) var(--d,0ms),transform 440ms var(--pop) var(--d,0ms)}
.ucd.is-play .ucd-tile::before{transition:opacity 700ms var(--e) calc(var(--d,0ms) + 120ms)}
.ucd.is-play .ucd-fill{transition:width 600ms var(--e) var(--d,0ms)}

/* live: the platform's hover states, enabled once the intro has finished */
.ucd{--tw:150ms cubic-bezier(0.4,0,0.2,1);--sh-sm:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1);--sh-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}
.ucd.is-live .ucd-item,.ucd.is-live .ucd-row,.ucd.is-live .ucd-btn,.ucd.is-live .ucd-bell,.ucd.is-live .ucd-collapse{transition:background-color var(--tw),color var(--tw),border-color var(--tw)}
.ucd.is-live .ucd-kpi,.ucd.is-live .ucd-st{cursor:pointer;transition:border-color var(--tw),box-shadow var(--tw),transform var(--tw)}
.ucd.is-live :is(.ucd-row,.ucd-item,.ucd-btn,.ucd-tile,.ucd-bell,.ucd-av,.ucd-collapse){cursor:pointer}
.ucd.is-live .ucd-row::before{transition:opacity var(--tw)}
.ucd.is-live .ucd-row .ucd-rn{transition:color var(--tw)}
.ucd.is-live .ucd-tile{transition:filter var(--tw)}
.ucd.is-live .ucd-bell svg{transition:transform 200ms cubic-bezier(0,0,0.2,1)}
@media (hover:hover){
.ucd.is-live .ucd-item:not(.on):hover{background:#f8f8f8}
.ucd.is-live .ucd-row:hover{background:rgba(0,166,244,.06)}
.ucd.is-live .ucd-row:hover::before{opacity:1}
.ucd.is-live .ucd-row:hover .ucd-rn{color:#0069a8}
.ucd.is-live .ucd-btn:hover{background:#f8f8f8}
.ucd.is-live .ucd-kpi:hover,.ucd.is-live .ucd-st:hover{transform:translateY(-2px);border-color:#74d4ff;box-shadow:var(--sh-md)}
.ucd.is-live .ucd-tile:hover{filter:brightness(1.1)}
.ucd.is-live .ucd-bell:hover{background:rgba(24,24,27,.07);color:#18181b}
.ucd.is-live .ucd-bell:hover svg{transform:rotate(-12deg)}
.ucd.is-live .ucd-collapse:hover{background:#f8f8f8}
}
@media (prefers-reduced-motion:reduce){.ucd.is-live .ucd-bell:hover svg,.ucd.is-live .ucd-kpi:hover,.ucd.is-live .ucd-st:hover{transform:none}}


/* The whole dashboard opens the demo form. */
.ucd{cursor:pointer;border-radius:14px}
.ucd:focus-visible{outline:3px solid #ec4899;outline-offset:4px}

/* Older browsers. Without aspect-ratio (Safari < 15) the view would collapse
   around its absolutely positioned stage; without container queries
   (Chrome < 105, Safari < 16, Firefox < 110) the window bar's cqw sizes are
   dropped, so it gets fixed ones. */
@supports not (aspect-ratio:1/1){
.ucd-view{height:0;padding-top:76.3889%}
.ucd.is-narrow .ucd-view{padding-top:91.6667%}
}
@supports not (container-type:inline-size){
.ucd-bar{height:28px;gap:6px;padding:0 13px}
.ucd-bar i{width:9px;height:9px}
}
