/* ==========================================================================
   Modulyra Nova — unified design system V4.0
   One token layer + one component layer for every shell and module.
   Loaded LAST and scoped to html[data-identity-engine="nova"] so the
   Stellar Classic / Neo Najd / Legacy engines stay untouched as fallbacks.
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"]{
  /* brand (fed by Identity Studio: --mi-accent / --mi-secondary) */
  --nv-accent:var(--mi-accent,#7CFFB2);
  --nv-accent-2:var(--mi-secondary,#FFB45E);
  --nv-accent-ink:#03140b;
  --nv-accent-text:color-mix(in oklab,var(--nv-accent) 88%,white);
  --nv-accent-soft:color-mix(in srgb,var(--nv-accent) 13%,transparent);
  --nv-accent-line:color-mix(in srgb,var(--nv-accent) 38%,transparent);
  --nv-accent-2-soft:color-mix(in srgb,var(--nv-accent-2) 14%,transparent);

  /* canvas & surfaces */
  --nv-bg:#05070d;
  --nv-bg-2:#080b14;
  --nv-surface:rgba(14,19,31,.78);
  --nv-surface-solid:#0e131f;
  --nv-surface-2:#131a2a;
  --nv-surface-3:#1a2235;
  --nv-surface-hover:#172033;
  --nv-chrome:rgba(7,10,18,.72);
  --nv-overlay:rgba(2,4,9,.66);
  --nv-field:#0a0f1a;

  /* lines & text */
  --nv-line:rgba(150,166,204,.13);
  --nv-line-2:rgba(150,166,204,.22);
  --nv-line-3:rgba(150,166,204,.34);
  --nv-text:#eef2fa;
  --nv-text-2:#c3cbdc;
  --nv-muted:#8d98ae;
  --nv-faint:#5f6a80;

  /* status */
  --nv-info:#6cb8ff;
  --nv-success:#4fe0a0;
  --nv-warning:#ffc861;
  --nv-danger:#ff6b7d;
  --nv-violet:#a991ff;

  /* geometry */
  --nv-r-xs:6px;--nv-r-sm:9px;--nv-r-md:12px;--nv-r-lg:16px;--nv-r-xl:22px;--nv-r-pill:999px;
  --nv-gap:20px;
  --nv-pad:22px;
  --nv-topbar:64px;
  --nv-sidebar:268px;
  --nv-content:var(--mi-content-width,1680px);

  /* depth */
  --nv-shadow-1:0 1px 0 rgba(255,255,255,.035) inset,0 1px 2px rgba(0,0,0,.35);
  --nv-shadow-2:0 1px 0 rgba(255,255,255,.04) inset,0 12px 32px -12px rgba(0,0,0,.6);
  --nv-shadow-3:0 24px 64px -16px rgba(0,0,0,.72);
  --nv-glow:0 0 0 1px var(--nv-accent-line),0 0 24px -6px color-mix(in srgb,var(--nv-accent) 45%,transparent);
  --nv-focus:0 0 0 3px color-mix(in srgb,var(--nv-accent) 30%,transparent);
  --nv-blur:saturate(150%) blur(18px);

  /* type */
  --nv-font:"IBM Plex Sans Arabic","Inter","Segoe UI",system-ui,-apple-system,Tahoma,sans-serif;
  --nv-mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --nv-ease:cubic-bezier(.2,.8,.2,1);
  --nv-fast:140ms;--nv-normal:240ms;

  /* ---- legacy vocabularies mapped onto Nova (every module inherits) ---- */
  --ui-bg:var(--nv-bg);--ui-bg-elevated:var(--nv-bg-2);--ui-surface:var(--nv-surface-solid);--ui-surface-2:var(--nv-surface-2);--ui-surface-3:var(--nv-surface-3);
  --ui-text:var(--nv-text);--ui-text-soft:var(--nv-text-2);--ui-muted:var(--nv-muted);--ui-border:var(--nv-line-2);--ui-border-soft:var(--nv-line);
  --ui-primary:var(--nv-accent);--ui-primary-strong:var(--nv-accent);--ui-gold:var(--nv-accent-2);--ui-orange:var(--nv-accent-2);--ui-purple:var(--nv-violet);
  --ui-success:var(--nv-success);--ui-danger:var(--nv-danger);--ui-warning:var(--nv-warning);--ui-shadow:var(--nv-shadow-2);
  --ui-sidebar:var(--nv-sidebar);--ui-topbar:var(--nv-topbar);--ui-radius:var(--nv-r-lg);
  --bg:var(--nv-bg);--bg2:var(--nv-bg-2);--surface:var(--nv-surface-solid);--surface2:var(--nv-surface-2);--text:var(--nv-text);--text-soft:var(--nv-text-2);
  --muted:var(--nv-muted);--cyan:var(--nv-accent);--cyan2:var(--nv-accent-text);--blue:var(--nv-info);--border:var(--nv-line-2);--gold:var(--nv-accent-2);
  --orange:var(--nv-accent-2);--purple:var(--nv-violet);--danger:var(--nv-danger);--success:var(--nv-success);--shadow:var(--nv-shadow-2);
  --panel:var(--nv-surface-solid);--line:var(--nv-line-2);--accent:var(--nv-accent);
  --mi-bg:var(--nv-bg);--mi-canvas:var(--nv-bg-2);--mi-surface:var(--nv-surface-solid);--mi-elevated:var(--nv-surface-2);--mi-ink:var(--nv-text);--mi-muted:var(--nv-muted);
  --mi-line:var(--nv-line-2);--mi-danger:var(--nv-danger);--mi-ok:var(--nv-success);--mi-shadow:var(--nv-shadow-2);
  --mi-void:var(--nv-bg);--mi-layer:var(--nv-surface-solid);--mi-layer-2:var(--nv-surface-2);--mi-paper:var(--nv-surface-solid);--mi-stroke:var(--nv-line-2);
  --mi-stroke-strong:var(--nv-line-3);--mi-dim:var(--nv-muted);
  --tc-bg:var(--nv-bg);--tc-canvas:var(--nv-bg-2);--tc-surface:var(--nv-surface-solid);--tc-elevated:var(--nv-surface-2);--tc-card-bg:var(--nv-surface);
  --tc-panel-bg:var(--nv-surface);--tc-hero-bg:var(--nv-surface);--tc-control-bg:var(--nv-field);--tc-line:var(--nv-line-2);--tc-line-strong:var(--nv-line-3);
  --tc-text:var(--nv-text);--tc-muted:var(--nv-muted);--tc-accent:var(--nv-accent);--tc-accent-ink:var(--nv-accent-ink);--tc-secondary:var(--nv-accent-2);
  --tc-success:var(--nv-success);--tc-warning:var(--nv-warning);--tc-danger:var(--nv-danger);--tc-radius:var(--nv-r-lg);--tc-radius-small:var(--nv-r-sm);--tc-shadow:var(--nv-shadow-2);

  --motion-ease:var(--nv-ease);
  color-scheme:dark;
  font-size:calc(16px * var(--mi-font-scale,1));
  scrollbar-color:var(--nv-line-3) transparent;
}

/* Module-scoped vocabularies (defined on their shells in module CSS) */
html[data-identity-engine="nova"] :is(.ip-shell,.ip-panel,.ip-hero,[class*="ip-"]){
  --ip-accent:var(--nv-accent);--ip-accent-2:var(--nv-accent-2);--ip-border:var(--nv-line-2);--ip-muted:var(--nv-muted);--ip-panel:var(--nv-surface);
}
html[data-identity-engine="nova"] :is([class*="dv-"],.developer-shell,.developers-shell){
  --dv-bg:var(--nv-bg);--dv-panel:var(--nv-surface);--dv-panel2:var(--nv-surface-2);--dv-line:var(--nv-line-2);--dv-text:var(--nv-text);--dv-muted:var(--nv-muted);
  --dv-cyan:var(--nv-accent);--dv-green:var(--nv-success);--dv-violet:var(--nv-violet);--dv-warn:var(--nv-warning);--dv-red:var(--nv-danger);--dv-shadow:var(--nv-shadow-2);
}
html[data-identity-engine="nova"] :is([class*="community"],[class*="c-shell"]){
  --c-bg:var(--nv-bg);--c-bg2:var(--nv-bg-2);--c-panel:var(--nv-surface);--c-panel2:var(--nv-surface-2);--c-line:var(--nv-line-2);--c-text:var(--nv-text);
  --c-muted:var(--nv-muted);--c-accent:var(--nv-accent);--c-accent2:var(--nv-accent-2);--c-gold:var(--nv-accent-2);--c-danger:var(--nv-danger);--c-shadow:var(--nv-shadow-2);
}

/* Presets — tint the canvas around the accent */
html[data-identity-engine="nova"][data-identity-preset="atelier"]{--nv-bg:#0b0906;--nv-bg-2:#110e09;--nv-surface:rgba(26,21,14,.8);--nv-surface-solid:#1a150e;--nv-surface-2:#221b12;--nv-surface-3:#2b2217;--nv-surface-hover:#251d13;--nv-field:#120e09;--nv-line:rgba(214,190,150,.12);--nv-line-2:rgba(214,190,150,.2);--nv-line-3:rgba(214,190,150,.32);--nv-text:#fbf6ec;--nv-text-2:#d9cfbd;--nv-muted:#a89c87}
html[data-identity-engine="nova"][data-identity-preset="signal"]{--nv-bg:#040b0c;--nv-bg-2:#071113;--nv-surface:rgba(12,24,26,.8);--nv-surface-solid:#0c181a;--nv-surface-2:#112124;--nv-surface-3:#172b2f;--nv-surface-hover:#14262a;--nv-field:#081214;--nv-line:rgba(140,200,198,.12);--nv-line-2:rgba(140,200,198,.2);--nv-line-3:rgba(140,200,198,.32);--nv-text:#ecfbfa;--nv-text-2:#bcd6d4;--nv-muted:#87a5a3}

/* Light theme */
html[data-identity-engine="nova"][data-theme="light"]{
  --nv-bg:#f4f6fa;--nv-bg-2:#eef1f6;
  --nv-surface:rgba(255,255,255,.86);--nv-surface-solid:#ffffff;--nv-surface-2:#f6f8fb;--nv-surface-3:#edf1f6;--nv-surface-hover:#f2f5f9;
  --nv-chrome:rgba(255,255,255,.78);--nv-overlay:rgba(15,22,38,.38);--nv-field:#ffffff;
  --nv-line:rgba(20,34,64,.08);--nv-line-2:rgba(20,34,64,.13);--nv-line-3:rgba(20,34,64,.22);
  --nv-text:#0d1526;--nv-text-2:#36435a;--nv-muted:#5f6b80;--nv-faint:#8a95a8;
  --nv-accent-text:color-mix(in oklab,var(--nv-accent) 42%,#05221a);
  --nv-accent-soft:color-mix(in srgb,var(--nv-accent) 16%,white);
  --nv-accent-line:color-mix(in srgb,var(--nv-accent) 55%,#0d1526 10%);
  --nv-info:#1f6fd1;--nv-success:#0e8a5a;--nv-warning:#a86800;--nv-danger:#cf2f48;--nv-violet:#6a4fd6;
  --nv-shadow-1:0 1px 2px rgba(16,24,40,.06);
  --nv-shadow-2:0 1px 2px rgba(16,24,40,.05),0 8px 24px -10px rgba(16,24,40,.14);
  --nv-shadow-3:0 24px 60px -18px rgba(16,24,40,.28);
  /* in light mode legacy "accent" tokens are mostly used for text & borders: give them contrast */
  --ui-primary:var(--nv-accent-text);--ui-primary-strong:var(--nv-accent-text);--cyan:var(--nv-accent-text);--cyan2:var(--nv-accent-text);
  --ip-accent:var(--nv-accent-text);--dv-cyan:var(--nv-accent-text);--tc-accent:var(--nv-accent-text);--c-accent:var(--nv-accent-text);
  --ui-gold:color-mix(in oklab,var(--nv-accent-2) 55%,#3a2000);--gold:var(--ui-gold);
  color-scheme:light;
}
html[data-identity-engine="nova"][data-theme="light"][data-identity-preset="atelier"]{--nv-bg:#f7f3ec;--nv-bg-2:#f1ebe1;--nv-surface-2:#faf7f2;--nv-surface-3:#f1ebe1;--nv-line:rgba(70,50,20,.09);--nv-line-2:rgba(70,50,20,.15);--nv-line-3:rgba(70,50,20,.24);--nv-text:#1c160d;--nv-text-2:#4a3f2e;--nv-muted:#7a6d58}
html[data-identity-engine="nova"][data-theme="light"][data-identity-preset="signal"]{--nv-bg:#f1f7f7;--nv-bg-2:#e9f2f2;--nv-surface-2:#f5fafa;--nv-surface-3:#e8f1f1;--nv-line:rgba(10,60,60,.08);--nv-line-2:rgba(10,60,60,.14);--nv-line-3:rgba(10,60,60,.23);--nv-text:#081a1b;--nv-text-2:#2f4a4b;--nv-muted:#5a7576}

/* Identity Studio options */
html[data-identity-engine="nova"][data-identity-corners="square"]{--nv-r-xs:2px;--nv-r-sm:3px;--nv-r-md:4px;--nv-r-lg:5px;--nv-r-xl:6px}
html[data-identity-engine="nova"][data-identity-corners="notched"]{--nv-r-xs:4px;--nv-r-sm:6px;--nv-r-md:8px;--nv-r-lg:10px;--nv-r-xl:14px}
html[data-identity-engine="nova"][data-density="compact"]{--nv-gap:14px;--nv-pad:16px;--nv-topbar:56px}
html[data-identity-engine="nova"][data-identity-surface="solid"]{--nv-surface:var(--nv-surface-solid);--nv-blur:none}
html[data-identity-engine="nova"][data-identity-surface="paper"]{--nv-surface:var(--nv-surface-solid);--nv-shadow-2:var(--nv-shadow-1);--nv-blur:none}
html[data-identity-engine="nova"][data-identity-nav="compact"]{--nv-sidebar:232px}
html[data-identity-engine="nova"][data-identity-nav="floating"]{--nv-sidebar:276px}

/* --------------------------------------------------------------------------
   2. Base
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] body{
  font-family:var(--nv-font);
  background:var(--nv-bg);
  color:var(--nv-text);
  font-size:15px;line-height:1.6;letter-spacing:0;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  font-feature-settings:"kern" 1;
}
/* atmospheric depth behind the star field */
html[data-identity-engine="nova"] body::before{
  content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;opacity:1;mask-image:none;
  background:
    radial-gradient(1100px 620px at 85% -10%,color-mix(in srgb,var(--nv-accent) 9%,transparent),transparent 62%),
    radial-gradient(900px 560px at 5% 110%,color-mix(in srgb,var(--nv-violet) 10%,transparent),transparent 60%),
    radial-gradient(700px 420px at 40% 40%,color-mix(in srgb,var(--nv-info) 4%,transparent),transparent 70%),
    var(--nv-bg);
}
html[data-identity-engine="nova"] body::after{content:none}
html[data-identity-engine="nova"][data-theme="light"] body::before{
  background:
    radial-gradient(1100px 620px at 85% -10%,color-mix(in srgb,var(--nv-accent) 14%,transparent),transparent 60%),
    radial-gradient(900px 560px at 0% 110%,color-mix(in srgb,var(--nv-violet) 8%,transparent),transparent 60%),
    var(--nv-bg);
}
html[data-identity-engine="nova"] ::selection{background:color-mix(in srgb,var(--nv-accent) 32%,transparent);color:var(--nv-text)}
html[data-identity-engine="nova"] :focus-visible{outline:2px solid var(--nv-accent);outline-offset:2px}
html[data-identity-engine="nova"] ::-webkit-scrollbar{width:10px;height:10px}
html[data-identity-engine="nova"] ::-webkit-scrollbar-thumb{background:var(--nv-line-2);border:3px solid transparent;background-clip:padding-box;border-radius:999px}
html[data-identity-engine="nova"] ::-webkit-scrollbar-thumb:hover{background:var(--nv-line-3);background-clip:padding-box}
html[data-identity-engine="nova"] ::-webkit-scrollbar-track{background:transparent}

html[data-identity-engine="nova"] :is(h1,h2,h3,h4,h5,h6){color:var(--nv-text);font-family:var(--nv-font);letter-spacing:-.012em;line-height:1.25;text-shadow:none}
html[data-identity-engine="nova"] h1{font-size:clamp(1.55rem,1.1rem + 1.2vw,2.15rem);font-weight:700}
html[data-identity-engine="nova"] h2{font-size:clamp(1.15rem,1rem + .45vw,1.38rem);font-weight:650}
html[data-identity-engine="nova"] h3{font-size:1.05rem;font-weight:650}
html[data-identity-engine="nova"] h4{font-size:.95rem;font-weight:650}
html[data-identity-engine="nova"] :is(strong,b,th){color:inherit}
html[data-identity-engine="nova"] :is(p,li,td,label,dd){color:var(--nv-text-2)}
html[data-identity-engine="nova"] :is(small,.muted,.dv-muted,.ip-help,.help,.hint){color:var(--nv-muted)}
html[data-identity-engine="nova"] a{color:var(--nv-accent-text);text-decoration:none;transition:color var(--nv-fast) var(--nv-ease)}
html[data-identity-engine="nova"] a:hover{color:var(--nv-text)}
html[data-identity-engine="nova"] :is(code,kbd,pre,samp){font-family:var(--nv-mono)}
html[data-identity-engine="nova"] kbd{display:inline-flex;align-items:center;gap:2px;min-height:20px;padding:1px 6px;border:1px solid var(--nv-line-2);border-bottom-width:2px;border-radius:var(--nv-r-xs);background:var(--nv-surface-2);color:var(--nv-muted);font-size:10.5px;font-weight:600;line-height:1}
html[data-identity-engine="nova"] hr{border:0;border-top:1px solid var(--nv-line);margin:20px 0}
html[data-identity-engine="nova"] img{max-width:100%}
html[data-identity-engine="nova"] [hidden]{display:none!important}

/* --------------------------------------------------------------------------
   3. Star field canvas (driven by modulyra-nova-v400.js)
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] .nova-sky{position:fixed;inset:0;z-index:-1;width:100vw;height:100vh;pointer-events:none;display:block;opacity:1;transition:opacity .6s var(--nv-ease)}
html[data-identity-engine="nova"][data-theme="light"] .nova-sky{opacity:.55;mix-blend-mode:multiply}
html[data-identity-engine="nova"][data-identity-motion="none"] .nova-sky{opacity:.6}
html[data-identity-engine="nova"] .modulyra-stellar-field,
html[data-identity-engine="nova"] .modulyra-najd-field{display:none!important}

/* --------------------------------------------------------------------------
   4. Shell — topbar
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] .topbar{
  min-height:var(--nv-topbar);height:auto;padding:0;
  background:var(--nv-chrome);
  -webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);
  border-bottom:1px solid var(--nv-line);
  box-shadow:none;z-index:40;
  transition:box-shadow var(--nv-normal) var(--nv-ease),background var(--nv-normal) var(--nv-ease);
}
html[data-identity-engine="nova"][data-nova-scrolled="1"] .topbar{box-shadow:0 10px 30px -18px rgba(0,0,0,.65)}
html[data-identity-engine="nova"] .topbar::before,html[data-identity-engine="nova"] .topbar::after{content:none}
html[data-identity-engine="nova"] .command-shell{
  width:100%;max-width:none;margin:0;padding:0 clamp(12px,1.6vw,22px);
  min-height:var(--nv-topbar);
  display:flex;flex-wrap:nowrap;align-items:center;gap:12px;
}
html[data-identity-engine="nova"] .command-shell > .brand{flex:0 1 auto;max-width:300px}
html[data-identity-engine="nova"] .command-shell > .global-search{flex:1 1 380px;margin-inline:auto}
html[data-identity-engine="nova"] .command-shell > .command-actions{flex:none;margin-inline-start:auto}
html[data-identity-engine="nova"] .shell-toggle{
  width:38px;height:38px;display:inline-grid;place-items:center;padding:0;margin:0;
  border:1px solid transparent;border-radius:var(--nv-r-sm);background:transparent;color:var(--nv-text-2);cursor:pointer;font-size:0;
}
html[data-identity-engine="nova"] .shell-toggle:hover{background:var(--nv-surface-2);border-color:var(--nv-line);color:var(--nv-text)}
html[data-identity-engine="nova"] :is(.shell-toggle,.top-action,.app-launch-button,.global-search,.platform-nav-search) svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}

html[data-identity-engine="nova"] .brand{display:flex;align-items:center;gap:11px;min-width:0;color:var(--nv-text);text-decoration:none}
html[data-identity-engine="nova"] .brand img{width:34px;height:34px;border-radius:10px;flex:none;box-shadow:0 0 0 1px var(--nv-line-2),0 6px 18px -6px color-mix(in srgb,var(--nv-accent) 55%,transparent);background:var(--nv-surface-2)}
html[data-identity-engine="nova"] .brand div{display:flex;flex-direction:column;min-width:0;line-height:1.2}
html[data-identity-engine="nova"] .brand strong{font-size:14.5px;font-weight:700;color:var(--nv-text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.01em}
html[data-identity-engine="nova"] .brand small{font-size:11.5px;color:var(--nv-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:6px}
html[data-identity-engine="nova"] .brand::before,html[data-identity-engine="nova"] .brand::after{content:none}

html[data-identity-engine="nova"] .app-launch-button{
  display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 12px;
  border:1px solid var(--nv-line-2);border-radius:var(--nv-r-sm);background:var(--nv-surface-2);color:var(--nv-text-2);font:600 13px/1 var(--nv-font);cursor:pointer;
  transition:all var(--nv-fast) var(--nv-ease);
}
html[data-identity-engine="nova"] .app-launch-button:hover{color:var(--nv-text);border-color:var(--nv-accent-line);background:var(--nv-surface-3)}
html[data-identity-engine="nova"] .app-launch-button > span{display:inline-grid;place-items:center;font-size:0;color:var(--nv-accent-text)}

html[data-identity-engine="nova"] .global-search{
  position:relative;display:flex;align-items:center;gap:8px;height:40px;padding:0 10px 0 12px;width:100%;max-width:560px;justify-self:center;
  border:1px solid var(--nv-line-2);border-radius:var(--nv-r-md);background:color-mix(in srgb,var(--nv-field) 80%,transparent);
  transition:border-color var(--nv-fast) var(--nv-ease),box-shadow var(--nv-fast) var(--nv-ease),background var(--nv-fast);
}
html[data-identity-engine="nova"] .global-search:focus-within{border-color:var(--nv-accent-line);box-shadow:var(--nv-focus);background:var(--nv-field)}
html[data-identity-engine="nova"] .global-search > span{position:static;inset:auto;transform:none;flex:none;display:inline-grid;place-items:center;color:var(--nv-muted);font-size:0}
html[data-identity-engine="nova"] .global-search input{flex:1;min-width:0;height:100%;padding:0;margin:0;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--nv-text);font:500 13.5px/1 var(--nv-font)}
html[data-identity-engine="nova"] .global-search input::placeholder{color:var(--nv-faint)}
html[data-identity-engine="nova"] .global-search kbd{position:static;flex:none}
html[data-identity-engine="nova"] .live-search-results{
  position:absolute;top:calc(100% + 8px);inset-inline:0;z-index:60;max-height:min(70vh,520px);overflow:auto;padding:6px;
  background:var(--nv-surface-solid);border:1px solid var(--nv-line-2);border-radius:var(--nv-r-lg);box-shadow:var(--nv-shadow-3);
}
html[data-identity-engine="nova"] .live-search-results a{display:flex;gap:10px;align-items:center;padding:9px 10px;border-radius:var(--nv-r-sm);color:var(--nv-text-2)}
html[data-identity-engine="nova"] .live-search-results a:hover,html[data-identity-engine="nova"] .live-search-results a.active{background:var(--nv-surface-2);color:var(--nv-text)}

html[data-identity-engine="nova"] .command-actions{display:flex;align-items:center;gap:4px;flex-wrap:nowrap}
html[data-identity-engine="nova"] .command-actions form{margin:0;display:contents}
html[data-identity-engine="nova"] .top-action{
  position:relative;width:38px;height:38px;min-width:38px;padding:0;margin:0;display:inline-grid;place-items:center;
  border:1px solid transparent;border-radius:var(--nv-r-sm);background:transparent;color:var(--nv-text-2);
  font-size:0;line-height:1;cursor:pointer;box-shadow:none;transition:all var(--nv-fast) var(--nv-ease);
}
html[data-identity-engine="nova"] .top-action:hover{background:var(--nv-surface-2);border-color:var(--nv-line);color:var(--nv-text);transform:none}
html[data-identity-engine="nova"] .top-action.primary-mini{background:var(--nv-accent);color:var(--nv-accent-ink);border-color:transparent;box-shadow:0 6px 18px -8px var(--nv-accent)}
html[data-identity-engine="nova"] .top-action.primary-mini:hover{filter:brightness(1.06);background:var(--nv-accent);color:var(--nv-accent-ink)}
html[data-identity-engine="nova"] .top-action em{
  position:absolute;top:3px;inset-inline-end:3px;min-width:16px;height:16px;padding:0 4px;display:grid;place-items:center;
  border-radius:999px;background:var(--nv-danger);color:#fff;font:700 9.5px/1 var(--nv-font);font-style:normal;box-shadow:0 0 0 2px var(--nv-bg)
}
html[data-identity-engine="nova"] .top-action::before,html[data-identity-engine="nova"] .top-action::after{content:none}
html[data-identity-engine="nova"] .user-chip{
  display:flex;align-items:center;gap:9px;height:40px;padding:0 4px 0 10px;margin-inline-start:4px;
  border:1px solid var(--nv-line);border-radius:var(--nv-r-pill);background:var(--nv-surface-2);color:var(--nv-text);text-decoration:none;
  transition:border-color var(--nv-fast) var(--nv-ease);
}
html[data-identity-engine="nova"][dir="rtl"] .user-chip{padding:0 10px 0 4px}
html[data-identity-engine="nova"] .user-chip:hover{border-color:var(--nv-line-3)}
html[data-identity-engine="nova"] .user-chip > span{
  order:2;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:linear-gradient(135deg,var(--nv-accent),var(--nv-accent-2));color:var(--nv-accent-ink);font:700 13px/1 var(--nv-font);
}
html[data-identity-engine="nova"] .user-chip div{display:flex;flex-direction:column;line-height:1.15;min-width:0}
html[data-identity-engine="nova"] .user-chip strong{font-size:12.5px;font-weight:650;color:var(--nv-text);white-space:nowrap;max-width:140px;overflow:hidden;text-overflow:ellipsis}
html[data-identity-engine="nova"] .user-chip small{font-size:10.5px;color:var(--nv-muted);white-space:nowrap}

/* language slider inside topbar */
html[data-identity-engine="nova"] .command-actions .language-switcher{margin-inline:4px}

/* Workspace context bar (tenant) */
html[data-identity-engine="nova"] .workspace-context-bar{
  position:sticky;top:var(--nv-topbar);z-index:35;display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:44px;padding:6px clamp(12px,1.6vw,22px);margin:0;
  background:color-mix(in srgb,var(--nv-chrome) 92%,transparent);-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);
  border-bottom:1px solid var(--nv-line);
}
html[data-identity-engine="nova"] .workspace-context-bar form{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:0}
html[data-identity-engine="nova"] .workspace-context-bar label{display:flex;align-items:center;gap:8px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;min-height:0;color:var(--nv-muted);font-size:12px;font-weight:600}
html[data-identity-engine="nova"] .workspace-context-bar label span{color:var(--nv-muted);white-space:nowrap}
html[data-identity-engine="nova"] .workspace-context-bar select{height:30px;min-height:30px;width:auto;min-width:150px;padding:0 30px 0 10px;font-size:12.5px;border-radius:var(--nv-r-sm)}
html[data-identity-engine="nova"] .workspace-context-bar > div{display:flex;align-items:center;gap:8px;padding:0;border:0;background:transparent;font-size:12px;color:var(--nv-muted)}
html[data-identity-engine="nova"] .workspace-context-bar > div strong{color:var(--nv-text);font-weight:650;padding:3px 10px;border-radius:999px;background:var(--nv-accent-soft);border:1px solid var(--nv-accent-line)}

html[data-identity-engine="nova"] .trial-countdown-bar{
  display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:8px clamp(12px,1.6vw,22px);
  background:linear-gradient(90deg,var(--nv-accent-2-soft),transparent 70%);border-bottom:1px solid var(--nv-line);font-size:13px
}
html[data-identity-engine="nova"] .trial-countdown-bar > div{display:flex;align-items:center;gap:10px}
html[data-identity-engine="nova"] .support-banner{background:color-mix(in srgb,var(--nv-warning) 14%,var(--nv-bg));border-bottom:1px solid color-mix(in srgb,var(--nv-warning) 40%,transparent);color:var(--nv-text)}

/* page progress */
html[data-identity-engine="nova"] .page-progress{height:2px;background:linear-gradient(90deg,var(--nv-accent),var(--nv-accent-2));box-shadow:0 0 12px var(--nv-accent);z-index:80}

/* --------------------------------------------------------------------------
   5. Shell — layout & sidebar
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] .command-layout{
  display:grid;grid-template-columns:var(--nv-sidebar) minmax(0,1fr);min-height:calc(100vh - var(--nv-topbar));gap:0;
  transition:grid-template-columns var(--nv-normal) var(--nv-ease);
}
html[data-identity-engine="nova"] .command-sidebar{
  position:sticky;top:var(--nv-topbar);height:calc(100vh - var(--nv-topbar));overflow-y:auto;overflow-x:hidden;
  padding:14px 10px 18px;margin:0;
  background:color-mix(in srgb,var(--nv-chrome) 70%,transparent);
  -webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);
  border:0;border-inline-end:1px solid var(--nv-line);
  scrollbar-width:thin;scrollbar-color:transparent transparent;
  display:flex;flex-direction:column;gap:2px;
}
html[data-identity-engine="nova"] .command-sidebar:hover{scrollbar-color:var(--nv-line-2) transparent}
html[data-identity-engine="nova"] .command-sidebar::before,html[data-identity-engine="nova"] .command-sidebar::after{content:none}
html[data-identity-engine="nova"][data-identity-nav="floating"] .command-sidebar{margin:12px;margin-inline-end:0;height:calc(100vh - var(--nv-topbar) - 24px);top:calc(var(--nv-topbar) + 12px);border:1px solid var(--nv-line);border-radius:var(--nv-r-xl);background:var(--nv-surface)}

html[data-identity-engine="nova"] .sidebar-label{
  margin:16px 10px 6px;padding:0;color:var(--nv-faint);font:700 10.5px/1.2 var(--nv-font);letter-spacing:.08em;text-transform:uppercase
}
html[data-identity-engine="nova"] .sidebar-label:first-of-type{margin-top:8px}

html[data-identity-engine="nova"] .command-sidebar > a,
html[data-identity-engine="nova"] .platform-nav-items > a,
html[data-identity-engine="nova"] .sidebar-footer-controls button{
  position:relative;display:flex;align-items:center;gap:10px;min-height:36px;padding:7px 10px;margin:0;
  border:1px solid transparent;border-radius:var(--nv-r-sm);background:transparent;box-shadow:none;
  color:var(--nv-text-2);font:500 13.5px/1.3 var(--nv-font);text-decoration:none;cursor:pointer;width:100%;text-align:start;
  transition:background var(--nv-fast) var(--nv-ease),color var(--nv-fast) var(--nv-ease),border-color var(--nv-fast);
}
html[data-identity-engine="nova"] .command-sidebar > a span,
html[data-identity-engine="nova"] .platform-nav-items > a span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-identity-engine="nova"] .command-sidebar > a > i,
html[data-identity-engine="nova"] .platform-nav-items > a > i,
html[data-identity-engine="nova"] .sidebar-footer-controls button > i{
  width:28px;height:28px;flex:none;display:inline-grid;place-items:center;border-radius:var(--nv-r-xs);
  font-style:normal;font-size:14px;line-height:1;color:var(--nv-muted);background:transparent;border:0;
  transition:color var(--nv-fast),background var(--nv-fast);
}
html[data-identity-engine="nova"] :is(.command-sidebar,.platform-nav,.mobile-bottom-nav) i svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html[data-identity-engine="nova"] .command-sidebar > a:hover,
html[data-identity-engine="nova"] .platform-nav-items > a:hover,
html[data-identity-engine="nova"] .sidebar-footer-controls button:hover{background:var(--nv-surface-2);color:var(--nv-text)}
html[data-identity-engine="nova"] .command-sidebar > a:hover > i,
html[data-identity-engine="nova"] .platform-nav-items > a:hover > i{color:var(--nv-text)}
html[data-identity-engine="nova"] .command-sidebar > a.active,
html[data-identity-engine="nova"] .platform-nav-items > a.active{
  background:linear-gradient(90deg,var(--nv-accent-soft),color-mix(in srgb,var(--nv-accent) 4%,transparent));
  border-color:color-mix(in srgb,var(--nv-accent) 22%,transparent);color:var(--nv-text);font-weight:600;
}
html[data-identity-engine="nova"][dir="rtl"] .command-sidebar > a.active,
html[data-identity-engine="nova"][dir="rtl"] .platform-nav-items > a.active{background:linear-gradient(270deg,var(--nv-accent-soft),color-mix(in srgb,var(--nv-accent) 4%,transparent))}
html[data-identity-engine="nova"] .command-sidebar > a.active > i,
html[data-identity-engine="nova"] .platform-nav-items > a.active > i{color:var(--nv-accent-text);background:color-mix(in srgb,var(--nv-accent) 12%,transparent)}
html[data-identity-engine="nova"] .command-sidebar > a.active::before,
html[data-identity-engine="nova"] .platform-nav-items > a.active::before{
  content:"";position:absolute;inset-inline-start:-11px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--nv-accent);box-shadow:0 0 12px var(--nv-accent)
}
html[data-identity-engine="nova"][dir="rtl"] .command-sidebar > a.active::before,
html[data-identity-engine="nova"][dir="rtl"] .platform-nav-items > a.active::before{border-radius:3px 0 0 3px}
html[data-identity-engine="nova"] .command-sidebar > a::after,
html[data-identity-engine="nova"] .platform-nav-items > a::after{content:none}
html[data-identity-engine="nova"] .command-sidebar a em,
html[data-identity-engine="nova"] .command-sidebar a b:not([aria-hidden]){
  margin-inline-start:auto;min-width:20px;height:20px;padding:0 6px;display:inline-grid;place-items:center;border-radius:999px;
  background:var(--nv-accent-soft);color:var(--nv-accent-text);font:700 10.5px/1 var(--nv-font);font-style:normal
}
html[data-identity-engine="nova"] .sidebar-apps-link{margin-bottom:6px!important;border-color:var(--nv-line)!important;background:var(--nv-surface-2)!important}

/* platform grouped navigation */
html[data-identity-engine="nova"] .platform-sidebar-tools{padding:2px 2px 10px;margin:0}
html[data-identity-engine="nova"] .platform-nav-search{
  display:flex;align-items:center;gap:8px;height:36px;padding:0 8px 0 10px;
  border:1px solid var(--nv-line);border-radius:var(--nv-r-sm);background:color-mix(in srgb,var(--nv-field) 70%,transparent);
}
html[data-identity-engine="nova"] .platform-nav-search:focus-within{border-color:var(--nv-accent-line);box-shadow:var(--nv-focus)}
html[data-identity-engine="nova"] .platform-nav-search > span{position:static;inset:auto;transform:none;display:inline-grid;color:var(--nv-faint);font-size:0;flex:none}
html[data-identity-engine="nova"] .platform-nav-search kbd{position:static;flex:none}
html[data-identity-engine="nova"] .platform-nav-search > span svg{width:15px;height:15px}
html[data-identity-engine="nova"] .platform-nav-search input{flex:1;min-width:0;height:100%;padding:0;border:0!important;background:transparent!important;box-shadow:none!important;color:var(--nv-text);font-size:13px}
html[data-identity-engine="nova"] .platform-nav{display:flex;flex-direction:column;gap:2px}
html[data-identity-engine="nova"] .platform-nav-group{border:0!important;border-radius:0;background:transparent!important;overflow:visible;margin:0 0 4px;box-shadow:none!important}
html[data-identity-engine="nova"] .platform-nav-group::before,html[data-identity-engine="nova"] .platform-nav-group::after{content:none!important}
html[data-identity-engine="nova"] .platform-nav-group > summary{
  list-style:none;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px;padding:6px 10px;margin:6px 0 2px;
  border-radius:var(--nv-r-xs);cursor:pointer;color:var(--nv-faint);font:700 10.5px/1.2 var(--nv-font);letter-spacing:.08em;text-transform:uppercase;background:transparent!important;border:0!important
}
html[data-identity-engine="nova"] .platform-nav-group > summary::-webkit-details-marker{display:none}
html[data-identity-engine="nova"] .platform-nav-group > summary::before,html[data-identity-engine="nova"] .platform-nav-group > summary::after{content:none!important}
html[data-identity-engine="nova"] .platform-nav-group > summary:hover{color:var(--nv-text-2)}
html[data-identity-engine="nova"] .platform-nav-group > summary span{display:flex;align-items:center;gap:8px;color:inherit}
html[data-identity-engine="nova"] .platform-nav-group > summary span i{display:none}
html[data-identity-engine="nova"] .platform-nav-group > summary b{color:inherit;font-size:12px;transition:transform var(--nv-normal) var(--nv-ease);font-weight:400}
html[data-identity-engine="nova"] .platform-nav-group:not([open]) > summary b{transform:rotate(90deg)}
html[data-identity-engine="nova"][dir="rtl"] .platform-nav-group:not([open]) > summary b{transform:rotate(-90deg)}
html[data-identity-engine="nova"] .platform-nav-items{display:flex;flex-direction:column;gap:1px;padding:0;border:0;background:transparent}
html[data-identity-engine="nova"] .platform-nav-empty{padding:10px;color:var(--nv-muted);font-size:12.5px}

html[data-identity-engine="nova"] .sidebar-foot,
html[data-identity-engine="nova"] .sidebar-footer-controls{margin-top:auto;padding:10px;border:1px solid var(--nv-line);border-radius:var(--nv-r-md);background:var(--nv-surface-2);display:flex;align-items:center;gap:10px}
html[data-identity-engine="nova"] .sidebar-footer-controls{padding:4px}
html[data-identity-engine="nova"] .sidebar-foot strong{display:block;font-size:12.5px;color:var(--nv-text)}
html[data-identity-engine="nova"] .sidebar-foot small{font-size:11px;color:var(--nv-muted)}
html[data-identity-engine="nova"] .status-dot,html[data-identity-engine="nova"] .pulse-dot{
  width:8px;height:8px;border-radius:50%;display:inline-block;flex:none;background:var(--nv-success);box-shadow:0 0 0 3px color-mix(in srgb,var(--nv-success) 20%,transparent);animation:nova-pulse 2.4s ease-in-out infinite
}
@keyframes nova-pulse{0%,100%{box-shadow:0 0 0 3px color-mix(in srgb,var(--nv-success) 22%,transparent)}50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--nv-success) 0%,transparent)}}

/* collapsed sidebar (toggle / "apps" navigation mode) */
html[data-identity-engine="nova"] :is(.command-layout.sidebar-collapsed,.command-layout.navigation-apps){grid-template-columns:72px minmax(0,1fr)}
html[data-identity-engine="nova"] :is(.sidebar-collapsed,.navigation-apps) .command-sidebar{padding-inline:10px}
html[data-identity-engine="nova"] :is(.sidebar-collapsed,.navigation-apps) :is(.command-sidebar > a,.platform-nav-items > a,.sidebar-footer-controls button){justify-content:center;padding:6px}
html[data-identity-engine="nova"] :is(.sidebar-collapsed,.navigation-apps) :is(.command-sidebar a span,.command-sidebar a em,.sidebar-label,.sidebar-footer-controls span,.platform-nav-group > summary,.platform-sidebar-tools,.sidebar-foot div){display:none}
html[data-identity-engine="nova"] :is(.sidebar-collapsed,.navigation-apps) .platform-nav-group{border-top:1px solid var(--nv-line)!important;padding-top:6px}
html[data-identity-engine="nova"] :is(.sidebar-collapsed,.navigation-apps) .platform-nav-group:not([open]) .platform-nav-items{display:flex}
html[data-identity-engine="nova"] :is(.sidebar-collapsed,.navigation-apps) :is(.command-sidebar > a.active,.platform-nav-items > a.active)::before{inset-inline-start:-10px}

/* main */
html[data-identity-engine="nova"] .command-main,
html[data-identity-engine="nova"] .main-area{
  min-width:0;width:100%;max-width:calc(var(--nv-content) + 80px);margin-inline:auto;
  padding:clamp(18px,2.2vw,32px) clamp(14px,2.4vw,40px) 88px;background:transparent;
}
html[data-identity-engine="nova"] .command-main > *{max-width:100%}

/* mobile bottom navigation */
html[data-identity-engine="nova"] .mobile-bottom-nav{
  background:var(--nv-chrome);-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);border-top:1px solid var(--nv-line);box-shadow:0 -12px 30px -18px rgba(0,0,0,.6)
}
html[data-identity-engine="nova"] .mobile-bottom-nav a{color:var(--nv-muted);font-size:10.5px;font-weight:600}
html[data-identity-engine="nova"] .mobile-bottom-nav a i{font-style:normal;display:grid;place-items:center}
html[data-identity-engine="nova"] .mobile-bottom-nav a.active{color:var(--nv-accent-text)}

/* --------------------------------------------------------------------------
   6. Surfaces — panels & cards (every module family resolves here)
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] :is(
  .panel,.ip-panel,.ip-card,.dv-card,.ctr2-card,.ctr-panel,.r2-card,.ent-card,.crm2-card,.hr-r2-card,.acc-r2-card,
  .uw26-panel,.mbx-panel,.profile360-panel,.project360-panel,.owner-table-panel,.owner-form-card,.bc-form-card,
  .list-page-panel,.portal-card,.dashboard-widget,.developer-registration-card,.subscriber-alert-card,
  .module-card,.plan-card,.settings-card,.form-card,.content-card,.info-card,.detail-card,.summary-card,
  .diagnostic-card,.owner-hub-card,.help-owner-card,.identity-preview-card,
  [data-theme-surface="panel"],[data-theme-surface="card"]
){
  background:var(--nv-surface);
  -webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);
  border:1px solid var(--nv-line);
  border-radius:var(--nv-r-lg);
  box-shadow:var(--nv-shadow-2);
  color:var(--nv-text-2);
  clip-path:none;
}
html[data-identity-engine="nova"] :is(.panel,.ip-panel,.uw26-panel,.mbx-panel,.profile360-panel,.project360-panel,.owner-table-panel,.list-page-panel,.dashboard-widget,.ctr-panel,[data-theme-surface="panel"]){padding:var(--nv-pad);margin-bottom:var(--nv-gap)}
html[data-identity-engine="nova"] :is(.panel,.ip-panel,.ip-card,.dv-card,.ctr2-card,.r2-card,.ent-card,.crm2-card,.hr-r2-card,.uw26-panel,.dashboard-widget,[data-theme-surface="panel"],[data-theme-surface="card"])::before{content:none}
html[data-identity-engine="nova"] :is(.panel,.ip-panel,.dashboard-widget,[data-theme-surface="panel"])::after{content:none}
/* notched corners option: a quiet accent tick instead of clip-paths */
html[data-identity-engine="nova"][data-identity-corners="notched"] :is(.panel,.ip-panel,.dashboard-widget,[data-theme-surface="panel"]){
  background-image:linear-gradient(var(--nv-accent),var(--nv-accent)),linear-gradient(var(--nv-accent),var(--nv-accent));
  background-size:14px 2px,2px 14px;background-repeat:no-repeat;background-position:top 0 left 0,top 0 left 0;
  background-color:var(--nv-surface)
}
html[data-identity-engine="nova"][data-identity-corners="notched"][dir="rtl"] :is(.panel,.ip-panel,.dashboard-widget,[data-theme-surface="panel"]){background-position:top 0 right 0,top 0 right 0}

/* interactive cards lift subtly */
html[data-identity-engine="nova"] :is(a.ip-card,a.ip-quick,a.portal-card,a.center-launch-card,a.ctr2-card,a.r2-card,a.ent-card,a.module-card,a[data-theme-surface="card"],a[data-theme-surface="metric"],.odoo-app-card){
  transition:transform var(--nv-normal) var(--nv-ease),border-color var(--nv-normal) var(--nv-ease),box-shadow var(--nv-normal) var(--nv-ease),background var(--nv-normal);
  text-decoration:none
}
html[data-identity-engine="nova"] :is(a.ip-card,a.ip-quick,a.portal-card,a.center-launch-card,a.ctr2-card,a.r2-card,a.ent-card,a.module-card,a[data-theme-surface="card"],a[data-theme-surface="metric"]):hover{
  transform:translateY(-2px);border-color:var(--nv-accent-line);box-shadow:var(--nv-shadow-2),0 16px 36px -20px color-mix(in srgb,var(--nv-accent) 55%,transparent)
}
html[data-identity-engine="nova"] :is(.ip-quick,.center-launch-card,.portal-list-item,.ent-row,.ctr2-row,.crm2-row,.hr-r2-row){
  background:var(--nv-surface-2);border:1px solid var(--nv-line);border-radius:var(--nv-r-md);color:var(--nv-text-2);box-shadow:none
}

/* Page heads & heroes — calm, editorial */
html[data-identity-engine="nova"] :is(.page-head,.command-page-head,.owner-head,.center-page-head,.dv-page-head,.bc-page-head,.mbx-page-head,.crm2-head){
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 24px;
  margin:0 0 var(--nv-gap);padding:0 0 18px;background:transparent;border:0;border-bottom:1px solid var(--nv-line);border-radius:0;box-shadow:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;min-height:0;clip-path:none
}
html[data-identity-engine="nova"] :is(.page-head,.command-page-head,.owner-head,.center-page-head,.dv-page-head,.bc-page-head,.mbx-page-head,.crm2-head)::before,
html[data-identity-engine="nova"] :is(.page-head,.command-page-head,.owner-head,.center-page-head,.dv-page-head,.bc-page-head,.mbx-page-head,.crm2-head)::after{content:none}
html[data-identity-engine="nova"] :is(.page-head,.command-page-head,.owner-head,.center-page-head,.dv-page-head,.bc-page-head,.mbx-page-head,.crm2-head) h1{margin:4px 0 6px;font-size:clamp(1.45rem,1.05rem + 1vw,1.95rem);font-weight:700;line-height:1.2;color:var(--nv-text);text-shadow:none}
html[data-identity-engine="nova"] :is(.page-head,.command-page-head,.owner-head,.center-page-head,.dv-page-head,.bc-page-head,.mbx-page-head,.crm2-head) p{margin:0;max-width:72ch;color:var(--nv-muted);font-size:14.5px;line-height:1.65}

html[data-identity-engine="nova"] :is(.ip-hero,.r2-hero,.ent-hero,.ctr2-hero,.hr-r2-hero,.uw26-hero,.ip-record-hero,.owner-dashboard-head){
  position:relative;overflow:hidden;
  display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:18px 28px;
  padding:clamp(20px,2.4vw,30px);margin:0 0 var(--nv-gap);
  background:
    radial-gradient(600px 220px at 100% 0%,color-mix(in srgb,var(--nv-accent) 12%,transparent),transparent 70%),
    radial-gradient(500px 200px at 0% 100%,color-mix(in srgb,var(--nv-violet) 9%,transparent),transparent 70%),
    var(--nv-surface);
  -webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);
  border:1px solid var(--nv-line);border-radius:var(--nv-r-xl);box-shadow:var(--nv-shadow-2);clip-path:none;min-height:0
}
html[data-identity-engine="nova"][dir="rtl"] :is(.ip-hero,.r2-hero,.ent-hero,.ctr2-hero,.hr-r2-hero,.uw26-hero,.ip-record-hero,.owner-dashboard-head){
  background:
    radial-gradient(600px 220px at 0% 0%,color-mix(in srgb,var(--nv-accent) 12%,transparent),transparent 70%),
    radial-gradient(500px 200px at 100% 100%,color-mix(in srgb,var(--nv-violet) 9%,transparent),transparent 70%),
    var(--nv-surface);
}
html[data-identity-engine="nova"] :is(.ip-hero,.r2-hero,.ent-hero,.ctr2-hero,.hr-r2-hero,.uw26-hero,.ip-record-hero,.owner-dashboard-head)::before{
  content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--nv-accent) 55%,transparent),transparent) top/100% 1px no-repeat;opacity:.7
}
html[data-identity-engine="nova"] :is(.ip-hero,.r2-hero,.ent-hero,.ctr2-hero,.hr-r2-hero,.uw26-hero,.ip-record-hero,.owner-dashboard-head)::after{content:none}
html[data-identity-engine="nova"] :is(.ip-hero,.r2-hero,.ent-hero,.ctr2-hero,.hr-r2-hero,.uw26-hero,.ip-record-hero,.owner-dashboard-head) h1{margin:6px 0 8px;font-size:clamp(1.5rem,1.05rem + 1.25vw,2.2rem);font-weight:700;color:var(--nv-text);text-shadow:none;line-height:1.18}
html[data-identity-engine="nova"] :is(.ip-hero,.r2-hero,.ent-hero,.ctr2-hero,.hr-r2-hero,.uw26-hero,.ip-record-hero,.owner-dashboard-head) p{margin:0;max-width:70ch;color:var(--nv-muted);font-size:14.5px}
html[data-identity-engine="nova"] .ip-hero > *,html[data-identity-engine="nova"] .owner-dashboard-head > *{position:relative;z-index:1}

/* eyebrow labels */
html[data-identity-engine="nova"] :is(.eyebrow,.ip-eyebrow,.ctr2-eyebrow,.dv-eyebrow,.r2-eyebrow){
  display:inline-flex;align-items:center;gap:7px;margin:0;color:var(--nv-accent-text);
  font:650 11px/1.3 var(--nv-font);letter-spacing:.09em;text-transform:uppercase;background:none;border:0;padding:0
}
html[data-identity-engine="nova"] :is(.eyebrow,.ip-eyebrow,.ctr2-eyebrow)::before{content:"";width:6px;height:6px;border-radius:2px;background:var(--nv-accent);box-shadow:0 0 10px var(--nv-accent);flex:none}
html[data-identity-engine="nova"] :is(.eyebrow,.ip-eyebrow,.ctr2-eyebrow)::after{content:none}

/* section heads inside panels */
html[data-identity-engine="nova"] :is(.section-head,.ip-panel-head,.r2-section-head,.panel-heading,.owner-table-head){
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;
  margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid var(--nv-line);background:transparent
}
html[data-identity-engine="nova"] :is(.section-head,.ip-panel-head,.r2-section-head,.panel-heading,.owner-table-head) :is(h2,h3){margin:2px 0 0;font-size:1.06rem;font-weight:650;color:var(--nv-text)}
html[data-identity-engine="nova"] :is(.section-head,.ip-panel-head,.r2-section-head,.panel-heading,.owner-table-head) p{margin:2px 0 0;color:var(--nv-muted);font-size:13px}
html[data-identity-engine="nova"] .owner-section-title{color:var(--nv-text);font-weight:650}

/* --------------------------------------------------------------------------
   7. Metrics / KPIs
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] :is(.metric,.owner-kpi,.ip-stat,.r2-kpi,.crm2-kpi,.hr-r2-stat,.metric-ribbon > article,[data-theme-surface="metric"]){
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;gap:6px;justify-content:flex-start;
  padding:16px 18px;min-height:0;
  background:var(--nv-surface);-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);
  border:1px solid var(--nv-line);border-radius:var(--nv-r-lg);box-shadow:var(--nv-shadow-1);color:var(--nv-text-2);clip-path:none;
}
html[data-identity-engine="nova"] :is(.metric,.owner-kpi,.ip-stat,.r2-kpi,.crm2-kpi,.hr-r2-stat,.metric-ribbon > article,[data-theme-surface="metric"])::before{
  content:"";position:absolute;inset-inline-start:0;top:14px;bottom:14px;width:2px;border-radius:2px;background:var(--nv-accent);opacity:.75
}
html[data-identity-engine="nova"] :is(.metric,.owner-kpi,.ip-stat,.r2-kpi,.crm2-kpi,.hr-r2-stat,.metric-ribbon > article,[data-theme-surface="metric"]):nth-child(4n+2)::before{background:var(--nv-accent-2)}
html[data-identity-engine="nova"] :is(.metric,.owner-kpi,.ip-stat,.r2-kpi,.crm2-kpi,.hr-r2-stat,.metric-ribbon > article,[data-theme-surface="metric"]):nth-child(4n+3)::before{background:var(--nv-info)}
html[data-identity-engine="nova"] :is(.metric,.owner-kpi,.ip-stat,.r2-kpi,.crm2-kpi,.hr-r2-stat,.metric-ribbon > article,[data-theme-surface="metric"]):nth-child(4n+4)::before{background:var(--nv-violet)}
html[data-identity-engine="nova"] :is(.metric,.owner-kpi,.ip-stat,.r2-kpi,.crm2-kpi,.hr-r2-stat,.metric-ribbon > article,[data-theme-surface="metric"])::after{content:none}
html[data-identity-engine="nova"] :is(.metric,.owner-kpi,.ip-stat,.r2-kpi,.crm2-kpi,.hr-r2-stat,.metric-ribbon > article,[data-theme-surface="metric"]) :is(span,small,label,p){color:var(--nv-muted);font-size:12.5px;font-weight:500;margin:0;line-height:1.4}
html[data-identity-engine="nova"] :is(.metric,.owner-kpi,.ip-stat,.r2-kpi,.crm2-kpi,.hr-r2-stat,.metric-ribbon > article,[data-theme-surface="metric"]) :is(strong,b,h3,.value){
  color:var(--nv-text);font-size:clamp(1.35rem,1.1rem + .7vw,1.8rem);font-weight:700;line-height:1.15;letter-spacing:-.02em;
  font-variant-numeric:tabular-nums;text-shadow:none;margin:0
}
html[data-identity-engine="nova"] :is(.metric-ribbon,.owner-metric-ribbon,.metrics,.ip-metrics,.owner-kpis,.developer-command-kpis){gap:12px}
/* grid containers never force horizontal scroll */
html[data-identity-engine="nova"] :is(.ip-shell,.r2-shell,.ent-shell,.ctr2-shell,.owner-shell,.hr-r2-shell,.uw26-shell,.mbx-shell,.community-shell,.rst-shell,.htl-shell,.gym-shell){grid-template-columns:minmax(0,1fr);min-width:0}
@media (max-width:900px){
  html[data-identity-engine="nova"] :is(.ip-metrics,.metric-ribbon,.owner-metric-ribbon,.owner-kpis,.metrics,.metrics.six,.developer-command-kpis){grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}
  html[data-identity-engine="nova"] :is(.content-grid,.main-side,.configuration-grid,.ip-grid,.profile360-grid){grid-template-columns:minmax(0,1fr)!important}
}

/* --------------------------------------------------------------------------
   8. Buttons
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.full-button,.mini-action,button.primary,button.secondary,button.danger,button.ghost,input[type="submit"],input[type="button"],form button:not([class])){
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:38px;padding:0 16px;margin:0;
  border:1px solid var(--nv-line-2);border-radius:var(--nv-r-sm);
  background:var(--nv-surface-2);color:var(--nv-text);
  font:600 13.5px/1 var(--nv-font);letter-spacing:0;text-transform:none;text-decoration:none;white-space:nowrap;
  box-shadow:var(--nv-shadow-1);cursor:pointer;clip-path:none;
  transition:background var(--nv-fast) var(--nv-ease),border-color var(--nv-fast) var(--nv-ease),color var(--nv-fast),box-shadow var(--nv-fast),transform var(--nv-fast) var(--nv-ease),filter var(--nv-fast);
}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.full-button,.mini-action,button.primary,button.secondary,button.danger,button.ghost,form button:not([class])):hover{
  background:var(--nv-surface-3);border-color:var(--nv-line-3);color:var(--nv-text);transform:none
}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.full-button,.mini-action,button):active{transform:translateY(1px)}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.full-button,.mini-action)::before,
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.full-button,.mini-action)::after{content:none}

/* primary */
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.full-button,.mini-action,button,a).primary,
html[data-identity-engine="nova"] input[type="submit"],
html[data-identity-engine="nova"] form button:not([class])[type="submit"]{
  background:var(--nv-accent);border-color:transparent;color:var(--nv-accent-ink);
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 8px 22px -12px var(--nv-accent);
}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.full-button,.mini-action,button,a).primary:hover,
html[data-identity-engine="nova"] input[type="submit"]:hover{
  background:var(--nv-accent);color:var(--nv-accent-ink);border-color:transparent;filter:brightness(1.07) saturate(1.05);
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 12px 28px -12px var(--nv-accent)
}
/* secondary / ghost / link / danger */
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.mini-action,button,a).secondary{background:var(--nv-surface-2);color:var(--nv-text);border-color:var(--nv-line-2)}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.mini-action,button).ghost{background:transparent;border-color:transparent;box-shadow:none;color:var(--nv-text-2)}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.mini-action,button).ghost:hover{background:var(--nv-surface-2);color:var(--nv-text)}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.mini-action,button).link,
html[data-identity-engine="nova"] a.link{background:transparent;border-color:transparent;box-shadow:none;color:var(--nv-accent-text);padding-inline:6px;min-height:0}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.mini-action,button).link:hover,html[data-identity-engine="nova"] a.link:hover{color:var(--nv-text);background:transparent;text-decoration:underline;text-underline-offset:3px}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.mini-action,button,a).danger,
html[data-identity-engine="nova"] :is(.button,button).reject{
  background:color-mix(in srgb,var(--nv-danger) 12%,transparent);border-color:color-mix(in srgb,var(--nv-danger) 36%,transparent);color:color-mix(in oklab,var(--nv-danger) 80%,var(--nv-text));box-shadow:none
}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.ctr-btn,.mbx-btn,.ops-btn,.mini-action,button,a).danger:hover{background:color-mix(in srgb,var(--nv-danger) 20%,transparent);border-color:var(--nv-danger);color:var(--nv-text)}
html[data-identity-engine="nova"] :is(.button,button).approve,html[data-identity-engine="nova"] :is(.button,button).success{background:color-mix(in srgb,var(--nv-success) 14%,transparent);border-color:color-mix(in srgb,var(--nv-success) 40%,transparent);color:color-mix(in oklab,var(--nv-success) 75%,var(--nv-text))}
/* sizes */
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.mini-action,button).small,
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,.mini-action,button).compact,
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,.ctr2-btn,button).sm,
html[data-identity-engine="nova"] .mini-action{min-height:32px;padding:0 12px;font-size:12.5px;border-radius:var(--nv-r-xs)}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.full-button,button).full,html[data-identity-engine="nova"] .full-button{width:100%}
html[data-identity-engine="nova"] :is(.button,.ip-btn,.dv-btn,button):disabled,html[data-identity-engine="nova"] :is(.button,.ip-btn).disabled{opacity:.5;cursor:not-allowed;filter:none;transform:none}
html[data-identity-engine="nova"] .icon-button{width:34px;height:34px;padding:0;display:inline-grid;place-items:center;border:1px solid var(--nv-line);border-radius:var(--nv-r-sm);background:var(--nv-surface-2);color:var(--nv-text-2);cursor:pointer}
html[data-identity-engine="nova"] .icon-button:hover{color:var(--nv-text);border-color:var(--nv-line-3)}
html[data-identity-engine="nova"] :is(.head-actions,.ip-actions,.owner-head-actions,.r2-actions,.acc22-actions,.ip-form-actions,.center-form-actions,.owner-toolbar-actions,.subscriber-launcher-actions){display:flex;flex-wrap:wrap;align-items:center;gap:8px}

/* --------------------------------------------------------------------------
   9. Forms
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] body :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),select,textarea){
  width:100%;min-height:40px;padding:9px 12px;margin:0;
  background:var(--nv-field);color:var(--nv-text);
  border:1px solid var(--nv-line-2);border-radius:var(--nv-r-sm);
  font:500 14px/1.4 var(--nv-font);box-shadow:0 1px 0 rgba(0,0,0,.12) inset;clip-path:none;
  transition:border-color var(--nv-fast) var(--nv-ease),box-shadow var(--nv-fast) var(--nv-ease),background var(--nv-fast);
}
html[data-identity-engine="nova"] textarea{min-height:96px;line-height:1.6;resize:vertical}
html[data-identity-engine="nova"] :is(input,select,textarea)::placeholder{color:var(--nv-faint);opacity:1}
html[data-identity-engine="nova"] body :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea):hover{border-color:var(--nv-line-3)}
html[data-identity-engine="nova"] body :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),select,textarea):focus{outline:none;border-color:var(--nv-accent);box-shadow:var(--nv-focus)}
html[data-identity-engine="nova"] :is(input,select,textarea):disabled,html[data-identity-engine="nova"] :is(input,textarea)[readonly]{background:var(--nv-surface-2);color:var(--nv-muted);cursor:not-allowed}
html[data-identity-engine="nova"] select{
  appearance:none;-webkit-appearance:none;padding-inline-end:34px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238d98ae' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;background-size:12px
}
html[data-identity-engine="nova"][dir="rtl"] select{background-position:left 12px center}
html[data-identity-engine="nova"] select[multiple]{background-image:none;padding-inline-end:12px;min-height:110px}
html[data-identity-engine="nova"] select option{background:var(--nv-surface-solid);color:var(--nv-text)}
html[data-identity-engine="nova"] input[type="checkbox"],html[data-identity-engine="nova"] input[type="radio"]{accent-color:var(--nv-accent);width:16px;height:16px;min-height:0;margin:0;cursor:pointer;flex:none}
html[data-identity-engine="nova"] input[type="range"]{accent-color:var(--nv-accent)}
html[data-identity-engine="nova"] input[type="file"]{width:100%;padding:8px;border:1px dashed var(--nv-line-3);border-radius:var(--nv-r-sm);background:var(--nv-surface-2);color:var(--nv-muted);font-size:13px}
html[data-identity-engine="nova"] input[type="file"]::file-selector-button{margin-inline-end:10px;padding:6px 12px;border:1px solid var(--nv-line-2);border-radius:var(--nv-r-xs);background:var(--nv-surface-3);color:var(--nv-text);font:600 12.5px var(--nv-font);cursor:pointer}
html[data-identity-engine="nova"] input[type="color"]{width:44px;height:36px;padding:3px;border:1px solid var(--nv-line-2);border-radius:var(--nv-r-sm);background:var(--nv-field);cursor:pointer}

html[data-identity-engine="nova"] :is(.form-grid,.ip-form-grid,.bc-form-grid,.community-form-grid){gap:14px 16px}
html[data-identity-engine="nova"] :is(.form-grid,.ip-form,.ip-form-grid,.bc-form-grid,.dv-form,.ent-form,.ctr2-form,.community-form-grid,.preference-form) label,
html[data-identity-engine="nova"] :is(.ip-field,.dv-field) > label,
html[data-identity-engine="nova"] .ip-field > span{
  display:flex;flex-direction:column;gap:6px;color:var(--nv-text-2);font-size:12.5px;font-weight:600;letter-spacing:0
}
html[data-identity-engine="nova"] :is(.check,.check-line){display:inline-flex;flex-direction:row;align-items:center;gap:9px;color:var(--nv-text-2);font-weight:500;cursor:pointer}
html[data-identity-engine="nova"] .ip-form-section{padding:18px 0;border-top:1px solid var(--nv-line)}
html[data-identity-engine="nova"] .ip-form-section:first-child{border-top:0;padding-top:0}
html[data-identity-engine="nova"] fieldset{border:1px solid var(--nv-line);border-radius:var(--nv-r-md);padding:16px;margin:0 0 16px}
html[data-identity-engine="nova"] legend{padding:0 8px;color:var(--nv-text);font-weight:650;font-size:13px}

/* toolbars & filters — keep each module's own grid, unify the skin */
html[data-identity-engine="nova"] :is(.ip-toolbar,.owner-toolbar,.filter-bar,.professional-search,.launcher-filter-row,[data-theme-surface="toolbar"]){
  gap:10px 12px;padding:12px;margin-bottom:16px;align-items:end;
  background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:var(--nv-r-md);box-shadow:none
}
html[data-identity-engine="nova"] :is(.ip-toolbar,.owner-toolbar,.filter-bar,[data-theme-surface="toolbar"]) label{gap:5px;font-size:12px;color:var(--nv-muted);font-weight:600}
html[data-identity-engine="nova"] :is(.ip-toolbar,.owner-toolbar,.filter-bar,[data-theme-surface="toolbar"]) :is(input,select){min-height:38px;height:38px;padding-block:6px;font-size:13px;flex:none}
html[data-identity-engine="nova"] .ip-toolbar{display:flex;flex-wrap:wrap}
html[data-identity-engine="nova"] .ip-toolbar > :is(input[type="search"],input[type="text"]){flex:1 1 220px;width:auto}
html[data-identity-engine="nova"] .ip-toolbar > select{flex:0 1 200px;width:auto}

/* --------------------------------------------------------------------------
   10. Tables
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] :is(.table-wrap,.ip-table-wrap,.owner-table-wrap,[data-theme-surface="table"]){
  overflow:auto;border:1px solid var(--nv-line);border-radius:var(--nv-r-md);background:color-mix(in srgb,var(--nv-surface-solid) 60%,transparent);box-shadow:none;padding:0;margin:0
}
html[data-identity-engine="nova"] :is(.panel,.ip-panel,.dashboard-widget,[data-theme-surface="panel"]) > :is(.table-wrap,.ip-table-wrap){background:transparent}
html[data-identity-engine="nova"] table{width:100%;border-collapse:separate;border-spacing:0;font-size:13.5px;font-variant-numeric:tabular-nums;background:transparent}
html[data-identity-engine="nova"] thead th,html[data-identity-engine="nova"] table > tr:first-child > th{
  position:sticky;top:0;z-index:1;
  padding:11px 14px;text-align:start;white-space:nowrap;
  background:var(--nv-surface-2);color:var(--nv-muted);
  font:650 11.5px/1.2 var(--nv-font);letter-spacing:.04em;text-transform:uppercase;
  border:0;border-bottom:1px solid var(--nv-line-2)
}
html[data-identity-engine="nova"] tbody td,html[data-identity-engine="nova"] tbody th{padding:12px 14px;border:0;border-bottom:1px solid var(--nv-line);color:var(--nv-text-2);vertical-align:middle;background:transparent}
html[data-identity-engine="nova"] tbody th{color:var(--nv-text);font-weight:600;text-transform:none;letter-spacing:0;font-size:13.5px}
html[data-identity-engine="nova"] tbody tr:last-child > *{border-bottom:0}
html[data-identity-engine="nova"] tbody tr{transition:background var(--nv-fast)}
html[data-identity-engine="nova"] tbody tr:hover > *{background:color-mix(in srgb,var(--nv-accent) 4%,transparent)}
html[data-identity-engine="nova"] tbody td :is(strong,b){color:var(--nv-text);font-weight:600}
html[data-identity-engine="nova"] tbody td a:not(.button):not(.ip-btn):not(.mini-action){color:var(--nv-text);font-weight:600}
html[data-identity-engine="nova"] tbody td a:not(.button):not(.ip-btn):not(.mini-action):hover{color:var(--nv-accent-text)}
html[data-identity-engine="nova"] tfoot td{padding:12px 14px;border-top:1px solid var(--nv-line-2);color:var(--nv-text);font-weight:650;background:var(--nv-surface-2)}
html[data-identity-engine="nova"] td.empty,html[data-identity-engine="nova"] td[colspan]:only-child{padding:36px 14px;text-align:center;color:var(--nv-muted)}

/* --------------------------------------------------------------------------
   11. Badges, status pills, notices
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] :is(.badge,.ip-badge,.dv-badge,.ctr2-badge,.r2-badge,.status-pill,.owner-status,.pill,.tag,.chip){
  display:inline-flex;align-items:center;gap:6px;min-height:22px;padding:2px 9px;
  border:1px solid var(--nv-line-2);border-radius:var(--nv-r-pill);background:var(--nv-surface-2);color:var(--nv-text-2);
  font:600 11.5px/1.3 var(--nv-font);letter-spacing:0;text-transform:none;white-space:nowrap;box-shadow:none
}
html[data-identity-engine="nova"] :is(.badge,.ip-badge,.dv-badge,.ctr2-badge,.r2-badge,.status-pill)::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85;flex:none}
html[data-identity-engine="nova"] :is(.badge,.ip-badge,.dv-badge,.ctr2-badge,.r2-badge,.status-pill):empty::before{content:none}
html[data-identity-engine="nova"] :is(.badge,.ip-badge,.dv-badge,.ctr2-badge,.r2-badge,.status-pill,.pill):is(.success,.badge-success,.status-active,.status-healthy,.status-approved,.status-completed,.status-paid,.status-posted,.status-provisioned,.status-converted,.status-email_sent,.active,.approved,.paid,.posted,.done){
  color:var(--nv-success);background:color-mix(in srgb,var(--nv-success) 12%,transparent);border-color:color-mix(in srgb,var(--nv-success) 32%,transparent)
}
html[data-identity-engine="nova"] :is(.badge,.ip-badge,.dv-badge,.ctr2-badge,.r2-badge,.status-pill,.pill):is(.warning,.warn,.badge-warning,.status-trial,.status-pending,.status-processing,.status-grace,.status-past_due,.status-warning,.status-draft,.pending,.draft){
  color:var(--nv-warning);background:color-mix(in srgb,var(--nv-warning) 12%,transparent);border-color:color-mix(in srgb,var(--nv-warning) 32%,transparent)
}
html[data-identity-engine="nova"] :is(.badge,.ip-badge,.dv-badge,.ctr2-badge,.r2-badge,.status-pill,.pill):is(.danger,.badge-danger,.status-failed,.status-critical,.status-suspended,.status-cancelled,.status-rejected,.status-expired,.status-email_failed,.status-reversed,.rejected,.cancelled,.overdue){
  color:var(--nv-danger);background:color-mix(in srgb,var(--nv-danger) 12%,transparent);border-color:color-mix(in srgb,var(--nv-danger) 32%,transparent)
}
html[data-identity-engine="nova"] :is(.badge,.ip-badge,.dv-badge,.ctr2-badge,.r2-badge,.status-pill,.pill):is(.info,.badge-info,.badge-accent,.accent,.status-closed,.status-inactive){
  color:var(--nv-info);background:color-mix(in srgb,var(--nv-info) 12%,transparent);border-color:color-mix(in srgb,var(--nv-info) 30%,transparent)
}
html[data-identity-engine="nova"] :is(.badge,.status-pill).status-inactive{color:var(--nv-muted);background:var(--nv-surface-2);border-color:var(--nv-line-2)}

html[data-identity-engine="nova"] :is(.notice,.errors,.alert,.ip-alert){
  position:relative;display:flex;align-items:flex-start;gap:10px;margin:0 0 16px;padding:12px 14px 12px 16px;
  border:1px solid var(--nv-line-2);border-radius:var(--nv-r-md);background:var(--nv-surface);color:var(--nv-text);font-size:13.5px;line-height:1.55;box-shadow:var(--nv-shadow-1)
}
html[data-identity-engine="nova"] :is(.notice,.errors,.alert)::before{content:"";position:absolute;inset-inline-start:-1px;top:-1px;bottom:-1px;width:3px;border-radius:var(--nv-r-md) 0 0 var(--nv-r-md);background:var(--nv-accent)}
html[data-identity-engine="nova"][dir="rtl"] :is(.notice,.errors,.alert)::before{border-radius:0 var(--nv-r-md) var(--nv-r-md) 0}
html[data-identity-engine="nova"] .notice{border-color:color-mix(in srgb,var(--nv-success) 30%,transparent);background:color-mix(in srgb,var(--nv-success) 8%,var(--nv-surface-solid))}
html[data-identity-engine="nova"] .notice::before{background:var(--nv-success)}
html[data-identity-engine="nova"] .notice.subtle{border-color:var(--nv-line-2);background:var(--nv-surface)}
html[data-identity-engine="nova"] .notice.subtle::before{background:var(--nv-info)}
html[data-identity-engine="nova"] .errors{border-color:color-mix(in srgb,var(--nv-danger) 36%,transparent);background:color-mix(in srgb,var(--nv-danger) 9%,var(--nv-surface-solid))}
html[data-identity-engine="nova"] .errors::before{background:var(--nv-danger)}
html[data-identity-engine="nova"] .toast-notice{position:fixed;z-index:90;bottom:22px;inset-inline-end:22px;max-width:420px;margin:0;box-shadow:var(--nv-shadow-3);animation:nova-toast .4s var(--nv-ease) both}
@keyframes nova-toast{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* --------------------------------------------------------------------------
   12. Empty states, tabs, pagination, lists
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] :is(.empty-state,.ip-empty,.owner-empty,.profile360-empty,.ctr2-empty,.crm2-empty,.community-empty,.portal-empty,.ent-empty,.launcher-empty-state,[data-theme-surface="empty"]){
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;
  padding:34px 20px;min-height:0;margin:0;
  background:repeating-linear-gradient(135deg,transparent 0 10px,color-mix(in srgb,var(--nv-line) 45%,transparent) 10px 11px),color-mix(in srgb,var(--nv-surface-2) 50%,transparent);
  border:1px dashed var(--nv-line-2);border-radius:var(--nv-r-md);color:var(--nv-muted);font-size:13.5px;box-shadow:none
}
html[data-identity-engine="nova"] :is(.empty-state,.ip-empty,.owner-empty,.profile360-empty,.ctr2-empty,.crm2-empty,[data-theme-surface="empty"]) :is(strong,h3,h4){color:var(--nv-text);font-size:14.5px;font-weight:650}
html[data-identity-engine="nova"] .owner-empty-compact{padding:18px}

html[data-identity-engine="nova"] :is(.tabs,.subnav,.workspace-nav,.module-tabs,.ip-tabs,.module-command-bar nav,[data-theme-surface="nav"]){
  display:flex;flex-wrap:nowrap;gap:2px;overflow-x:auto;scrollbar-width:none;
  padding:4px;margin:0 0 var(--nv-gap);background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:var(--nv-r-md);box-shadow:none
}
html[data-identity-engine="nova"] :is(.tabs,.subnav,.workspace-nav,.module-tabs,.ip-tabs,[data-theme-surface="nav"])::-webkit-scrollbar{display:none}
html[data-identity-engine="nova"] :is(.tabs,.subnav,.workspace-nav,.module-tabs,.ip-tabs,[data-theme-surface="nav"]) > a,
html[data-identity-engine="nova"] :is(.tabs,.subnav,.workspace-nav,.module-tabs,.ip-tabs,[data-theme-surface="nav"]) > button{
  flex:none;display:inline-flex;align-items:center;gap:7px;min-height:32px;padding:0 12px;border:0;border-radius:var(--nv-r-sm);
  background:transparent;color:var(--nv-muted);font:600 13px/1 var(--nv-font);white-space:nowrap;box-shadow:none;text-decoration:none
}
html[data-identity-engine="nova"] :is(.tabs,.subnav,.workspace-nav,.module-tabs,.ip-tabs,[data-theme-surface="nav"]) > :is(a,button):hover{color:var(--nv-text);background:var(--nv-surface-2)}
html[data-identity-engine="nova"] :is(.tabs,.subnav,.workspace-nav,.module-tabs,.ip-tabs,[data-theme-surface="nav"]) > :is(a,button):is(.active,[aria-current="page"],[aria-selected="true"]){
  color:var(--nv-text);background:var(--nv-surface-3);box-shadow:0 1px 0 rgba(255,255,255,.04) inset,0 0 0 1px var(--nv-line-2)
}

html[data-identity-engine="nova"] :is(.pagination,.ip-pagination,.owner-pagination){display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;color:var(--nv-muted);font-size:13px}
html[data-identity-engine="nova"] :is(.pagination,.ip-pagination,.owner-pagination) :is(a,span[aria-current],.page-link,button){
  display:inline-grid;place-items:center;min-width:34px;height:34px;padding:0 10px;border:1px solid var(--nv-line);border-radius:var(--nv-r-sm);background:var(--nv-surface-2);color:var(--nv-text-2);font-weight:600
}
html[data-identity-engine="nova"] :is(.pagination,.ip-pagination,.owner-pagination) :is(a:hover){border-color:var(--nv-line-3);color:var(--nv-text)}
html[data-identity-engine="nova"] :is(.pagination,.ip-pagination,.owner-pagination) :is(.active,[aria-current="page"]) {background:var(--nv-accent-soft);border-color:var(--nv-accent-line);color:var(--nv-accent-text)}

html[data-identity-engine="nova"] :is(.owner-breadcrumb,.breadcrumb,.breadcrumbs){display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 8px;color:var(--nv-muted);font-size:12.5px}
html[data-identity-engine="nova"] :is(.owner-breadcrumb,.breadcrumb,.breadcrumbs) a{color:var(--nv-muted)}
html[data-identity-engine="nova"] :is(.owner-breadcrumb,.breadcrumb,.breadcrumbs) a:hover{color:var(--nv-text)}

html[data-identity-engine="nova"] :is(.ip-record-meta,.module-meta) :is(span,div){border-color:var(--nv-line-2);color:var(--nv-text-2);background:var(--nv-surface-2)}
html[data-identity-engine="nova"] dl{margin:0}
html[data-identity-engine="nova"] dt{color:var(--nv-muted);font-size:12.5px;font-weight:600}
html[data-identity-engine="nova"] dd{margin:2px 0 12px;color:var(--nv-text)}

/* icon tiles inside cards */
html[data-identity-engine="nova"] .entity-title{color:var(--nv-text);font-weight:600}
html[data-identity-engine="nova"] .entity-sub{color:var(--nv-muted);font-size:12.5px}
html[data-identity-engine="nova"] :is(.ip-icon,.feed-icon,.odoo-app-icon,.acc22-symbol,.hub-icon,.diagnostic-icon,[data-theme-surface="icon"]){
  display:inline-grid;place-items:center;flex:none;border-radius:var(--nv-r-md);
  background:linear-gradient(145deg,color-mix(in srgb,var(--nv-accent) 18%,var(--nv-surface-2)),var(--nv-surface-2));
  border:1px solid color-mix(in srgb,var(--nv-accent) 22%,transparent);color:var(--nv-accent-text);box-shadow:none
}
html[data-identity-engine="nova"] [data-module-icon] svg,html[data-identity-engine="nova"] .odoo-app-icon svg{width:55%;height:55%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* dashboard widget controls: quiet until hover */
html[data-identity-engine="nova"] .dashboard-widget{position:relative}
html[data-identity-engine="nova"] .widget-toolbar{
  position:absolute;top:10px;inset-inline-end:10px;z-index:3;display:flex;gap:4px;padding:3px;margin:0;
  background:var(--nv-surface-solid);border:1px solid var(--nv-line);border-radius:var(--nv-r-sm);box-shadow:var(--nv-shadow-2);
  opacity:0;transform:translateY(-3px);transition:opacity var(--nv-fast),transform var(--nv-fast);pointer-events:none
}
html[data-identity-engine="nova"] .dashboard-widget:hover > .widget-toolbar,html[data-identity-engine="nova"] .dashboard-widget:focus-within > .widget-toolbar{opacity:1;transform:none;pointer-events:auto}
html[data-identity-engine="nova"] .widget-toolbar :is(button,.drag-handle){width:26px;height:26px;min-height:0;padding:0;display:grid;place-items:center;border:0;border-radius:var(--nv-r-xs);background:transparent;color:var(--nv-muted);font-size:13px;box-shadow:none;cursor:pointer}
html[data-identity-engine="nova"] .widget-toolbar .drag-handle{cursor:grab}
html[data-identity-engine="nova"] .widget-toolbar :is(button,.drag-handle):hover{background:var(--nv-surface-2);color:var(--nv-text)}

/* owner operation strip & theme switcher */
html[data-identity-engine="nova"] .owner-operation-strip{display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding:14px;margin:0 0 var(--nv-gap);background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:var(--nv-r-lg);box-shadow:var(--nv-shadow-1)}
html[data-identity-engine="nova"] .owner-operation-intro{flex:1 1 240px;display:flex;flex-direction:column;gap:4px;padding:4px 8px;background:transparent;border:0}
html[data-identity-engine="nova"] .owner-operation-intro strong{color:var(--nv-text-2);font-weight:500;font-size:13.5px}
html[data-identity-engine="nova"] .owner-operation-links{flex:2 1 420px;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
html[data-identity-engine="nova"] .owner-operation-links a{display:flex;align-items:center;gap:12px;padding:12px 14px;background:var(--nv-surface-2);border:1px solid var(--nv-line);border-radius:var(--nv-r-md);color:var(--nv-text);transition:border-color var(--nv-fast),transform var(--nv-fast)}
html[data-identity-engine="nova"] .owner-operation-links a:hover{border-color:var(--nv-accent-line);transform:translateY(-1px)}
html[data-identity-engine="nova"] .owner-operation-links a > i{width:38px;height:38px;flex:none;display:grid;place-items:center;border-radius:var(--nv-r-sm);font-style:normal;font-weight:700;background:var(--nv-accent-soft);border:1px solid var(--nv-accent-line);color:var(--nv-accent-text)}
html[data-identity-engine="nova"] .owner-operation-links a:nth-child(2) > i{background:var(--nv-accent-2-soft);border-color:color-mix(in srgb,var(--nv-accent-2) 38%,transparent);color:var(--nv-accent-2)}
html[data-identity-engine="nova"] .owner-operation-links strong{display:block;font-size:13.5px;color:var(--nv-text)}
html[data-identity-engine="nova"] .owner-operation-links small{color:var(--nv-muted);font-size:12px}
html[data-identity-engine="nova"] .owner-theme-switcher{position:relative}
html[data-identity-engine="nova"] .owner-theme-switcher > summary{list-style:none}
html[data-identity-engine="nova"] .owner-theme-switcher > summary::-webkit-details-marker{display:none}
html[data-identity-engine="nova"] .owner-theme-mode-button b{padding:2px 8px;border-radius:999px;background:var(--nv-accent-soft);color:var(--nv-accent-text);font-size:11.5px;font-weight:650}
html[data-identity-engine="nova"] .owner-theme-switcher-menu{position:absolute;top:calc(100% + 8px);inset-inline-end:0;z-index:50;width:min(320px,86vw);padding:6px;background:var(--nv-surface-solid);border:1px solid var(--nv-line-2);border-radius:var(--nv-r-lg);box-shadow:var(--nv-shadow-3)}
html[data-identity-engine="nova"] .owner-theme-switcher-menu form{margin:0}
html[data-identity-engine="nova"] .owner-theme-switcher-menu button{width:100%;display:flex;align-items:center;gap:10px;padding:10px;border:1px solid transparent;border-radius:var(--nv-r-sm);background:transparent;color:var(--nv-text-2);text-align:start;cursor:pointer;font:inherit}
html[data-identity-engine="nova"] .owner-theme-switcher-menu button:hover{background:var(--nv-surface-2);color:var(--nv-text)}
html[data-identity-engine="nova"] .owner-theme-switcher-menu button.is-active{background:var(--nv-accent-soft);border-color:var(--nv-accent-line);color:var(--nv-text)}
html[data-identity-engine="nova"] .owner-theme-switcher-menu button span{display:flex;flex-direction:column;flex:1}
html[data-identity-engine="nova"] .owner-theme-switcher-menu button small{color:var(--nv-muted);font-size:11.5px}
html[data-identity-engine="nova"] .owner-theme-switcher-menu button i{width:10px;height:10px;border-radius:50%;background:var(--nv-line-3)}
html[data-identity-engine="nova"] .owner-theme-switcher-menu button.is-active i{background:var(--nv-accent);box-shadow:0 0 10px var(--nv-accent)}
html[data-identity-engine="nova"] .owner-theme-switcher-menu button em{font-style:normal;font-size:11px;color:var(--nv-muted)}
html[data-identity-engine="nova"] .owner-theme-switcher-menu > a{display:block;margin-top:4px;padding:10px;border-top:1px solid var(--nv-line);color:var(--nv-accent-text);font-size:13px;font-weight:600}

/* charts (CSS bar charts in dashboards) */
html[data-identity-engine="nova"] :is(.growth-chart,.owner-growth-chart) .bars span,
html[data-identity-engine="nova"] :is(.growth-chart,.owner-growth-chart) .growth-column span{border-radius:4px 4px 2px 2px}
html[data-identity-engine="nova"] .chart-legend{color:var(--nv-muted);font-size:12px}
html[data-identity-engine="nova"] progress{accent-color:var(--nv-accent);height:8px;border-radius:999px}

/* --------------------------------------------------------------------------
   13. Overlays — command palette, quick create, preferences, app launcher
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] .overlay-backdrop{background:var(--nv-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
html[data-identity-engine="nova"] .overlay-panel,
html[data-identity-engine="nova"] .command-panel{
  background:color-mix(in srgb,var(--nv-surface-solid) 94%,transparent);
  -webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);
  border:1px solid var(--nv-line-2);border-radius:var(--nv-r-xl);box-shadow:var(--nv-shadow-3);color:var(--nv-text);clip-path:none;
  animation:nova-pop .22s var(--nv-ease) both
}
@keyframes nova-pop{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}
html[data-identity-engine="nova"] .overlay-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--nv-line)}
html[data-identity-engine="nova"] .overlay-head :is(h2,h3){margin:2px 0 0;font-size:1.08rem}
html[data-identity-engine="nova"] .command-search{border:0;border-bottom:1px solid var(--nv-line);background:transparent}
html[data-identity-engine="nova"] .command-search input{border:0!important;background:transparent!important;box-shadow:none!important;font-size:16px;min-height:52px}
html[data-identity-engine="nova"] .command-section a,html[data-identity-engine="nova"] .command-section button{border-radius:var(--nv-r-sm);color:var(--nv-text-2)}
html[data-identity-engine="nova"] .command-section a:hover,html[data-identity-engine="nova"] .command-section a.active,html[data-identity-engine="nova"] .command-section button:hover{background:var(--nv-surface-2);color:var(--nv-text)}
html[data-identity-engine="nova"] .command-footer{border-top:1px solid var(--nv-line);color:var(--nv-muted)}
html[data-identity-engine="nova"] .quick-action-grid > *{background:var(--nv-surface-2);border:1px solid var(--nv-line);border-radius:var(--nv-r-md);color:var(--nv-text-2);transition:all var(--nv-fast)}
html[data-identity-engine="nova"] .quick-action-grid > *:hover{border-color:var(--nv-accent-line);color:var(--nv-text);transform:translateY(-1px)}
html[data-identity-engine="nova"] .preference-option{background:var(--nv-surface-2);border:1px solid var(--nv-line);border-radius:var(--nv-r-md);color:var(--nv-text-2)}
html[data-identity-engine="nova"] .preference-option:has(input:checked){border-color:var(--nv-accent);background:var(--nv-accent-soft);color:var(--nv-text)}

/* App launcher (tenant /apps) */
html[data-identity-engine="nova"] .subscriber-launcher-head{background:transparent;border:0;box-shadow:none}
html[data-identity-engine="nova"] .launcher-ambient,html[data-identity-engine="nova"] .launcher-welcome-orbit{opacity:.35}
html[data-identity-engine="nova"] .odoo-app-grid{gap:14px}
html[data-identity-engine="nova"] .odoo-app-card{
  background:var(--nv-surface);-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);
  border:1px solid var(--nv-line);border-radius:var(--nv-r-lg);box-shadow:var(--nv-shadow-1);color:var(--nv-text)
}
html[data-identity-engine="nova"] .odoo-app-card:hover{transform:translateY(-3px);border-color:var(--nv-accent-line);box-shadow:var(--nv-shadow-2),0 18px 40px -22px color-mix(in srgb,var(--nv-accent) 60%,transparent)}
html[data-identity-engine="nova"] .odoo-app-card strong{color:var(--nv-text)}
html[data-identity-engine="nova"] .odoo-app-card small{color:var(--nv-muted)}
html[data-identity-engine="nova"] .launcher-search-premium{background:var(--nv-surface);border:1px solid var(--nv-line-2);border-radius:var(--nv-r-lg)}
html[data-identity-engine="nova"] .launcher-filter{background:var(--nv-surface-2);border:1px solid var(--nv-line);color:var(--nv-text-2);border-radius:var(--nv-r-pill)}
html[data-identity-engine="nova"] .launcher-filter.active{background:var(--nv-accent-soft);border-color:var(--nv-accent-line);color:var(--nv-text)}

/* Wafi AI floating assistant & developer signature: adopt tokens */
html[data-identity-engine="nova"] :is(.wafi-launcher,.wafi-fab){background:linear-gradient(135deg,var(--nv-accent),var(--nv-accent-2));color:var(--nv-accent-ink);box-shadow:0 14px 34px -14px var(--nv-accent)}
html[data-identity-engine="nova"] :is(.wafi-panel,.wafi-assistant-panel){background:var(--nv-surface-solid);border:1px solid var(--nv-line-2);border-radius:var(--nv-r-xl);box-shadow:var(--nv-shadow-3)}
html[data-identity-engine="nova"] .developer-signature{opacity:.9}
html[data-identity-engine="nova"] .developer-profile-popover{background:var(--nv-surface-solid);border:1px solid var(--nv-line-2);border-radius:var(--nv-r-lg);box-shadow:var(--nv-shadow-3)}

/* --------------------------------------------------------------------------
   14. Public site, auth & error pages
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] .topbar > .container{width:min(var(--nv-content),calc(100% - 32px));min-height:var(--nv-topbar);margin-inline:auto;display:flex;align-items:center;justify-content:space-between;gap:16px}
html[data-identity-engine="nova"] .topbar .nav{display:flex;align-items:center;gap:8px}
html[data-identity-engine="nova"] .content > .container{width:min(var(--nv-content),calc(100% - 32px));margin-inline:auto}
html[data-identity-engine="nova"] .platform-public-footer{background:color-mix(in srgb,var(--nv-bg) 82%,transparent);border-top:1px solid var(--nv-line);-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur)}
html[data-identity-engine="nova"] .public-footer-links a{color:var(--nv-muted)}
html[data-identity-engine="nova"] .public-footer-links a:hover{color:var(--nv-text)}

/* landing: the Nova sky replaces the old code-rain / grid layers */
html[data-identity-engine="nova"] .motion-landing::before,html[data-identity-engine="nova"] .motion-landing::after{content:none}
html[data-identity-engine="nova"] :is(.code-rain,.motion-grid,.motion-noise,.star-field){display:none!important}
html[data-identity-engine="nova"] .motion-glow{background:radial-gradient(circle,color-mix(in srgb,var(--nv-accent) 12%,transparent),transparent 65%);opacity:.8}
html[data-identity-engine="nova"] .motion-copy h1{
  font-size:clamp(2.4rem,1.4rem + 4vw,4.6rem);line-height:1.05;letter-spacing:-.03em;font-weight:700;
  background:linear-gradient(180deg,var(--nv-text) 30%,color-mix(in srgb,var(--nv-text) 62%,var(--nv-accent)));-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none
}
html[data-identity-engine="nova"] .motion-copy > p{color:var(--nv-text-2);font-size:clamp(1rem,.95rem + .3vw,1.15rem);line-height:1.8;max-width:56ch}
html[data-identity-engine="nova"] .motion-meta span{background:var(--nv-surface);border:1px solid var(--nv-line);color:var(--nv-text-2);border-radius:var(--nv-r-pill)}
html[data-identity-engine="nova"] .motion-meta span i{background:var(--nv-accent);box-shadow:0 0 10px var(--nv-accent)}
html[data-identity-engine="nova"] .motion-actions .button{min-height:46px;padding:0 22px;font-size:14.5px;border-radius:var(--nv-r-md)}
html[data-identity-engine="nova"] :is(.network-theater,.motion-card,.motion-showcase > *,.experience-stage){
  background:var(--nv-surface);-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);
  border:1px solid var(--nv-line-2);border-radius:var(--nv-r-xl);box-shadow:var(--nv-shadow-3)
}
html[data-identity-engine="nova"] .motion-card:hover{border-color:var(--nv-accent-line)}
html[data-identity-engine="nova"] .flow-node{background:var(--nv-surface-2);border:1px solid var(--nv-line-2);border-radius:var(--nv-r-md);color:var(--nv-text)}
html[data-identity-engine="nova"] .flow-node i{display:grid;place-items:center;color:var(--nv-accent-text);background:linear-gradient(145deg,color-mix(in srgb,var(--nv-accent) 16%,var(--nv-surface-3)),var(--nv-surface-3));border:1px solid var(--nv-accent-line);border-radius:var(--nv-r-sm);font-style:normal}
html[data-identity-engine="nova"] .flow-node i::before,html[data-identity-engine="nova"] .flow-node i::after{content:none}
html[data-identity-engine="nova"] .flow-node i svg{position:static;inset:auto;transform:none;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html[data-identity-engine="nova"] .motion-section-head h2{font-size:clamp(1.9rem,1.2rem + 2.6vw,3.2rem);letter-spacing:-.025em;line-height:1.1}

/* auth */
html[data-identity-engine="nova"] .auth-atmosphere{display:none}
html[data-identity-engine="nova"] .auth-shell{min-height:100vh;display:grid;place-items:center;align-content:center;gap:18px;padding:40px 16px}
html[data-identity-engine="nova"] .auth-shell .logo{max-width:190px;filter:drop-shadow(0 10px 30px color-mix(in srgb,var(--nv-accent) 30%,transparent))}
html[data-identity-engine="nova"] .auth-shell .panel{width:min(440px,100%);padding:30px;border-radius:var(--nv-r-xl);background:color-mix(in srgb,var(--nv-surface-solid) 86%,transparent);box-shadow:var(--nv-shadow-3)}
html[data-identity-engine="nova"] .auth-shell .panel h1{margin:8px 0 6px;font-size:1.6rem}
html[data-identity-engine="nova"] .auth-shell form label{display:flex;flex-direction:column;gap:6px;margin-bottom:14px;color:var(--nv-text-2);font-size:12.5px;font-weight:600}
html[data-identity-engine="nova"] .login-methods{gap:4px;padding:4px;background:var(--nv-surface-2);border:1px solid var(--nv-line);border-radius:var(--nv-r-md)}
html[data-identity-engine="nova"] .login-method{background:transparent;border:0;border-radius:var(--nv-r-sm);color:var(--nv-muted);font:600 12px/1.2 var(--nv-font);padding:9px 6px}
html[data-identity-engine="nova"] .login-method.active{background:var(--nv-surface-3);color:var(--nv-text);box-shadow:0 0 0 1px var(--nv-line-2)}
html[data-identity-engine="nova"] .pin-key{background:var(--nv-surface-2);border:1px solid var(--nv-line);border-radius:var(--nv-r-md);color:var(--nv-text);font:600 18px/1 var(--nv-font)}
html[data-identity-engine="nova"] .pin-key:hover{border-color:var(--nv-accent-line);background:var(--nv-surface-3)}
html[data-identity-engine="nova"] .pin-dot{border-color:var(--nv-line-3)}
html[data-identity-engine="nova"] .quick-account{background:var(--nv-surface-2);border:1px solid var(--nv-line);border-radius:var(--nv-r-md)}
html[data-identity-engine="nova"] .floating-language{z-index:20}
html[data-identity-engine="nova"] .guest-theme-toggle{background:var(--nv-surface);border:1px solid var(--nv-line-2);color:var(--nv-text-2);border-radius:50%;-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur)}

/* Identity Studio */
html[data-identity-engine="nova"] .identity-engine-card{background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:var(--nv-r-lg);box-shadow:var(--nv-shadow-1);color:var(--nv-text-2)}
html[data-identity-engine="nova"] .identity-engine-card.is-active{border-color:var(--nv-accent);box-shadow:var(--nv-glow)}

/* --------------------------------------------------------------------------
   15. Light theme hardening (legacy light rules use !important)
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"][data-theme="light"] body,
html[data-identity-engine="nova"][data-theme="light"] .command-main,
html[data-identity-engine="nova"][data-theme="light"] .main-area{color:var(--nv-text)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.topbar,.command-topbar){background:var(--nv-chrome)}
html[data-identity-engine="nova"][data-theme="light"] .command-sidebar{background:color-mix(in srgb,#fff 72%,transparent)}
html[data-identity-engine="nova"][data-theme="light"] .workspace-context-bar{background:var(--nv-chrome)}
html[data-identity-engine="nova"][data-theme="light"] :is(.badge,.ip-badge){background:var(--nv-surface-2)!important;color:var(--nv-text-2)!important;border-color:var(--nv-line-2)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.badge,.ip-badge,.status-pill):is(.success,.status-active,.status-healthy,.status-approved,.status-completed,.active){color:var(--nv-success)!important;background:color-mix(in srgb,var(--nv-success) 10%,#fff)!important;border-color:color-mix(in srgb,var(--nv-success) 30%,#fff)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.badge,.ip-badge,.status-pill):is(.warning,.status-trial,.status-pending,.status-grace,.status-past_due){color:var(--nv-warning)!important;background:color-mix(in srgb,var(--nv-warning) 10%,#fff)!important;border-color:color-mix(in srgb,var(--nv-warning) 30%,#fff)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.badge,.ip-badge,.status-pill):is(.danger,.status-failed,.status-suspended,.status-cancelled,.status-rejected,.status-expired){color:var(--nv-danger)!important;background:color-mix(in srgb,var(--nv-danger) 9%,#fff)!important;border-color:color-mix(in srgb,var(--nv-danger) 28%,#fff)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(h1,h2,h3,h4,strong,th){color:inherit}
html[data-identity-engine="nova"][data-theme="light"] :is(h1,h2,h3,h4){color:var(--nv-text)}
html[data-identity-engine="nova"][data-theme="light"] :is(p,label,td,li){color:var(--nv-text-2)}
html[data-identity-engine="nova"][data-theme="light"] thead th{color:var(--nv-muted)}
html[data-identity-engine="nova"][data-theme="light"] :is(.panel,.metric,.module-card){background:var(--nv-surface)}
html[data-identity-engine="nova"][data-theme="light"] :is(input,select,textarea){background-color:var(--nv-field);color:var(--nv-text);border-color:var(--nv-line-2)}
html[data-identity-engine="nova"][data-theme="light"] .secondary{background:var(--nv-surface-solid);color:var(--nv-text)}
html[data-identity-engine="nova"][data-theme="light"] .top-action em{box-shadow:0 0 0 2px #fff}
html[data-identity-engine="nova"][data-theme="light"] .motion-copy h1{background:linear-gradient(180deg,var(--nv-text) 35%,color-mix(in srgb,var(--nv-text) 60%,var(--nv-accent-text)));-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-identity-engine="nova"][data-theme="light"] :is(.eyebrow,.ip-eyebrow,.ctr2-eyebrow){color:var(--nv-accent-text)}

/* legacy ui-v082 light rules use !important — neutralise the ones that fight Nova */
html[data-identity-engine="nova"][data-theme="light"] :is(.command-topbar,.topbar,.workspace-context-bar){background:var(--nv-chrome)!important;border-color:var(--nv-line)!important}
html[data-identity-engine="nova"][data-theme="light"] .command-sidebar{background:color-mix(in srgb,#fff 70%,transparent)!important;border-color:var(--nv-line)!important}
html[data-identity-engine="nova"][data-theme="light"] .command-sidebar a:hover{background:var(--nv-surface-3)!important;color:var(--nv-text)!important}
html[data-identity-engine="nova"][data-theme="light"] .command-sidebar a.active{background:linear-gradient(270deg,var(--nv-accent-soft),transparent)!important;color:var(--nv-text)!important}
html[data-identity-engine="nova"][data-theme="light"][dir="ltr"] .command-sidebar a.active{background:linear-gradient(90deg,var(--nv-accent-soft),transparent)!important}
html[data-identity-engine="nova"][data-theme="light"] .sidebar-apps-link{background:var(--nv-surface-2)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.command-sidebar a i,.command-sidebar button i,.shell-toggle){background:transparent!important;border-color:transparent!important;color:var(--nv-muted)!important}
html[data-identity-engine="nova"][data-theme="light"] .command-sidebar a.active i{background:color-mix(in srgb,var(--nv-accent) 18%,#fff)!important;color:var(--nv-accent-text)!important}
html[data-identity-engine="nova"][data-theme="light"] .top-action{background:transparent!important;border-color:transparent!important;color:var(--nv-text-2)!important}
html[data-identity-engine="nova"][data-theme="light"] .top-action:hover{background:var(--nv-surface-3)!important;color:var(--nv-text)!important}
html[data-identity-engine="nova"][data-theme="light"] .top-action.primary-mini{background:var(--nv-accent)!important;color:var(--nv-accent-ink)!important}
html[data-identity-engine="nova"][data-theme="light"] .global-search kbd{background:var(--nv-surface-2)!important;color:var(--nv-muted)!important;border-color:var(--nv-line-2)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.global-search,.user-chip,.live-search-results,.module-subnav){background:var(--nv-surface-solid)!important;color:var(--nv-text)!important;border-color:var(--nv-line-2)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.overlay-panel,.command-panel){background:var(--nv-surface-solid)!important;color:var(--nv-text)!important;border-color:var(--nv-line-2)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.panel,.metric,.module-card,.partner-card,.document-card,.crm-record-card,.kanban-card,.app-home-tile,.preference-card,.setup-module-card){background:var(--nv-surface)!important;border-color:var(--nv-line)!important;color:var(--nv-text-2)!important;box-shadow:var(--nv-shadow-2)}
html[data-identity-engine="nova"][data-theme="light"] body :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="file"]),select,textarea){background-color:var(--nv-field)!important;color:var(--nv-text)!important;border-color:var(--nv-line-2)!important}
html[data-identity-engine="nova"][data-theme="light"] body :where(input,select,textarea):focus{border-color:var(--nv-accent-text)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.global-search,.platform-nav-search) input{background:transparent!important;border:0!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.button.secondary,button.secondary){background:var(--nv-surface-solid)!important;color:var(--nv-text)!important;border-color:var(--nv-line-2)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.button.primary,button.primary,.ip-btn.primary){color:var(--nv-accent-ink)!important}
html[data-identity-engine="nova"][data-theme="light"] .errors{background:color-mix(in srgb,var(--nv-danger) 7%,#fff)!important;color:var(--nv-text)!important;border-color:color-mix(in srgb,var(--nv-danger) 30%,#fff)!important}
html[data-identity-engine="nova"][data-theme="light"] .notice{background:color-mix(in srgb,var(--nv-success) 8%,#fff)!important;color:var(--nv-text)!important;border-color:color-mix(in srgb,var(--nv-success) 30%,#fff)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(table,th,td){border-color:var(--nv-line)!important}
html[data-identity-engine="nova"][data-theme="light"] :is(.sidebar-label,.platform-nav-group > summary){color:var(--nv-faint)!important}
html[data-identity-engine="nova"][data-theme="light"] .user-chip strong{color:var(--nv-text)!important}
html[data-identity-engine="nova"] .user-chip{min-width:0;width:auto}

/* --------------------------------------------------------------------------
   16. Motion preferences & responsive
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"][data-identity-motion="none"] *,
html[data-identity-engine="nova"][data-reduce-motion="1"] *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
@media (prefers-reduced-motion:reduce){
  html[data-identity-engine="nova"] *{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
}

@media (max-width:1280px){
  html[data-identity-engine="nova"] .user-chip div{display:none}
  html[data-identity-engine="nova"] .user-chip{padding:0 4px!important}
}
@media (max-width:950px){
  html[data-identity-engine="nova"]{--nv-topbar:58px}
  html[data-identity-engine="nova"] .command-shell{flex-wrap:wrap;gap:8px;padding-block:8px}
  html[data-identity-engine="nova"] .command-shell > .global-search{order:5;flex:1 1 100%;max-width:none;margin:0}
  html[data-identity-engine="nova"] .app-launch-button{font-size:0;padding:0 10px}
  html[data-identity-engine="nova"] .workspace-context-bar{position:relative;top:auto}
  html[data-identity-engine="nova"] .workspace-context-bar > div{display:none}
  html[data-identity-engine="nova"] .command-actions .language-switcher,
  html[data-identity-engine="nova"] .command-actions [data-open-overlay="commandPalette"],
  html[data-identity-engine="nova"] .command-actions [data-open-overlay="uiPreferences"]{display:none}
}
@media (max-width:760px){
  html[data-identity-engine="nova"] .command-layout,
  html[data-identity-engine="nova"] .command-layout.sidebar-collapsed,
  html[data-identity-engine="nova"] .command-layout.navigation-apps{grid-template-columns:minmax(0,1fr)}
  html[data-identity-engine="nova"] .command-sidebar{
    position:fixed;top:0;bottom:0;inset-inline-start:0;z-index:70;width:min(300px,86vw);height:100vh;margin:0;border-radius:0;
    background:var(--nv-surface-solid);box-shadow:var(--nv-shadow-3);
    transform:translateX(-105%);transition:transform var(--nv-normal) var(--nv-ease);display:flex
  }
  html[data-identity-engine="nova"][dir="rtl"] .command-sidebar{transform:translateX(105%)}
  html[data-identity-engine="nova"] body.mobile-sidebar-open .command-sidebar{transform:none}
  html[data-identity-engine="nova"] body.mobile-sidebar-open::after{content:"";position:fixed;inset:0;z-index:65;background:var(--nv-overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
}
@media (max-width:640px){
  html[data-identity-engine="nova"] body{font-size:14.5px}
  html[data-identity-engine="nova"] .brand small{display:none}
  html[data-identity-engine="nova"] .app-launch-button{display:none}
  html[data-identity-engine="nova"] .brand strong{max-width:42vw}
  html[data-identity-engine="nova"] .command-actions{gap:0}
  html[data-identity-engine="nova"] .top-action{width:34px;min-width:34px;height:34px}
  html[data-identity-engine="nova"] :is(.page-head,.command-page-head,.owner-head) {align-items:flex-start}
  html[data-identity-engine="nova"] :is(.ip-hero,.r2-hero,.ent-hero,.ctr2-hero,.owner-dashboard-head){border-radius:var(--nv-r-lg)}
  html[data-identity-engine="nova"] :is(.panel,.ip-panel,.dashboard-widget){padding:16px;border-radius:var(--nv-r-md)}
  html[data-identity-engine="nova"] .toast-notice{inset-inline:12px;bottom:76px;max-width:none}
}
@media print{
  html[data-identity-engine="nova"] .nova-sky,html[data-identity-engine="nova"] body::before{display:none!important}
  html[data-identity-engine="nova"] body{background:#fff;color:#000}
}

/* --------------------------------------------------------------------------
   17. Identity Studio layout (ported from the shared identity layer, Nova-scoped)
   -------------------------------------------------------------------------- */
html[data-identity-engine="nova"] .identity-studio{max-width:var(--mi-content-width);margin:auto}
html[data-identity-engine="nova"] .identity-studio-hero{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;padding:18px 0 28px;border-bottom:1px solid var(--mi-line)}
html[data-identity-engine="nova"] .identity-studio-hero h1{font-size:clamp(34px,5vw,64px);line-height:1;margin:11px 0}
html[data-identity-engine="nova"] .identity-studio-hero p{max-width:780px;margin:0;color:var(--mi-muted)}
html[data-identity-engine="nova"] .identity-kicker{font:800 11px/1 monospace;letter-spacing:2.5px;color:var(--mi-accent)}
html[data-identity-engine="nova"] .identity-version{display:flex;align-items:end;gap:9px}
html[data-identity-engine="nova"] .identity-version b{font:900 64px/.8 sans-serif;color:var(--mi-accent)}
html[data-identity-engine="nova"] .identity-version span{font:700 11px monospace;color:var(--mi-muted)}
html[data-identity-engine="nova"] .identity-studio-grid{display:grid;grid-template-columns:minmax(0,1.16fr) minmax(360px,.84fr);gap:26px;margin-top:28px;align-items:start}
html[data-identity-engine="nova"] .identity-controls{display:grid;gap:18px}
html[data-identity-engine="nova"] .identity-controls>section,html[data-identity-engine="nova"] .identity-reset-form{background:var(--mi-surface);border:1px solid var(--mi-line);padding:22px;clip-path:polygon(0 0,calc(100% - 18px) 0,100% 18px,100% 100%,0 100%)}
html[data-identity-engine="nova"] .identity-section-title{display:flex;gap:14px;align-items:flex-start;margin-bottom:20px}
html[data-identity-engine="nova"] .identity-section-title>span{display:grid;place-items:center;width:38px;height:38px;background:var(--mi-accent);color:#07100b;font:900 13px monospace;flex:0 0 auto}
html[data-identity-engine="nova"] .identity-section-title h2{margin:0;font-size:20px}
html[data-identity-engine="nova"] .identity-section-title p{margin:2px 0 0;color:var(--mi-muted);font-size:13px}
html[data-identity-engine="nova"] .identity-preset-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
html[data-identity-engine="nova"] .identity-preset-card{position:relative;padding:14px;border:1px solid var(--mi-line);background:var(--mi-canvas);cursor:pointer;color:var(--mi-ink)}
html[data-identity-engine="nova"] .identity-preset-card input{position:absolute;opacity:0;pointer-events:none}
html[data-identity-engine="nova"] .identity-preset-card:has(input:checked){border-color:var(--mi-accent);box-shadow:inset 0 -3px 0 var(--mi-accent)}
html[data-identity-engine="nova"] .identity-preset-card strong,html[data-identity-engine="nova"] .identity-preset-card small{display:block}
html[data-identity-engine="nova"] .identity-preset-card small{font-size:11px;margin-top:4px;line-height:1.5}
html[data-identity-engine="nova"] .identity-color-row,html[data-identity-engine="nova"] .identity-choice-row,html[data-identity-engine="nova"] .identity-range-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
html[data-identity-engine="nova"] .identity-color-row label>span{display:flex;align-items:center;gap:10px;margin-top:7px;background:var(--mi-canvas);border:1px solid var(--mi-line);padding:8px}
html[data-identity-engine="nova"] .identity-color-row input[type=color]{width:42px;height:34px;padding:0;border:0}
html[data-identity-engine="nova"] .identity-color-row code{color:var(--mi-ink)}
html[data-identity-engine="nova"] .identity-choice-row label{gap:7px}
html[data-identity-engine="nova"] .identity-range-row label{background:var(--mi-canvas);border:1px solid var(--mi-line);padding:12px}
html[data-identity-engine="nova"] .identity-range-row output{float:inline-end;color:var(--mi-accent);font-family:monospace}
html[data-identity-engine="nova"] .identity-range-row input{padding:0;accent-color:var(--mi-accent)}
html[data-identity-engine="nova"] .identity-switch{display:flex;flex-direction:row;align-items:center;gap:10px;margin-top:16px}
html[data-identity-engine="nova"] .identity-switch input{position:absolute;opacity:0}
html[data-identity-engine="nova"] .identity-switch>span{width:42px;height:22px;border:1px solid var(--mi-line);background:var(--mi-canvas);position:relative}
html[data-identity-engine="nova"] .identity-switch>span:after{content:"";position:absolute;width:14px;height:14px;top:3px;inset-inline-start:4px;background:var(--mi-muted);transition:.2s}
html[data-identity-engine="nova"] .identity-switch input:checked+span:after{transform:translateX(19px);background:var(--mi-accent)}
html[data-identity-engine="nova"] [dir=rtl] .identity-switch input:checked+span:after{transform:translateX(-19px)}
html[data-identity-engine="nova"] .identity-actions{display:flex;gap:10px;justify-content:flex-end}
html[data-identity-engine="nova"] .identity-preview-wrap{position:sticky;top:92px}
html[data-identity-engine="nova"] .identity-preview-label{display:flex;align-items:center;gap:10px;margin-bottom:10px;color:var(--mi-muted);font:800 11px monospace;letter-spacing:1.5px}
html[data-identity-engine="nova"] .identity-preview-label i{height:1px;background:var(--mi-line);flex:1}
html[data-identity-engine="nova"] .identity-preview{background:var(--mi-bg);border:1px solid var(--mi-line);min-height:520px;box-shadow:12px 12px 0 color-mix(in srgb,var(--mi-accent) 13%,transparent)}
html[data-identity-engine="nova"] .identity-preview-note{font-size:12px;color:var(--mi-muted);margin-top:14px}
html[data-identity-engine="nova"] .identity-reset-form{margin-top:24px;display:flex;align-items:center;justify-content:space-between;gap:20px}
html[data-identity-engine="nova"] .identity-reset-form strong{display:block}
html[data-identity-engine="nova"] .identity-reset-form p{margin:2px 0 0;color:var(--mi-muted)}
@media(max-width:1050px){html[data-identity-engine="nova"] .identity-studio-grid{grid-template-columns:1fr}html[data-identity-engine="nova"] .identity-preview-wrap{position:static}}
@media(max-width:700px){html[data-identity-engine="nova"] .identity-studio-hero{align-items:flex-start}html[data-identity-engine="nova"] .identity-version{display:none}html[data-identity-engine="nova"] .identity-preset-grid,html[data-identity-engine="nova"] .identity-choice-row,html[data-identity-engine="nova"] .identity-color-row,html[data-identity-engine="nova"] .identity-range-row{grid-template-columns:1fr}html[data-identity-engine="nova"] .identity-reset-form{align-items:flex-start;flex-direction:column}}
html[data-identity-engine="nova"] .identity-studio-hero{background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:var(--nv-r-xl);box-shadow:var(--nv-shadow-2);clip-path:none}
html[data-identity-engine="nova"] .identity-controls>section,html[data-identity-engine="nova"] .identity-reset-form,html[data-identity-engine="nova"] .identity-preview{background:var(--nv-surface);border:1px solid var(--nv-line);border-radius:var(--nv-r-lg);clip-path:none}
html[data-identity-engine="nova"] .identity-engine-mode{border-radius:var(--nv-r-xl)!important;background:var(--nv-surface)!important;border-color:var(--nv-line)!important;clip-path:none!important}
html[data-identity-engine="nova"] .identity-engine-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
html[data-identity-engine="nova"] .identity-engine-card{border-radius:var(--nv-r-lg);background:var(--nv-surface-2);border-color:var(--nv-line);overflow:hidden}
html[data-identity-engine="nova"] .identity-engine-card.engine-nova::before{background:radial-gradient(circle at 18% 22%,color-mix(in srgb,var(--nv-accent) 22%,transparent),transparent 34%),radial-gradient(circle at 82% 78%,color-mix(in srgb,var(--nv-violet) 20%,transparent),transparent 36%),radial-gradient(1px 1px at 30% 60%,#fff,transparent),radial-gradient(1px 1px at 70% 30%,#fff,transparent),radial-gradient(1px 1px at 55% 80%,#fff,transparent),var(--nv-bg);opacity:.9}
html[data-identity-engine="nova"] .engine-nova .identity-engine-symbol{color:var(--nv-accent)}
html[data-identity-engine="nova"] .engine-nova .identity-engine-symbol i{border-radius:50%;width:9px;height:9px;background:currentColor;box-shadow:0 0 10px currentColor}
html[data-identity-engine="nova"] .engine-nova .identity-engine-symbol i:nth-child(2){width:5px;height:5px;transform:translateY(-10px)}
html[data-identity-engine="nova"] .identity-engine-card.is-active{border-color:var(--nv-accent);box-shadow:var(--nv-glow)}

/* ==========================================================================
   18. Nova V4.1 refinements — sky levels, motion, launcher, studio preview,
       floating assistants, empty states, module bars, auth & icon tiles
   ========================================================================== */

/* sky: the canvas follows the page character set by the runtime */
html[data-identity-engine="nova"][data-nova-sky="balanced"] .nova-sky{opacity:.92}
html[data-identity-engine="nova"][data-nova-sky="work"] .nova-sky{opacity:.78}
html[data-identity-engine="nova"][data-theme="light"][data-nova-sky="work"] .nova-sky{opacity:.4}

/* entrance: content rises in a short, staggered sequence (runtime adds .nv-rise) */
@keyframes nv-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
html[data-identity-engine="nova"] .nv-rise{animation:nv-rise .52s var(--nv-ease) both;animation-delay:calc(var(--nv-i,0) * 45ms)}
html[data-identity-engine="nova"][data-identity-motion="none"] .nv-rise,
html[data-identity-engine="nova"][data-reduce-motion="1"] .nv-rise{animation:none}

/* icon tiles: one shape for every module glyph */
html[data-identity-engine="nova"] .nv-tile{display:inline-grid;place-items:center;flex:0 0 auto;width:40px;height:40px;border-radius:var(--nv-r-md);background:var(--nv-accent-soft);border:1px solid var(--nv-accent-line);color:var(--nv-accent-text);box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
html[data-identity-engine="nova"] .nv-tile svg,
html[data-identity-engine="nova"] [data-nova-icon] > svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
html[data-identity-engine="nova"] .odoo-app-icon[data-nova-icon] > svg,html[data-identity-engine="nova"] [data-module-icon] > svg{width:50%;height:50%}
html[data-identity-engine="nova"] .workspace-apps a > span[data-nova-icon]{background:var(--nv-accent-soft)!important;border:1px solid var(--nv-accent-line);color:var(--nv-accent-text)!important;box-shadow:none!important;border-radius:var(--nv-r-md)!important;font-size:0}
html[data-identity-engine="nova"] .workspace-apps a:nth-child(4n+2) > span[data-nova-icon]{background:color-mix(in srgb,var(--nv-violet) 14%,transparent)!important;border-color:color-mix(in srgb,var(--nv-violet) 38%,transparent);color:var(--nv-violet)!important}
html[data-identity-engine="nova"] .workspace-apps a:nth-child(4n+3) > span[data-nova-icon]{background:var(--nv-accent-2-soft)!important;border-color:color-mix(in srgb,var(--nv-accent-2) 38%,transparent);color:var(--nv-accent-2)!important}
html[data-identity-engine="nova"] .workspace-apps a:nth-child(4n) > span[data-nova-icon]{background:color-mix(in srgb,var(--nv-info) 14%,transparent)!important;border-color:color-mix(in srgb,var(--nv-info) 38%,transparent);color:var(--nv-info)!important}
html[data-identity-engine="nova"] .workspace-apps a strong{color:var(--nv-text)!important}

/* module command bars: line icons instead of mixed glyphs */
html[data-identity-engine="nova"] .module-command-bar a > i[data-nova-icon]{display:inline-grid;place-items:center;width:22px;height:22px;font-size:0;background:transparent!important;border:0!important;color:var(--nv-muted)}
html[data-identity-engine="nova"] .module-command-bar a > i[data-nova-icon] svg{width:16px;height:16px}
html[data-identity-engine="nova"] .module-command-bar a:is(.active,[aria-current="page"]) > i[data-nova-icon],
html[data-identity-engine="nova"] .module-command-bar a:hover > i[data-nova-icon]{color:var(--nv-accent-text)}

/* empty states: a calm icon tile instead of a large emoji */
html[data-identity-engine="nova"] :is(.ip-empty,.empty-state,.owner-empty) > i[data-nova-icon]{display:grid;place-items:center;width:56px;height:56px;margin:0 auto 14px;border-radius:var(--nv-r-lg);background:var(--nv-accent-soft);border:1px solid var(--nv-accent-line);color:var(--nv-accent-text);font-size:0}
html[data-identity-engine="nova"] :is(.ip-empty,.empty-state,.owner-empty) > i[data-nova-icon] svg{width:26px;height:26px}

/* app launcher (tenant /apps): the greeting is a real card, search icon sits clear of the text */
html[data-identity-engine="nova"] .launcher-welcome-orbit{opacity:1!important;display:grid!important;grid-template-columns:auto minmax(0,1fr) auto!important;align-items:center;gap:18px;padding:18px 22px!important;background:linear-gradient(120deg,color-mix(in srgb,var(--nv-accent) 9%,var(--nv-surface)),var(--nv-surface) 55%)!important;border:1px solid var(--nv-line-2)!important;border-radius:var(--nv-r-xl)!important;box-shadow:var(--nv-shadow-2)!important;clip-path:none!important}
html[data-identity-engine="nova"] .launcher-brand-orb{width:62px!important;height:62px!important;border-radius:var(--nv-r-lg)!important;border:1px solid var(--nv-line-2)!important;background:var(--nv-surface-2)!important;display:grid;place-items:center}
html[data-identity-engine="nova"] .launcher-brand-orb img{width:40px;height:40px}
html[data-identity-engine="nova"] .launcher-welcome-orbit small{color:var(--nv-accent-text)!important;font-weight:600}
html[data-identity-engine="nova"] .launcher-welcome-orbit h2{margin:2px 0!important;font-size:1.45rem!important;color:var(--nv-text)!important}
html[data-identity-engine="nova"] .launcher-welcome-orbit p{margin:0!important;color:var(--nv-muted)!important}
html[data-identity-engine="nova"] .launcher-status{display:flex;align-items:center;gap:10px}
html[data-identity-engine="nova"] .launcher-status span{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:var(--nv-r-pill);background:var(--nv-surface-2);border:1px solid var(--nv-line);color:var(--nv-text-2);font-size:12.5px}
html[data-identity-engine="nova"] .launcher-status span i{width:7px;height:7px;border-radius:50%;background:var(--nv-success);box-shadow:0 0 10px var(--nv-success)}
html[data-identity-engine="nova"] :is(.launcher-search-premium,.launcher-search){position:relative;display:flex!important;align-items:center}
html[data-identity-engine="nova"] :is(.launcher-search-premium,.launcher-search) > span{position:absolute;inset-inline-start:14px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:18px;height:18px;color:var(--nv-muted);pointer-events:none}
html[data-identity-engine="nova"] :is(.launcher-search-premium,.launcher-search) > span svg{width:17px;height:17px}
html[data-identity-engine="nova"] :is(.launcher-search-premium,.launcher-search) input{padding-inline-start:42px!important;background:transparent!important;border:0!important;box-shadow:none!important;width:100%}
html[data-identity-engine="nova"] .launcher-search-premium:focus-within{border-color:var(--nv-accent-line);box-shadow:var(--nv-focus)}

/* floating assistants: one glass language instead of a loud gradient */
html[data-identity-engine="nova"] .context-help-fab{background:var(--nv-chrome)!important;-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);border:1px solid var(--nv-line-2)!important;color:var(--nv-text)!important;font-weight:600!important;box-shadow:var(--nv-shadow-3)!important;transition:border-color var(--nv-fast),transform var(--nv-fast)}
html[data-identity-engine="nova"] .context-help-fab:hover{border-color:var(--nv-accent-line)!important;transform:translateY(-2px)}
html[data-identity-engine="nova"] .context-help-fab span{background:var(--nv-accent-soft)!important;border:1px solid var(--nv-accent-line);color:var(--nv-accent-text)!important}
html[data-identity-engine="nova"] .context-help-ai > span{background:linear-gradient(135deg,var(--nv-accent),var(--nv-violet))!important;color:var(--nv-accent-ink)!important}
html[data-identity-engine="nova"] .wafi-floating-button{background:var(--nv-chrome)!important;-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);border:1px solid var(--nv-line-2)!important;color:var(--nv-text)!important;box-shadow:var(--nv-shadow-3)!important}
html[data-identity-engine="nova"] .wafi-floating-button:hover{border-color:var(--nv-accent-line)!important}

/* Identity Studio live preview — a miniature Nova workspace */
html[data-identity-engine="nova"] .identity-preview{overflow:hidden;border-radius:var(--nv-r-xl);box-shadow:var(--nv-shadow-3)!important;background:var(--nv-bg)!important}
html[data-identity-engine="nova"] .identity-preview .preview-top{height:50px;display:flex;align-items:center;gap:8px;padding:0 14px;border-bottom:1px solid var(--nv-line);background:var(--nv-chrome)}
html[data-identity-engine="nova"] .identity-preview .preview-top b{margin-inline-end:auto;display:flex;align-items:center;gap:8px;font:700 11px/1 var(--nv-mono);letter-spacing:.12em;color:var(--nv-text)}
html[data-identity-engine="nova"] .identity-preview .preview-top b i{width:16px;height:16px;border-radius:5px;background:linear-gradient(135deg,var(--nv-accent),var(--nv-accent-2))}
html[data-identity-engine="nova"] .identity-preview .preview-top > span{width:30px;height:26px;border-radius:var(--nv-r-sm);background:var(--nv-surface-2);border:1px solid var(--nv-line)}
html[data-identity-engine="nova"] .identity-preview .preview-top em{width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:var(--nv-accent-2);color:#111;font:700 9px var(--nv-font);font-style:normal}
html[data-identity-engine="nova"] .identity-preview .preview-body{display:grid;grid-template-columns:118px 1fr;min-height:470px}
html[data-identity-engine="nova"] .identity-preview .preview-body nav{padding:12px 8px;border-inline-end:1px solid var(--nv-line);background:var(--nv-bg-2)}
html[data-identity-engine="nova"] .identity-preview .preview-body nav a{display:flex;align-items:center;gap:7px;padding:7px 8px;margin-bottom:4px;border-radius:var(--nv-r-sm);font-size:10.5px;color:var(--nv-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html[data-identity-engine="nova"] .identity-preview .preview-body nav a i{flex:0 0 auto;width:10px;height:10px;border-radius:3px;border:1.5px solid currentColor}
html[data-identity-engine="nova"] .identity-preview .preview-body nav a.active{background:var(--nv-accent-soft);color:var(--nv-accent-text);box-shadow:inset 2px 0 0 var(--nv-accent)}
html[data-identity-engine="nova"] .identity-preview .preview-body main{padding:20px 16px;min-width:0}
html[data-identity-engine="nova"] .identity-preview .preview-heading small{display:block;color:var(--nv-accent-text)!important;font:600 10px var(--nv-font)}
html[data-identity-engine="nova"] .identity-preview .preview-heading h3{margin:4px 0 16px;font-size:17px;line-height:1.35;color:var(--nv-text)}
html[data-identity-engine="nova"] .identity-preview .preview-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
html[data-identity-engine="nova"] .identity-preview .preview-metrics article{padding:10px;border-radius:var(--nv-r-md);background:var(--nv-surface);border:1px solid var(--nv-line);box-shadow:inset 0 2px 0 var(--nv-accent)}
html[data-identity-engine="nova"] .identity-preview .preview-metrics small{display:block;font-size:9.5px;color:var(--nv-muted)}
html[data-identity-engine="nova"] .identity-preview .preview-metrics b{display:block;margin-top:4px;font-size:14px;color:var(--nv-text)}
html[data-identity-engine="nova"] .identity-preview .preview-chart{height:150px;margin-top:10px;display:flex;align-items:flex-end;gap:8px;padding:18px;border-radius:var(--nv-r-md);background:var(--nv-surface);border:1px solid var(--nv-line)}
html[data-identity-engine="nova"] .identity-preview .preview-chart span{flex:1;height:30%;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,var(--nv-accent),color-mix(in srgb,var(--nv-accent) 35%,transparent))}
html[data-identity-engine="nova"] .identity-preview .preview-chart span:nth-child(2){height:45%}
html[data-identity-engine="nova"] .identity-preview .preview-chart span:nth-child(3){height:36%;background:linear-gradient(180deg,var(--nv-accent-2),color-mix(in srgb,var(--nv-accent-2) 35%,transparent))}
html[data-identity-engine="nova"] .identity-preview .preview-chart span:nth-child(4){height:68%}
html[data-identity-engine="nova"] .identity-preview .preview-chart span:nth-child(5){height:55%}
html[data-identity-engine="nova"] .identity-preview .preview-chart span:nth-child(6){height:84%;background:linear-gradient(180deg,var(--nv-accent-2),color-mix(in srgb,var(--nv-accent-2) 35%,transparent))}
html[data-identity-engine="nova"] .identity-preview .preview-chart span:nth-child(7){height:74%}
html[data-identity-engine="nova"] .identity-preview .preview-table{margin-top:10px;padding:10px;border-radius:var(--nv-r-md);background:var(--nv-surface);border:1px solid var(--nv-line)}
html[data-identity-engine="nova"] .identity-preview .preview-table > *{display:block;height:7px;margin:7px 4px;border-radius:4px;background:var(--nv-line-2)}
html[data-identity-engine="nova"] .identity-preview .preview-table b{width:44%;background:var(--nv-accent)}
@media(max-width:700px){html[data-identity-engine="nova"] .identity-preview .preview-body{grid-template-columns:52px 1fr}html[data-identity-engine="nova"] .identity-preview .preview-body nav a span{display:none}}

/* auth: logo sits on a proper badge, remember-me reads as one line */
html[data-identity-engine="nova"] .auth-shell > img.logo{width:132px;height:auto;border-radius:var(--nv-r-xl);border:1px solid var(--nv-line-2);box-shadow:0 0 0 6px color-mix(in srgb,var(--nv-accent) 6%,transparent),0 24px 60px -24px color-mix(in srgb,var(--nv-accent) 55%,transparent)}
html[data-identity-engine="nova"] .auth-shell label.check,html[data-identity-engine="nova"] .auth-shell .check{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start;gap:10px;padding:10px 12px!important;text-align:start}
html[data-identity-engine="nova"] .auth-shell .check input[type="checkbox"]{width:18px;height:18px;margin:0;accent-color:var(--nv-accent)}
html[data-identity-engine="nova"] .guest-theme-toggle{display:grid;place-items:center;width:42px;height:42px;padding:0;border-radius:50%;background:var(--nv-chrome);border:1px solid var(--nv-line-2);color:var(--nv-text-2);-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);font-size:0}
html[data-identity-engine="nova"] .guest-theme-toggle:hover{color:var(--nv-text);border-color:var(--nv-accent-line)}
html[data-identity-engine="nova"] .guest-theme-toggle svg{width:18px;height:18px}

/* status words in tables read as status, not shouting */
html[data-identity-engine="nova"] .badge{letter-spacing:.01em}

/* error pages (403 / 404 / 500) */
html[data-identity-engine="nova"] body.error-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:transparent}
html[data-identity-engine="nova"] .error-screen main{width:min(560px,100%);display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:40px 32px;background:var(--nv-surface);-webkit-backdrop-filter:var(--nv-blur);backdrop-filter:var(--nv-blur);border:1px solid var(--nv-line-2);border-radius:var(--nv-r-xl);box-shadow:var(--nv-shadow-3)}
html[data-identity-engine="nova"] .error-screen main > img{width:56px;height:56px}
html[data-identity-engine="nova"] .error-screen main > span{font:700 clamp(64px,12vw,104px)/1 var(--nv-font);letter-spacing:-.04em;background:linear-gradient(135deg,var(--nv-accent),var(--nv-violet));-webkit-background-clip:text;background-clip:text;color:transparent}
html[data-identity-engine="nova"] .error-screen main > h1{margin:4px 0 0}
html[data-identity-engine="nova"] .error-screen main > p{max-width:420px;margin:0 0 10px;color:var(--nv-muted)}
html[data-identity-engine="nova"] .error-screen main > div{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
html[data-identity-engine="nova"] .error-screen main > small{margin-top:8px;font-family:var(--nv-mono);color:var(--nv-faint)}

/* mobile: module bars become one swipeable row; heroes never clip their headline */
@media(max-width:700px){
  html[data-identity-engine="nova"] .module-command-bar.has-mega .module-command-links,
  html[data-identity-engine="nova"] .module-command-links{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;width:100%;gap:6px;padding-bottom:4px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:none;mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent)}
  html[data-identity-engine="nova"] .module-command-links::-webkit-scrollbar{display:none}
  html[data-identity-engine="nova"] .module-command-links a{flex:0 0 auto;min-width:max-content!important;scroll-snap-align:start}
  html[data-identity-engine="nova"] .command-main :is(h1,.ip-hero h1,[class*="hero"] h1){font-size:clamp(1.35rem,6.4vw,1.75rem)!important;line-height:1.3!important;overflow-wrap:anywhere;word-break:normal}
  html[data-identity-engine="nova"] .context-help-fab{padding:8px!important}
  html[data-identity-engine="nova"] .context-help-fab > :not(span){display:none}
  html[data-identity-engine="nova"] :is(.context-help,.wafi-floating-button){bottom:84px!important}
}

/* tokenised list tiles that used fixed dark fills */
html[data-identity-engine="nova"] :is(.workspace-apps a,.mini-list > div){background:var(--nv-surface)!important;border-color:var(--nv-line)!important;border-radius:var(--nv-r-lg)!important;transition:border-color var(--nv-fast),transform var(--nv-fast),box-shadow var(--nv-fast)}
html[data-identity-engine="nova"] .workspace-apps a:hover{border-color:var(--nv-accent-line)!important;transform:translateY(-2px);box-shadow:var(--nv-shadow-2)}
html[data-identity-engine="nova"] .workspace-apps a small{color:var(--nv-muted)!important}
