/* Nodomo studio visuals v3 — namespaced (nv-), no dependency on older .studio-* rules. */
.nv-scene{--blue:#0033ff;--ink:#1a1d33;--mute:#5d6380;--line:#e6e9f4;--good:#12a36b;--late:#e2445c;--amb:#e2882f;--vio:#6b62ed;
  position:relative;container-type:inline-size;width:100%;aspect-ratio:1/.96;border-radius:24px;overflow:hidden;color:var(--ink);
  font-family:Figtree,Poppins,system-ui,sans-serif;--fs:max(11.5px,2.15cqw);font-size:14px;line-height:1.3;
  background-color:#e3eaff;background-image:linear-gradient(rgba(0,51,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(0,51,255,.055) 1px,transparent 1px);background-size:2.4em 2.4em}
.nv-scene *{box-sizing:border-box}
.nv-scene>*{font-size:var(--fs)} /* cqw must resolve on children, not on the container itself */
.nv-scene h4{margin:0;font:inherit}
.nv-scene small{font-size:.85em;color:var(--mute)}
.nv-note{position:absolute;right:1.2em;bottom:.8em;font-size:.8em;color:#55618f;z-index:6}
/* window */
.nv-panel{position:absolute;background:#fff;border-radius:.8em;border:1px solid rgba(26,29,51,.07);box-shadow:0 .15em .4em rgba(26,29,51,.05),0 1.6em 2.8em -1.2em rgba(0,40,160,.3);overflow:hidden}

.nv-head{display:flex;justify-content:space-between;align-items:center;padding:1.1em 1.1em .4em}.nv-head h4{font-size:1.25em;font-weight:500;letter-spacing:-.01em}.nv-dots{color:#8b91ad;letter-spacing:.12em}
.nv-tabs{display:flex;gap:1.3em;padding:0 1.1em;border-bottom:1px solid var(--line);font-size:.82em;color:var(--mute)}
.nv-tabs span{padding:.5em 0;border-bottom:2px solid transparent;margin-bottom:-1px}.nv-tabs .on{color:var(--ink);border-color:var(--blue)}
.nv-body{padding:1em 1.1em 1.1em;display:grid;gap:.9em}
/* chips + avatars */
.nv-chip{display:inline-flex;align-items:center;gap:.4em;font-size:.85em;font-weight:500;padding:.2em .65em;border-radius:.4em;white-space:nowrap}
.nv-chip:before{content:"";width:.5em;height:.5em;border-radius:50%;background:currentColor}
.nv-chip.good{background:#e3f6ee;color:#0b8059}.nv-chip.late{background:#fde8ec;color:#c6314b}.nv-chip.neutral{background:#eceffd;color:#4a56b8}
.nv-av{font-style:normal;width:1.7em;height:1.7em;border-radius:50%;background:var(--c);color:#fff;display:inline-grid;place-items:center;font-size:.8em;font-weight:500}
.nv-swap{display:inline-grid}.nv-swap>*{grid-area:1/1}
.nv-js .nv-swap>:last-child{opacity:0}.nv-js .is-in .nv-swap>:first-child{opacity:0;transition:opacity .4s 1.3s}.nv-js .is-in .nv-swap>:last-child{opacity:1;transition:opacity .4s 1.3s}
/* KPI */
.nv-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:.7em}.nv-kpis.k3{grid-template-columns:repeat(3,1fr)}
.nv-kpi{border:1px solid var(--line);border-radius:.6em;padding:.7em .8em;display:grid;gap:.15em;background:#fafbff}
.nv-kpi b{font-size:2.3em;line-height:1;font-weight:600;letter-spacing:-.03em}.nv-kpi span{font-size:.85em;color:var(--mute)}
.nv-kpi u{text-decoration:none;font-size:.8em;border:1px solid var(--line);border-radius:.3em;padding:.1em .5em;justify-self:start;color:var(--mute);background:#fff;margin-top:.3em}
/* table */
.nv-tbl{display:grid}.nv-tr{display:grid;gap:.8em;align-items:center;padding:.55em .2em;border-bottom:1px solid var(--line);font-size:.9em}
.nv-n2 .nv-tr{grid-template-columns:1.5fr 1fr}.nv-n3 .nv-tr{grid-template-columns:1.5fr 1fr 1fr}.nv-n4 .nv-tr{grid-template-columns:1.6fr .5fr 1fr 1fr}
.nv-th{font-size:.82em;color:var(--mute);padding:.3em .2em;font-weight:500}
.nv-nm small{display:block;margin-top:.05em}
.nv-tr.hl{background:#fff6f7;box-shadow:inset .22em 0 0 var(--late)}
.nv-pg{display:flex;align-items:center;gap:.5em}.nv-pg i{flex:1;height:.42em;border-radius:9px;background:#e9ecf8;position:relative;overflow:hidden;min-width:2em}
.nv-pg i:after{content:"";position:absolute;inset:0 auto 0 0;width:var(--p);background:var(--blue);border-radius:9px}.nv-pg i.late:after{background:var(--amb)}.nv-pg i.good:after{background:var(--good)}
.nv-pg small{color:var(--ink);min-width:2.3em;text-align:right}
.nv-js .nv-pg i:after{width:0;transition:width .9s cubic-bezier(.2,.7,.2,1) .5s}.nv-js .is-in .nv-pg i:after{width:var(--p)}
/* widget */
.nv-wid{border:1px solid var(--line);border-radius:.6em;overflow:hidden}.nv-wh{padding:.55em .9em;border-bottom:1px solid var(--line);font-size:.88em;font-weight:500;background:#fbfcff}.nv-wb{padding:.7em .9em}
.nv-ph{display:flex;justify-content:space-between;align-items:center}.nv-ph b{display:block;font-size:1.25em;font-weight:600;letter-spacing:-.01em}
/* gantt */
.nv-gt{display:grid;gap:.15em;position:relative;font-size:.86em}
.nv-ax,.nv-gr,.nv-ov{display:grid;grid-template-columns:7.5em 1fr;align-items:center}.nv-ax div{display:grid;grid-template-columns:repeat(5,1fr);font-size:.8em;color:var(--mute)}
.nv-gr{padding:.28em 0}.nv-gr em{font-style:normal;font-size:.95em}.nv-gt>.nv-gr:first-of-type{}
.nv-tk{position:relative;height:1.35em;background:repeating-linear-gradient(90deg,transparent 0 19.6%,#edf0f8 19.6% 20%)}
.nv-p{position:absolute;top:0;height:.5em;border-radius:3px;background:#dde3fb}
.nv-a{position:absolute;top:.62em;height:.62em;border-radius:3px;background:var(--c)}
.nv-lt{position:absolute;top:.62em;height:.62em;border-radius:0 3px 3px 0;background:repeating-linear-gradient(135deg,#f0657d 0 .22em,#fbc4cf .22em .44em)}
.nv-ov{position:absolute;inset:1.5em 0 1.9em;pointer-events:none}.nv-ov>div{position:relative;grid-column:2}
.nv-today{position:absolute;top:0;bottom:0;border-left:1px dashed #98a2d4}.nv-today small{display:none}
.nv-lm{position:absolute;bottom:.25em;width:.8em;height:.8em;transform:rotate(45deg) translateX(-50%);border:2px solid #0033ff;background:#fff}.nv-lm.now{background:#0033ff}
.nv-lg{display:flex;gap:1.2em;font-size:.85em;color:var(--mute);padding-top:.5em}.nv-lg i{display:inline-block;width:1.3em;height:.45em;border-radius:2px;margin-right:.4em;background:#dde3fb;vertical-align:middle}.nv-lg i.a{background:var(--blue)}.nv-lg i.l{background:repeating-linear-gradient(135deg,#f0657d 0 .22em,#fbc4cf .22em .44em)}
.nv-js .nv-a,.nv-js .nv-lt{transform-origin:left;transform:scaleX(0);transition:transform .8s cubic-bezier(.2,.7,.2,1) .5s}.nv-js .is-in .nv-a,.nv-js .is-in .nv-lt{transform:none}.nv-js .nv-lt{transition-delay:1.2s}
/* dept */
.nv-dp{display:grid;gap:.55em}.nv-dp>div{display:grid;grid-template-columns:7em 1fr 2.4em 5.6em;align-items:center;gap:.6em;font-size:.86em}
.nv-dp em{font-style:normal;text-align:right;font-weight:600}.nv-tk2{height:.5em;border-radius:9px;background:#eceffa;overflow:hidden;display:block}.nv-tk2 b{display:block;height:100%;width:var(--p);border-radius:9px}
.nv-js .nv-tk2 b{width:0;transition:width .9s cubic-bezier(.2,.7,.2,1) .7s}.nv-js .is-in .nv-tk2 b{width:var(--p)}
.nv-dp .nv-chip{justify-self:start;font-size:.8em}
/* floating insight (thin brand gradient ring) */
.nv-float{border:1.5px solid transparent;border-radius:.8em;padding:.9em 1.1em;z-index:5;background:linear-gradient(#fff,#fff) padding-box,linear-gradient(110deg,#0033ff,#8a6cf0 60%,#f06fa8) border-box;box-shadow:0 1.4em 2.4em -1em rgba(60,40,200,.35)}
.nv-float>small{display:block;font-size:.8em;letter-spacing:.08em;font-weight:600;color:var(--vio);margin-bottom:.4em}.nv-float p{margin:0 0 .4em;font-size:.95em;line-height:1.4}.nv-float .nv-t{font-size:1.1em;margin:0 0 .5em}
.nv-own{display:flex;align-items:center;gap:.5em;font-size:.82em;color:var(--mute);margin-bottom:.6em}.nv-sub{font-size:.8em;color:var(--mute)}
.nv-card{padding:.9em 1.1em;z-index:3}.nv-card>small{display:block;margin-bottom:.3em}.nv-card>b{font-size:1.6em;font-weight:600;display:block;margin-bottom:.4em}
.nv-big{font-size:2.4em;line-height:1;font-weight:600;letter-spacing:-.03em;display:block}.nv-big.red{color:var(--late)}
.nv-two{display:grid;grid-template-columns:1fr 1fr;gap:.7em}.nv-spark{margin-top:.5em;height:2em}.nv-spark svg{width:100%;height:100%}.nv-spark .ln{fill:none;stroke:var(--blue);stroke-width:1.6;vector-effect:non-scaling-stroke}.nv-spark .ar{fill:rgba(0,51,255,.1)}
.nv-mb{position:relative;height:3.2em;margin-top:.5em;background:repeating-linear-gradient(90deg,transparent 0 24.5%,#edf0f8 24.5% 25%)}
.nv-mb i{position:absolute;height:.55em;border-radius:3px}.nv-mb i:nth-child(1){top:.2em}.nv-mb i:nth-child(2){top:1.2em}.nv-mb i:nth-child(3){top:2.2em}
/* workflow */
.nv-node{border:1px solid var(--line);border-radius:.6em;padding:.7em .9em;display:grid;gap:.25em;background:#fff}.nv-node small{font-size:.8em;letter-spacing:.06em;font-weight:600}.nv-node b{font-weight:600}
.nv-ow{display:flex;align-items:center;gap:.5em;font-size:.8em;color:var(--mute)}
.nv-node.done small{color:var(--good)}.nv-node.done{background:#f5fbf8}.nv-node.over{border-color:#f7b9c5;background:#fff7f8;box-shadow:0 0 0 .22em rgba(226,68,92,.08)}.nv-node.over small{color:var(--late)}.nv-node.wait{border-style:dashed;background:#fafbff}.nv-node.wait small{color:#8a7fe0}
.nv-cn{display:block;width:2px;height:.8em;background:#cdd3ec;margin:0 auto}
.nv-js .nv-node.over{transition:box-shadow .5s 1s,border-color .5s 1s}
/* revenue */
.nv-card dl{margin:0;display:grid;gap:.1em}.nv-card dl>div{display:flex;justify-content:space-between;padding:.5em 0;border-bottom:1px solid var(--line);font-size:.9em}
.nv-card dt{color:var(--mute)}.nv-card dd{margin:0;font-weight:600}.nv-card dd.red{color:var(--late)}
.nv-tot{padding-top:.8em;display:grid;gap:.15em}.nv-tot small{font-size:.82em;letter-spacing:.06em;text-transform:uppercase;font-weight:600}.nv-tot b{font-size:3em;line-height:1.05;font-weight:600;letter-spacing:-.03em;color:var(--late)}.nv-tot span{font-size:.85em;color:var(--mute)}
.r-b .nv-wh{margin:-.9em -1.1em .6em;border-radius:0}.t-b .nv-wh{margin:-.9em -1.1em .8em;border-radius:0}
/* layouts (desktop/tablet) */
.hero-b{left:3%;top:4%;width:68%}.hero-f{right:3%;top:27%;width:70%}.hero-i{left:3%;bottom:6%;width:48%}
.hero-b .nv-tr:nth-child(n+4){display:none}
.nv-mini{aspect-ratio:1/.86;--fs:max(11.5px,3.2cqw);border-radius:20px}.nv-mini.blue{background-color:#d9e5ff}.nv-mini.purple{background-color:#e6dcff}.nv-mini.lavender{background-color:#dde0ff}
.nv-mini .nv-note{display:none}.nv-mini .nv-tr small{display:none}
.m1-a{left:4%;top:12%;width:58%}.m1-b{right:4%;top:8%;width:30%}.m1-c{right:4%;bottom:10%;width:30%}
.nv-con{position:absolute;inset:0;width:100%;height:100%}.nv-con path{fill:none;stroke:#8da2ff;stroke-width:1.5;vector-effect:non-scaling-stroke}
.m1-b>b{font-size:1.2em}.m1-b .nv-pg{margin-bottom:.5em}
.m2-a{left:4%;top:7%;width:92%}.m2-b{right:4%;bottom:7%;width:60%}
.m3-a{left:4%;top:7%;width:92%}.m3-b{right:4%;bottom:6%;width:50%}.m3-a .nv-dp>div{grid-template-columns:5.5em 1fr 2.2em 0}.m3-a .nv-dp .nv-chip{display:none}
.nv-drill{aspect-ratio:1/.98;--fs:max(11.5px,2.2cqw)}.d-a{left:4%;top:4%;width:62%}.d-b{right:4%;top:28%;width:64%}.d-b .nv-body{gap:0}.d-c{left:4%;bottom:5%;width:46%}
.nv-time{aspect-ratio:1/.9;--fs:max(11.5px,2cqw)}.t-a{left:4%;top:5%;width:92%}.t-b{right:4%;bottom:6%;width:60%}.t-b .nv-dp>div{grid-template-columns:6em 1fr 2.2em 5em}
.nv-rev{aspect-ratio:1/.9;--fs:max(11.5px,2cqw)}.r-a{left:4%;top:5%;width:90%}.r-b{right:4%;bottom:5%;width:56%}
/* reveal */
.nv-js .nv-rv{opacity:0;transform:translateY(14px);transition:opacity .6s cubic-bezier(.2,.7,.2,1) var(--d,0ms),transform .6s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.nv-js .nv-float.nv-rv{transform:translateY(10px) scale(.98)}
.nv-js .is-in .nv-rv{opacity:1;transform:none}
/* video frame */
.nv-vwrap{align-self:center;width:100%;padding:clamp(14px,3vw,32px);border-radius:24px;overflow:hidden;background-color:#e3eaff;background-image:linear-gradient(rgba(0,51,255,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(0,51,255,.055) 1px,transparent 1px);background-size:34px 34px}
.nv-vwrap figure{margin:0!important;padding:0!important;width:100%!important;height:auto!important;max-height:none!important;background:none!important;border:0!important;box-shadow:none!important;aspect-ratio:auto!important}
.nv-vwrap video{display:block!important;width:100%!important;height:auto!important;max-height:none!important;aspect-ratio:1/1!important;object-fit:cover;border-radius:12px;background:#dfe5ff;box-shadow:0 .15em .4em rgba(26,29,51,.05),0 28px 44px -24px rgba(0,40,160,.45)}
/* tablet */
@container (max-width:540px){.hero-f .nv-wid:last-child{display:none}.hero-b .nv-tr:nth-child(n+3){display:none}.nv-kpi b{font-size:2em}}
/* mobile: simplify layering */
@media (max-width:700px){
  .nv-scene{aspect-ratio:auto;--fs:13px;padding:14px;display:flex;flex-direction:column;gap:0;border-radius:20px}
  .nv-panel{position:relative;inset:auto;width:auto!important}
  .nv-note{position:static;display:block;text-align:right;margin-top:10px}
  .hero-b,.d-a,.m1-b,.m1-c,.nv-con,.m3-a .nv-two,.r-a .nv-gt{display:none}
  .nv-float,.nv-card.t-b,.r-b{margin:-14px 0 0 18px}.hero-i{margin:-14px 0 0 18px;width:auto}
  .t-b{margin:-14px 0 0 18px}
  .hero-f .nv-wid:last-child{display:none}.m1-a{margin-bottom:0}
  .nv-mini{--fs:13px}.nv-mini .nv-note{display:block}
  .r-a .nv-kpis{margin-bottom:0}
  .nv-dp>div,.t-b .nv-dp>div{grid-template-columns:6em 1fr 2.2em 5em}.m3-a .nv-dp>div{grid-template-columns:6em 1fr 2.2em}
}
@media (prefers-reduced-motion:reduce){.nv-js .nv-rv,.nv-js .nv-a,.nv-js .nv-lt{opacity:1;transform:none;transition:none}.nv-js .nv-pg i:after{width:var(--p);transition:none}.nv-js .nv-tk2 b{width:var(--p);transition:none}.nv-js .nv-swap>:first-child{opacity:0}.nv-js .nv-swap>:last-child{opacity:1}}
@container (max-width:380px){.m1-b .nv-chip{display:none}.m1-b,.m1-c{width:34%}.m1-a{width:56%}.m3-b{width:56%}}
