/* NeuroResin global foundation
   Single source of truth for shared tokens, legacy variable aliases,
   document pages, subpage shell and migration-ready layout primitives. */


/* === NR APP CORE CSS: START === */
/* Merged from assets/app.styles.css on 2026-04-08.
   Runtime source of truth is now assets/site.css. */

/* Legacy app core merged into site.css. Active runtime source: this file. */

/* ===========================
   Layout safety (mobile)
   - prevent horizontal overflow from sliders / long rows
   =========================== */
*, *::before, *::after{ box-sizing: border-box; }
html, body{ max-width: 100%; overflow-x: hidden; }
input[type="range"]{ width: 100%; max-width: 100%; display: block; }
    /* ===========================
       NeuroResin Studio — Asystent odlewów wspierany przez AI – clean base
       (no legacy layers)
       =========================== */
    :root{
      /* Color tokens: see colors.css (canonical source) */
      /* === Radius system === */
      --radius-sm: 10px;
      --radius-md: 14px;
      --radius-lg: 22px;
      --radius-xl: 28px;
      /* === Fluid type scale === */
      --fs-micro: 9px;      /* micro badges, axis labels */
      --fs-mini:  11px;     /* small hints, kickers */
      --fs-xs:   clamp(0.7rem,  1.2vw, 0.75rem);
      --fs-sm:   clamp(0.8rem,  1.4vw, 0.875rem);
      --fs-base: clamp(0.9rem,  1.6vw, 1rem);
      --fs-lg:   clamp(1rem,    2vw,   1.2rem);
      --fs-xl:   clamp(1.2rem,  3vw,   1.6rem);
      --fs-2xl:  clamp(1.5rem,  4vw,   2.2rem);
      --fs-hero: clamp(2rem,    6vw,   4rem);
      /* === Spacing tokens === */
      --space-1:  4px;
      --space-2:  8px;
      --space-3:  12px;
      --space-4:  16px;
      --space-6:  24px;
      --space-8:  32px;
      --space-12: 48px;
      --space-16: 64px;
      /* === Z-index layer system === */
      --nr-z-header: 100;
      --nr-z-dock: 140;
      --nr-z-dock-active: 160;
      --nr-z-inline-overlay: 180;
      --nr-z-dropdown: 500;
      --nr-z-toast: 1200;
      --nr-z-status: 1400;
      --nr-z-immersive: 2000;
      --nr-z-nav: 8000;
      --nr-z-nav-close: 8002;
      --nr-z-modal: 9000;
      --nr-z-modal-raised: 9300;
      --nr-z-modal-top: 9600;
    }

    html{ font-size: 15px; }
    @media (min-width: 1280px){ html{ font-size: 15.5px; } }

    /* Desktop scale-down through typography (without shrinking below readability). */
    @media (min-width: 1025px){
      html{ font-size: 13.2px; }
    }
    @media (min-width: 1440px){
      html{ font-size: 13.6px; }
    }
    @media (min-width: 1920px){
      html{ font-size: 14px; }
    }

    /* Readability floor on desktop: text should not render below 9px. */
    @media (min-width: 1025px){
      #root :is(.nr-text-xs, .nr-text-2xs){
        font-size: max(9px, 0.68rem);
      }
      #root .nr-text-3xs{
        font-size: 9px;
      }
    }

    body{
      margin:0;
      font-family: Sora, Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
      background:
        radial-gradient(1200px 700px at 18% 8%, var(--nr-surface-accent-cta), transparent 55%),
        linear-gradient(180deg, var(--nr-bg), var(--nr-bg-deep));
      background-attachment: fixed;
      color: var(--nr-text);
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      text-rendering: geometricPrecision;
    }

    /* Better defaults for long text blocks inside cards */
    p, li { line-height: 1.55; }
    .text-muted{ color: var(--nr-muted); }
    .nr-glass{
      background: linear-gradient(180deg, var(--nr-panel), var(--nr-panel2));
      border: 1px solid var(--nr-line2);
      box-shadow: 0 10px 40px rgba(0,0,0,.25);
      backdrop-filter: blur(14px) saturate(120%);
      -webkit-backdrop-filter: blur(14px) saturate(120%);
    }

    /* Hero visible immediately (avoid delayed empty/black stage) */
    #hero-main-header,
    #hero-nav-overlay,
    #hero-top{
      visibility: visible;
    }

    /* Range inputs look consistent with the local slider accent classes */
    input[type="range"]{ height: 6px; border-radius: 999px; }
    input[type="range"]::-webkit-slider-thumb{ -webkit-appearance:none; width: 18px; height: 18px; border-radius: 999px; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.4); cursor: pointer; }
    input[type="range"]::-moz-range-thumb{ width: 18px; height: 18px; border-radius: 999px; border:0; background: #fff; box-shadow: 0 2px 8px rgba(0,0,0,.4); cursor: pointer; }

    /* Scrollbar – subtle */
    *::-webkit-scrollbar{ width: 10px; height:10px; }
    *::-webkit-scrollbar-thumb{ background: var(--nr-border-emphasis); border-radius: 999px; }

/* ===========================
   Bento + Glass layer
   =========================== */

/* Softer bento spacing */

/* Rounded buttons & inputs — see unified rule below */

/* ===========================
   Entrance animation for bento children
   =========================== */
@keyframes nr-slide-up {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
#nr-bento > div,
.nr-dynbento > div {
  animation: nr-slide-up .4s ease both;
}
#nr-bento > div:nth-child(1) { animation-delay: .05s }
#nr-bento > div:nth-child(2) { animation-delay: .10s }
#nr-bento > div:nth-child(3) { animation-delay: .15s }
#nr-bento > div:nth-child(4) { animation-delay: .20s }
#nr-bento > div:nth-child(5) { animation-delay: .25s }
#nr-bento > div:nth-child(6) { animation-delay: .30s }

/* Focus ring — unified terracotta outline */
*:focus-visible {
  outline: 2px solid var(--nr-border-accent-strong);
  outline-offset: 2px;
  border-radius: inherit;
}

/* ===========================
   Toolbar anchored to canvas frame
   =========================== */
.nr-canvaswrap{ position: relative; overflow: hidden; isolation: isolate; }
.nr-canvaswrap.has-image{ overflow: visible; }
#nr-bento{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 12px;
  z-index: var(--nr-z-dock);
  padding: 0 14px;
  display: flex;
  justify-content: center;
  pointer-events: none;
}
#nr-bento > div{ pointer-events: auto; }
#nr-bento > div{
  width: 100%;
  max-width: 980px;
}
@media (min-width: 768px){
  #nr-bento{ bottom: 16px; padding: 0 18px; }
}
#nr-bento.is-canvas-mobile{
  position: fixed;
  left: 6px;
  right: 6px;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 14px);
  z-index: var(--nr-z-dock);
  width: calc(100vw - 12px);
  max-width: calc(100vw - 12px);
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
#nr-bento.is-mobile-dock.is-main-locked{
  position: fixed;
  left: 6px;
  right: 6px;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 14px);
  z-index: var(--nr-z-dock);
  padding: 0;
  width: calc(100vw - 12px);
  max-width: calc(100vw - 12px);
  margin: 0;
  box-sizing: border-box;
}

/* Dynamic menu (tools) should replace main toolbar IN THE SAME SPOT */
.nr-dynbento{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 12px;
  z-index: var(--nr-z-dock-active);
  padding: 0 14px;
  display: flex;
  justify-content: center;
  pointer-events: none;
}
.nr-dynbento > div{ pointer-events: auto; }
.nr-dynbento button{ pointer-events: auto; }
@media (min-width: 768px){
  .nr-dynbento{ bottom: 16px; padding: 0 18px; }
}
.nr-dynbento.is-mobile-dock{
  position: fixed;
  left: 6px;
  right: 6px;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 14px);
  z-index: var(--nr-z-dock-active);
  width: calc(100vw - 12px);
  max-width: calc(100vw - 12px);
  padding: 0;
  margin: 0;
  box-sizing: border-box;
}
.nr-dynbento.is-mobile-dock > .nr-dyn-shell{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Desktop: center menu bars to viewport (stable position) */
@media (min-width: 1025px){
  #nr-bento.is-canvas-dock,
  .nr-dynbento.is-canvas-dock{
    position: fixed;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: min(980px, calc(100vw - 36px));
    padding: 0;
  }
  #nr-bento.is-canvas-dock > div,
  .nr-dynbento.is-canvas-dock > div{
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
  }
}
/* Tablet / mid-width: canvas-dock must also stay fixed above cards */
@media (max-width: 1024px){
  #nr-bento.is-canvas-dock,
  .nr-dynbento.is-canvas-dock{
    position: fixed;
    left: 6px;
    right: 6px;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 14px);
    width: calc(100vw - 12px);
    max-width: calc(100vw - 12px);
    padding: 0;
    margin: 0;
    box-sizing: border-box;
    transform: none;
  }
  #nr-bento.is-canvas-dock{ z-index: var(--nr-z-dock); }
  .nr-dynbento.is-canvas-dock{ z-index: var(--nr-z-dock-active); }
  #nr-bento.is-canvas-dock > div,
  .nr-dynbento.is-canvas-dock > div{
    width: 100%;
    max-width: 100%;
  }
}

/* ===========================
   Apple-like Glass (Direction 3)
   - frosted panels, soft highlights, subtle depth
   =========================== */

/* Subtle noise for depth (no images) */
body::before{
  content:"";
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: .14;
  mix-blend-mode: overlay;
  background-image:
    repeating-linear-gradient(0deg, var(--nr-border-faint) 0 1px, transparent 1px 2px),
    repeating-linear-gradient(90deg, rgba(0,0,0,.04) 0 1px, transparent 1px 3px);
}

/* Glass card — the main bento panel style */
.nr-card,
.nr-glass-card{
  background: var(--nr-surface);
  border: 1px solid var(--nr-border);
  backdrop-filter: blur(12px) saturate(120%);
  -webkit-backdrop-filter: blur(12px) saturate(120%);
}

/* Bento corners: consistent but not exaggerated */
main > div, section, article, aside, .nr-canvaswrap{
  border-radius: var(--radius-lg);
}

/* Inputs and small chips: tighter + consistent */
button, input, select, textarea{
  border-radius: var(--radius-sm);
}
input, select, textarea{
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.10);
}

/* Softer borders site-wide */

/* Reduce harsh uppercase tracking where it hurts readability */

/* monochrome — warm/cool bars use same grey gradient, only peak stays accent */
.nr-temp-bar.is-warm{
  background: linear-gradient(180deg, var(--nr-border-emphasis-strong), var(--nr-surface-chip));
  border-color: var(--nr-border-emphasis);
  box-shadow: inset 0 1px 0 var(--nr-border-emphasis-strong);
}
.nr-temp-bar.is-cool{
  background: linear-gradient(180deg, var(--nr-border-emphasis), var(--nr-surface-soft-strong));
  border-color: var(--nr-border-strong-ui);
  box-shadow: inset 0 1px 0 var(--nr-border-emphasis);
}
.nr-legend .nr-dot.warm{ background: var(--nr-border-emphasis-strong); border-color: var(--nr-border-emphasis); }
.nr-legend .nr-dot.cool{ background: var(--nr-border-emphasis); border-color: var(--nr-border-emphasis); }

/* ===========================
   Top-tier UI layer
   =========================== */

/* ===========================
   Risk levels (STONE)
   =========================== */
/* Risk color tokens: defined in colors.css (--nr-info, --nr-warning, --nr-danger) */
.nr-riskTitle{
  font-size: var(--fs-base);
  font-weight: 950;
  text-transform: uppercase;
  letter-spacing: .22em;
  font-style: italic;
}
.nr-riskTitle--info{ color: var(--nr-info); }
.nr-riskTitle--warn{ color: var(--nr-warning); }
.nr-riskTitle--crit{ color: var(--nr-danger); }

.nr-riskMicro{
  margin-top: 6px;
  font-size: var(--fs-base);
  font-weight: 800;
  line-height: 1.35;
  color: var(--nr-text-soft-alpha);
}

.nr-alertPulse{
  box-shadow: var(--nr-shadow-alert);
}
.nr-alertPulse.is-hot{
  box-shadow: var(--nr-shadow-alert-hot);
}

/* Missing data warning inside mass panel */
.nr-mass-missing-pulse{
  position: relative;
  isolation: isolate;
  border-color: var(--nr-border-accent-strong);
  box-shadow: 0 0 0 1px var(--nr-border-accent-ui), var(--nr-shadow-accent-cta), inset 0 1px 0 var(--nr-border-faint);
}
.nr-mass-missing-box{
  min-height: 48px;
  border-radius: 14px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  line-height: 1.25;
}
.nr-mass-missing-pulse::before,
.nr-mass-missing-pulse::after{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: inherit;
  pointer-events:none;
  padding:2px;
  background: conic-gradient(
    from var(--nr-mass-ring-angle),
    rgba(251,113,133,0) 0deg,
    rgba(251,113,133,0) 284deg,
    rgba(251,113,133,.95) 324deg,
    rgba(254,202,202,.92) 344deg,
    rgba(251,113,133,0) 1turn
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
}
.nr-mass-missing-pulse::before{
  animation: nrMassRingSpin 2.8s linear infinite;
}
.nr-mass-missing-pulse::after{
  filter: blur(7px);
  animation: nrMassRingSpin 2.8s linear infinite, nrMassRingPulse 1.9s ease-in-out infinite;
}
@property --nr-mass-ring-angle{
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
@keyframes nrMassRingSpin{
  to{ --nr-mass-ring-angle: 1turn; }
}
@keyframes nrMassRingPulse{
  0%,100%{ opacity:.30; }
  50%{ opacity:.82; }
}

/* Chart ↔ alert link */
.nr-temp-bar.nr-peak-focus{
  transform: translateY(-2px);
  box-shadow: 0 0 0 2px rgba(var(--nr-crit), .22), 0 0 28px rgba(var(--nr-crit), .20), inset 0 1px 0 rgba(255,255,255,.22);
}
.nr-temp-bar.nr-peak-focus::after{ opacity:1; transform: translateX(-50%) translateY(0); }
/* Segmented active state */
#nr-bento .nr-seg-btn{
  border-radius: 999px;
  height: 44px;
  padding-inline: 14px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: var(--fs-xs);
  border: 1px solid var(--nr-border-strong-ui);
  background: var(--nr-surface-chip);
  box-shadow: inset 0 1px 0 var(--nr-border-strong-ui);
  transition: transform .18s ease, background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
#nr-bento .nr-seg-btn:hover{ background: var(--nr-border-emphasis); }

#nr-bento .nr-seg-btn.is-active{
  background: var(--nr-text);
  color: var(--nr-bg);
  border-color: var(--nr-border-emphasis-strong);
  box-shadow: var(--nr-shadow-utility-lg), inset 0 1px 0 var(--nr-text-soft-alpha);
}
#nr-bento .nr-seg-btn:active{ transform: translateY(1px); }

/* Charts */
.nr-chart{ position:relative; }
.nr-bars{ display:flex; align-items:flex-end; gap:4px; }
.nr-temp-bar{
  position: relative;
  border-radius: 10px 10px 4px 4px;
  background: linear-gradient(180deg, var(--nr-border-emphasis-strong), var(--nr-surface-chip));
  border: 1px solid var(--nr-border-strong-ui);
  box-shadow: inset 0 1px 0 var(--nr-border-emphasis);
}
.nr-temp-bar.is-peak{
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--nr-danger) calc(var(--nr-peak-top-alpha, .85) * 100%), transparent),
    color-mix(in srgb, var(--nr-danger) calc(var(--nr-peak-bottom-alpha, .40) * 100%), transparent)
  );
  border-color: color-mix(in srgb, var(--nr-danger) calc(var(--nr-peak-border-alpha, .38) * 100%), transparent);
  box-shadow: 0 0 28px color-mix(in srgb, var(--nr-danger) calc(var(--nr-peak-glow-alpha, .20) * 100%), transparent), inset 0 1px 0 var(--nr-border-emphasis-strong);
}
.nr-temp-bar[data-tip]::after{
  content: attr(data-tip);
  position:absolute;
  left:50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%) translateY(6px);
  opacity:0;
  pointer-events:none;
  white-space:nowrap;
  padding:6px 10px;
  border-radius:999px;
  font-size: var(--fs-sm);
  font-weight:800;
  color: var(--nr-text);
  background: var(--nr-surface-overlay);
  border:1px solid var(--nr-border-emphasis);
  box-shadow: var(--nr-shadow-panel);
  transition: opacity .16s ease, transform .16s ease;
}
.nr-temp-bar:hover::after{ opacity:1; transform: translateX(-50%) translateY(0); }

.nr-legend{
  display:flex; gap:10px; align-items:center;
  font-size: var(--fs-sm); margin-top:10px; color: var(--nr-muted);
}
.nr-legend .nr-dot{
  width:10px; height:10px; border-radius:999px;
  border:1px solid var(--nr-border-emphasis);
  background: var(--nr-border-strong-ui);
}
.nr-legend .nr-dot.peak{
  background: var(--nr-danger);
  border-color: var(--nr-danger-brd);
  box-shadow: 0 0 18px var(--nr-danger-soft);
}

/* ===========================
   Mask preview: clearer, more "mask-like"
   =========================== */

/* Checkerboard pattern disabled */

/* Mask overlay: nieprzezroczysta, widoczna maska */
.nr-maskvis{
  mix-blend-mode: normal;
  filter: saturate(1.3) contrast(1.2);
}

/* Light mode też normal */

/* Exclusion overlay: better separation */
.nr-excludevis{
  mix-blend-mode: screen;
  filter: saturate(1.2) contrast(1.1) drop-shadow(0 0 10px var(--nr-danger-soft));
}

/* ===========================
   Scroll hint: "gradient break" at the bottom (suggest more content)
   =========================== */
.nr-scrollfade{
  position: relative;
}
.nr-scrollfade::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height: 46px;
  pointer-events:none;
  border-bottom-left-radius: inherit;
  border-bottom-right-radius: inherit;
  /* a "broken" / stepped gradient + soft highlight line */
  background:
    linear-gradient(to bottom,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,0.00) 18%,
      rgba(0,0,0,0.10) 38%,
      rgba(0,0,0,0.42) 68%,
      rgba(0,0,0,0.78) 100%
    );
  box-shadow: inset 0 1px 0 var(--nr-border-faint);
}

/* ===========================
   Scroll fade: apply to the scroll area, not tiles
   - Main page scroll hint (nr-scroll-root)
   - Small list: wrapper + inner scroller to avoid "moving" artifacts
   =========================== */

/* Main page scroll hint */
#nr-scroll-root{
  position: relative;
  width: 100%;
  max-width: var(--nr-shell-max, 1520px);
  margin-left: auto;
  margin-right: auto;
}

/* Unified page width on large screens, full width on mobile */
.nr-page-shell{
  width: 100%;
  max-width: var(--nr-shell-max, 1520px);
  margin-left: auto;
  margin-right: auto;
  /* Ensure grid is never overridden */
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 16px;
}
@media (max-width: 768px){
  .nr-page-shell{
    width: 100%;
    max-width: 100%;
  }
}

/* Large desktop scaling policy: slight growth, never full-bleed */
@media (min-width: 1440px){
  :root{
    --nr-shell-max: 1600px;
  }
}
@media (min-width: 1920px){
  :root{
    --nr-shell-max: 1700px;
  }
}
@media (min-width: 2560px){
  :root{
    --nr-shell-max: 1860px;
  }
}

#nr-scroll-root::after{
  display: none;
}

/* Small list wrapper: fade overlay does NOT scroll with items */
.nr-scrollfade-box{
  position: relative;
  border-radius: inherit;
  overflow: hidden; /* clip fade to box */
}
.nr-scrollfade-box::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height: 42px;
  pointer-events:none;
  background:
    linear-gradient(to bottom,
      rgba(0,0,0,0) 0%,
      rgba(0,0,0,0.10) 40%,
      rgba(0,0,0,0.55) 100%
    );
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}

/* ===========================
   Layer assistant: compact drawer header
   =========================== */
.nr-layersummary{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 14px;
  padding: 16px 16px;
}
@media (min-width: 768px){ .nr-layersummary{ padding: 18px 18px; } }
.nr-layersummary-left{ display:flex; align-items:center; gap: 12px; min-width:0; }
.nr-layerbadge{
  width: 44px; height: 44px;
  border-radius: 16px;
  display:flex; align-items:center; justify-content:center;
  background: var(--nr-surface-info-ui);
  border: 1px solid var(--nr-info-brd);
  box-shadow: inset 0 1px 0 var(--nr-border-emphasis);
}
.nr-layer-title{
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-size: var(--fs-sm);
  color: var(--nr-text);
}
.nr-layer-sub{
  margin-top: 2px;
  font-size: var(--fs-sm);
  color: var(--nr-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 42vw;
}
.nr-layerstats{ display:flex; align-items:center; gap: 10px; }
.nr-stat{
  min-width: 74px;
  border-radius: var(--radius-md);
  padding: 10px 12px;
  background: var(--nr-surface-chip);
  border: 1px solid var(--nr-border-strong-ui);
  box-shadow: inset 0 1px 0 var(--nr-border-strong-ui);
  text-align: center;
}
.nr-stat-k{ font-size: var(--fs-xs); font-weight: 900; letter-spacing: .18em; text-transform: uppercase; opacity: .75; }
.nr-stat-v{ margin-top: 2px; font-size: var(--fs-lg); font-weight: 950; letter-spacing: -0.02em; }

.nr-pillbtn{
  border-radius: var(--radius-md);
  padding: 10px 14px;
  font-size: var(--fs-sm);
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  background: var(--nr-border-emphasis);
  border: 1px solid var(--nr-border-emphasis);
  box-shadow: inset 0 1px 0 var(--nr-border-emphasis-strong);
  color: var(--nr-text);
}
.nr-pillbtn{ transition: transform .2s ease, background .2s ease; }
.nr-pillbtn:hover{ background: var(--nr-border-emphasis-strong); transform: translateY(-2px); }
.nr-pillbtn:active{ transform: translateY(-1px) scale(.99); }

/* ===========================
   Ratio indicator: calmer + no NaN
   =========================== */
.nr-ratio{
  background: linear-gradient(180deg, var(--nr-surface-chip), var(--nr-surface-faint));
  box-shadow: inset 0 1px 0 var(--nr-border-strong-ui);
}
.nr-ratioLabel{
  font-weight: 900;
  letter-spacing: .06em;
  font-size: var(--fs-mini);
  color: var(--nr-text);
  text-shadow: 0 2px 10px rgba(0,0,0,.45);
}

/* ===========================
   Timeline on mobile: stop overlap (CSS-only)
   =========================== */

/* ===========================
   Layer assistant header: mobile responsiveness (if present)
   =========================== */
@media (max-width: 720px){
  .nr-layersummary{ flex-wrap: wrap; gap: 10px; }
  .nr-layerstats{
    width: 100%;
    justify-content: space-between;
    gap: 8px;
  }
  .nr-stat{ min-width: 0; flex: 1 1 0; padding: 8px 10px; border-radius: var(--radius-md); }
  .nr-stat-v{ font-size: 14px; }
  .nr-pillbtn{ width: 100%; justify-content: center; }
}

/* ===========================
   Segmented toggle
   =========================== */
.nr-layerToggle{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 8px;
  border-radius: var(--radius-md);
  background: var(--nr-surface-soft-strong);
  border: 1px solid var(--nr-border-strong-ui);
  box-shadow: inset 0 1px 0 var(--nr-border-faint);
}

.nr-layerToggle .nr-seg-btn{
  height: 40px;
  border-radius: var(--radius-sm);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .04em;
  cursor: pointer;
  background: transparent;
  border: 1px solid var(--nr-border-emphasis);
  color: var(--nr-control-text-dim);
  transition: transform .12s ease, background .2s ease, border-color .2s ease, color .2s ease, box-shadow .2s ease;
}
.nr-layerToggle .nr-seg-btn:hover{
  color: var(--nr-text);
  background: var(--nr-surface-chip);
}
.nr-layerToggle .nr-seg-btn:active{ transform: scale(.98); }

.nr-layerToggle .nr-seg-btn.is-active{
  background: linear-gradient(180deg, var(--nr-border-emphasis-strong), var(--nr-border-emphasis));
  color: var(--nr-text);
  border-color: var(--nr-border-emphasis-strong);
  box-shadow: var(--nr-shadow-utility-lg), inset 0 1px 0 var(--nr-text-soft-alpha);
}

/* Microcopy under toggle */
.nr-layerHint{
  margin-top: 8px;
  font-size: var(--fs-mini);
  line-height: 1.25;
  color: var(--nr-muted);
  display: flex;
  align-items: center;
  gap: 8px;
}
.nr-layerHint .nr-dot{
  width: 8px; height: 8px;
  border-radius: 999px;
  background: var(--nr-border-emphasis-strong);
  border: 1px solid var(--nr-border-emphasis);
  box-shadow: 0 0 14px var(--nr-surface-chip);
}

@media (max-width: 720px){
  .nr-layerToggle{ gap: 8px; padding: 8px; border-radius: 16px; }
  .nr-layerToggle .nr-seg-btn{ height: 38px; font-size: 11px; border-radius: 14px; }
}

/* ===========================
   POPUP MODAL (Pomoc / Help) – NEW
   =========================== */
.nr-modal-overlay{
  position: fixed;
  inset: 0;
  z-index: var(--nr-z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
  background: radial-gradient(1200px 800px at 50% 20%, var(--nr-surface-chip-strong), var(--nr-surface-mask));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.nr-modal-panel{
  width: min(920px, 100%);
  max-height: min(82vh, 780px);
  overflow: hidden;
  border-radius: var(--radius-xl);
  border: 1px solid var(--nr-border-emphasis);
  background: var(--nr-surface-overlay);
  box-shadow: var(--nr-shadow-panel-lg), inset 0 1px 0 var(--nr-border-strong-ui);
  position: relative;
}
.nr-modal-body{
  position: relative;
  z-index: 2;
  padding: 14px 16px 16px;
  overflow: auto;
  max-height: calc(min(82vh, 780px) - 58px);
}
.nr-help5{
  background:var(--nr-surface-overlay-strong);
  border-color:var(--nr-border-strong-ui);
  width:min(520px,100%);
  max-height:85vh;
}
.nr-help5-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding:18px 20px 10px;
  border-bottom:1px solid var(--nr-border-accent-soft);
}
.nr-help5-title{
  font-family:"Bebas Neue",sans-serif;
  font-size:22px;
  letter-spacing:.08em;
  color:var(--nr-text);
}
.nr-help5-sub{
  font-family:"IBM Plex Mono",monospace;
  font-size:9px;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--nr-muted);
}
.nr-help5-close{
  height:32px;
  min-width:32px;
  border-radius:8px;
  border:1px solid var(--nr-danger-brd);
  background:var(--nr-danger-soft);
  color:var(--nr-danger);
  font-family:"Bebas Neue",sans-serif;
  font-size:22px;
  line-height:1;
}
.nr-help5-body{ padding:16px 20px 20px; }
.nr-help5-section-title{
  font-family:"Bebas Neue",sans-serif;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--nr-accent);
  padding-bottom:6px;
  border-bottom:1px solid var(--nr-border-accent-soft);
  margin:0 0 12px;
}
.nr-help5-step{
  display:flex;
  gap:12px;
  align-items:flex-start;
  margin-bottom:12px;
}
.nr-help5-num{
  width:30px;
  height:30px;
  border-radius:50%;
  background:var(--nr-surface-accent-cta);
  border:1px solid var(--nr-border-accent-ui);
  color:var(--nr-accent);
  font-family:"Bebas Neue",sans-serif;
  font-size:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.nr-help5-name{
  font-family:"Bebas Neue",sans-serif;
  font-size:13px;
  letter-spacing:.08em;
  color:var(--nr-text);
  line-height:1;
}
.nr-help5-desc{
  font-family:"IBM Plex Mono",monospace;
  font-size:10.5px;
  color:var(--nr-text-soft-alpha);
  line-height:1.65;
  margin-top:4px;
}
.nr-help5-tools{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:6px;
}
.nr-help5-tool{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 10px;
  background:var(--nr-surface-soft);
  border:1px solid var(--nr-border-faint);
  border-radius:8px;
}
.nr-help5-tool b{
  font-family:"Bebas Neue",sans-serif;
  font-size:12px;
  letter-spacing:.08em;
  color:var(--nr-text-soft-alpha);
  line-height:1;
}
.nr-help5-tool span{
  font-family:"IBM Plex Mono",monospace;
  font-size:9.5px;
  color:var(--nr-muted);
}
.nr-help5-shortcuts{
  display:flex;
  flex-direction:column;
  gap:5px;
}
.nr-help5-shortcut{
  display:flex;
  align-items:center;
  gap:10px;
  padding:6px 10px;
  background:var(--nr-surface-faint);
  border:1px solid var(--nr-border-faint);
  border-radius:6px;
}
.nr-help5-shortcut span{
  font-family:"IBM Plex Mono",monospace;
  font-size:10.5px;
  color:var(--nr-text-soft-alpha);
}
.nr-help5-shortcut kbd{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:34px;
  height:22px;
  padding:0 6px;
  background:var(--nr-surface-chip-strong);
  border:1px solid var(--nr-border-emphasis);
  border-bottom-width:2px;
  border-radius:5px;
  font-family:"IBM Plex Mono",monospace;
  font-size:9px;
  font-weight:700;
  color:var(--nr-text-soft-alpha);
  white-space:nowrap;
  flex-shrink:0;
}
.nr-help5-tips{
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:0;
  margin:0;
}
.nr-help5-tips li{
  font-family:"IBM Plex Mono",monospace;
  font-size:11px;
  color:var(--nr-text-soft-alpha);
  line-height:1.6;
  padding-left:14px;
  position:relative;
}
.nr-help5-tips li::before{
  content:'·';
  position:absolute;
  left:0;
  color:var(--nr-accent);
  font-weight:900;
}
.nr-help5-footer{
  display:flex;
  justify-content:flex-end;
}
.nr-help5-close-main{
  height:32px;
  padding:0 12px;
  border-radius:7px;
  border:1px solid transparent;
  background:var(--nr-gradient-accent-cta);
  color:var(--nr-text-contrast);
  font-family:"Bebas Neue",sans-serif;
  font-size:12px;
  letter-spacing:.10em;
  text-transform:uppercase;
}
@media (max-width: 720px){
  .nr-modal-panel{ border-radius: 22px; }
  .nr-modal-body{ padding: 12px 12px 14px; }
  .nr-help5-title{ font-size: 20px; }
  .nr-help5-name{ font-size: 12px; }
  .nr-help5-desc{ font-size: 10px; }
  .nr-help5-sub{ font-size: 9px; letter-spacing: .12em; }
  .nr-help5-close{ height: 34px; min-width: 34px; font-size: 22px; }
}

/* ===========================
   Home Help Modals
   =========================== */
#scaleInfoModal,
#labAiInfoModal,
#slopedInfoModal{
  position:fixed;
  inset:0;
  z-index:var(--nr-z-modal-raised);
  display:none;
  place-items:center;
  padding:clamp(16px, 3vw, 28px);
  overflow:auto;
  background:
    radial-gradient(1200px 820px at 50% 18%, var(--nr-surface-chip-strong), transparent 58%),
    var(--nr-surface-mask);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
#scaleInfoModal > div,
#labAiInfoModal > div,
#slopedInfoModal > div{
  width:min(980px, 100%);
  margin:auto;
  border-radius:28px;
  border:1px solid var(--nr-border-strong-ui);
  background:
    linear-gradient(180deg, var(--nr-surface-overlay-strong), var(--nr-surface-overlay)),
    var(--nr-bg-strong);
  box-shadow:var(--nr-shadow-panel-lg), inset 0 1px 0 var(--nr-border-faint);
  color:var(--nr-text);
  overflow:hidden;
}
#slopedInfoModal > div{
  width:min(1040px, 100%);
}
.nr-inline-nr-home-page-2,
.nr-inline-nr-home-page-3{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.nrscale-head,
.nrlab-head,
.nrs-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  padding:22px 24px 16px;
  border-bottom:1px solid var(--nr-border-faint);
}
.nrscale-title,
.nrlab-title,
.nrs-title{
  margin:0;
  font-family:"Sora", "Inter", system-ui, sans-serif;
  font-size:clamp(1.25rem, 2.6vw, 1.7rem);
  font-weight:800;
  line-height:1.08;
  color:var(--nr-text);
}
.nrscale-badge,
.nrlab-badge{
  display:inline-flex;
  align-items:center;
  width:max-content;
  min-height:28px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid var(--nr-border-accent-ui);
  background:var(--nr-surface-accent-cta);
  color:var(--nr-text-contrast);
  font-family:"Syne Mono", monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.nrscale-close,
.nrlab-close,
.nrs-close{
  appearance:none;
  flex:0 0 auto;
  width:40px;
  height:40px;
  border-radius:12px;
  border:1px solid var(--nr-border-stronger);
  background:var(--nr-surface-chip);
  color:var(--nr-text-soft-alpha);
  font-size:20px;
  line-height:1;
  cursor:pointer;
  transition:transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}
.nrscale-close:hover,
.nrscale-close:focus-visible,
.nrlab-close:hover,
.nrlab-close:focus-visible,
.nrs-close:hover,
.nrs-close:focus-visible{
  transform:translateY(-1px);
  border-color:var(--nr-border-accent-ui);
  background:var(--nr-surface-chip-strong);
  color:var(--nr-text);
}
.nrscale-body,
.nrlab-body,
.nrs-body{
  display:flex;
  flex-direction:column;
  gap:18px;
  padding:22px 24px 24px;
}
.nrscale-intro,
.nrlab-intro,
.nrs-intro,
.nrscale-tip,
.nrlab-tip{
  padding:16px 18px;
  border-radius:18px;
  border:1px solid var(--nr-border-faint);
  background:linear-gradient(180deg, var(--nr-surface-soft), var(--nr-surface-faint));
  color:var(--nr-text-soft-alpha);
  font-size:.96rem;
  line-height:1.62;
}
.nrscale-flow,
.nrlab-flow{
  display:grid;
  gap:16px;
}
.nrscale-flow{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}
.nrlab-flow{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.nrscale-step,
.nrlab-step,
.nrs-step{
  display:grid;
  grid-template-columns:auto minmax(0, 1fr);
  gap:14px;
  align-items:flex-start;
  padding:16px;
  border-radius:20px;
  border:1px solid var(--nr-border-faint);
  background:linear-gradient(180deg, var(--nr-surface-soft), var(--nr-surface-faint));
}
.nrscale-num,
.nrlab-num,
.nrs-step-num{
  width:38px;
  height:38px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  font-family:"Syne Mono", monospace;
  font-size:13px;
  font-weight:800;
  letter-spacing:.06em;
  border:1px solid var(--nr-border-accent-ui);
  background:var(--nr-surface-accent-cta);
  color:var(--nr-text-contrast);
}
.nrscale-num.ok{
  border-color:var(--nr-success-brd);
  background:var(--nr-surface-success-ui);
  color:var(--nr-success);
}
.nrlab-num.coral{
  border-color:rgba(249, 115, 104, .45);
  background:rgba(249, 115, 104, .14);
  color:#f97368;
}
.nrlab-num.amber,
.nrs-step-num{
  border-color:rgba(245, 158, 11, .45);
  background:rgba(245, 158, 11, .14);
  color:#f59e0b;
}
.nrlab-num.teal{
  border-color:rgba(126, 196, 184, .45);
  background:rgba(126, 196, 184, .14);
  color:#7ec4b8;
}
.nrscale-step-title,
.nrlab-step-title{
  font-size:1rem;
  font-weight:800;
  line-height:1.2;
  color:var(--nr-text);
}
.nrscale-step-desc,
.nrlab-step-desc,
.nrs-step-text{
  color:var(--nr-text-soft-alpha);
  font-size:.92rem;
  line-height:1.58;
}
.nrscale-card,
.nrlab-card,
.nrs-card{
  padding:10px;
  border-radius:18px;
  border:1px solid var(--nr-border-faint);
  background:var(--nr-surface-overlay);
}
.nrscale-wrap,
.nrlab-wrap,
.nrs-wrap{
  min-height:140px;
  border-radius:14px;
  overflow:hidden;
  background:#2a2c32;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.nrs-wrap{
  min-height:160px;
}
.nrscale-wrap canvas,
.nrlab-wrap canvas,
.nrs-wrap canvas{
  display:block;
  width:100%;
  height:auto;
}
.nrscale-examples{
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap:10px;
}
.nrscale-ex-card{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:58px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid var(--nr-border-faint);
  background:var(--nr-surface-chip);
  color:var(--nr-text-soft-alpha);
  font-size:.88rem;
  font-weight:700;
  line-height:1.35;
  text-align:center;
}
.nrlab-result,
.nrs-formula{
  display:grid;
  gap:14px;
  padding:18px;
  border-radius:20px;
  border:1px solid var(--nr-border-faint);
  background:linear-gradient(180deg, var(--nr-surface-soft), var(--nr-surface-faint));
}
.nrlab-result-title,
.nrs-formula-label{
  font-family:"Syne Mono", monospace;
  font-size:11px;
  font-weight:700;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--nr-text-strong-alpha);
}
.nrlab-stats{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
}
.nrlab-stats > div{
  padding:14px 12px;
  border-radius:16px;
  border:1px solid var(--nr-border-faint);
  background:var(--nr-surface-chip);
}
.nrlab-k{
  font-size:.78rem;
  text-transform:uppercase;
  letter-spacing:.12em;
  color:var(--nr-text-faint);
}
.nrlab-v{
  margin-top:8px;
  font-size:1.15rem;
  font-weight:800;
  color:var(--nr-text);
}
.nrs-diagrams,
.nrs-steps{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}
.nrs-steps{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}
.nrs-label{
  margin:0 0 10px;
  font-family:"Syne Mono", monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--nr-text-strong-alpha);
}
.nrs-formula{
  grid-template-columns:auto minmax(0, 1fr);
  align-items:flex-start;
}
.nrs-icon{
  width:46px;
  height:46px;
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(245, 158, 11, .38);
  background:rgba(245, 158, 11, .12);
  color:#f59e0b;
  font-size:20px;
  line-height:1;
}
.nrs-formula-text{
  font-size:1.05rem;
  font-weight:800;
  color:var(--nr-text);
  line-height:1.3;
}
.nrs-formula-desc{
  margin-top:6px;
  color:var(--nr-text-soft-alpha);
  font-size:.92rem;
  line-height:1.58;
}
@media (max-width: 960px){
  .nrlab-flow,
  .nrs-steps{
    grid-template-columns:1fr;
  }
  .nrscale-examples,
  .nrs-diagrams{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 720px){
  #scaleInfoModal,
  #labAiInfoModal,
  #slopedInfoModal{
    padding:12px;
    align-items:start;
  }
  #scaleInfoModal > div,
  #labAiInfoModal > div,
  #slopedInfoModal > div{
    border-radius:22px;
  }
  .nrscale-head,
  .nrlab-head,
  .nrs-head,
  .nrscale-body,
  .nrlab-body,
  .nrs-body{
    padding-left:16px;
    padding-right:16px;
  }
  .nrscale-head,
  .nrlab-head,
  .nrs-head{
    padding-top:16px;
    padding-bottom:14px;
  }
  .nrscale-body,
  .nrlab-body,
  .nrs-body{
    padding-top:16px;
    padding-bottom:16px;
    gap:14px;
  }
  .nrscale-flow,
  .nrscale-examples,
  .nrlab-stats,
  .nrs-diagrams{
    grid-template-columns:1fr;
  }
  .nrscale-step,
  .nrlab-step,
  .nrs-step,
  .nrs-formula{
    padding:14px;
  }
}

/* ===========================
   Empty state should be above checkerboard
   =========================== */
.nr-canvaswrap{ position: relative; }
.nr-canvaswrap::after{ z-index: 0; }
.nr-emptyState{
  position: relative;
  z-index: 2;
  width: 100%;
  align-self: stretch;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
}

/* Strong stacking: keep checkerboard behind all content */
.nr-canvaswrap{ position: relative; isolation: isolate; }
.nr-canvaswrap::after{ z-index: 0; }
.nr-canvaswrap > *{ position: relative; z-index: 2; }

/* Empty state primary button should stay readable over checkerboard */

/* Segmented control (Photo / ISO) */
.nr-seg{
  display:flex;
  padding: 4px;
  border-radius: 999px;
  background: var(--nr-surface-overlay);
  border: 1px solid var(--nr-border-emphasis);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: var(--nr-shadow-dropdown), inset 0 1px 0 var(--nr-border-faint);
}
.nr-segBtn{
  appearance:none;
  border:0;
  background: transparent;
  color: var(--nr-text-soft-alpha);
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
  font-size: 10px;
  padding: 8px 12px;
  border-radius: 999px;
  cursor:pointer;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}
.nr-segBtn:hover{ color: var(--nr-text); }
.nr-segBtn.is-active{
  background: var(--nr-border-emphasis);
  color: var(--nr-text);
  box-shadow: inset 0 1px 0 var(--nr-border-strong-ui);
}

/* ===========================
   Simple-shape isometric preview (no photo)
   =========================== */
.nr-isoWrap{
  border: 0;
  background: transparent;
  border-radius: 0;
  padding: 0;
  box-shadow: none;
}
.nr-isoLabel{
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--nr-text-soft-alpha);
  text-align: center;
  margin: 10px 0 12px;
}
.nr-isoHint{
  margin-top: 10px;
  font-size: 11px;
  color: var(--nr-muted);
}
.nr-isoScene{
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  height: clamp(220px, 32vh, 320px);
  max-height: 360px;
  border-radius: 24px;
  background: transparent;
  border: 0;
  box-shadow: none;
}
.nr-isoScene::after{
  display: none;
}

/* Layered isometric preview (stack of pours) */
.nr-isoStack{
  --u: 20px; /* unit size for iso layers */
  position: absolute;
  left: 50%;
  top: 50%;
  transform-style: preserve-3d;
  transform: translate(-50%, -50%) translateY(var(--isoAutoY, 0px)) scale(var(--isoScale, 1)) rotateX(60deg) rotateZ(45deg);
}
.nr-isoLayer{
  width: calc(var(--w) * var(--u));
  height: calc(var(--h) * var(--u));
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%) translateZ(calc(var(--z) * -9px)) translateY(calc(var(--z) * 0.5px));
  border-radius: 18px;
  background: linear-gradient(135deg, var(--nr-border-emphasis-strong), var(--nr-surface-chip));
  border: 1px solid var(--nr-border-strong-ui);
  box-shadow: var(--nr-shadow-panel), inset 0 1px 0 var(--nr-border-strong-ui);
  opacity: calc(1 - (var(--z) / (var(--n) + 2)));
  filter: drop-shadow(0 18px 18px rgba(0,0,0,.26));
}

/* Masked ISO layers (use mask PNG from AI mask) */
.nr-isoLayer.hasMask{
  border-radius: 0;
  background: linear-gradient(135deg, var(--nr-border-emphasis-strong), var(--nr-surface-chip));
  -webkit-mask-image: var(--maskImg);
  mask-image: var(--maskImg);
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-size: contain;
  mask-size: contain;
}
.nr-isoLayer.isSlopeMask{
  background: rgba(234, 120, 38, 0.72); /* matowy pomarancz dla skosu */
  border: 0;
  box-shadow: none;
  filter: none;
  opacity: calc((1 - (var(--z) / (var(--n) + 2))) * 0.9);
  pointer-events: none;
}

.nr-isoScene.is-circle .nr-isoLayer{ border-radius: 999px; }

@media (max-width: 640px){
  .nr-isoScene{ height: clamp(190px, 30vh, 260px); border-radius: 22px; }
}

/* Ground shadow for isometric stack */
.nr-isoScene::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:60%;
  height:12%;
  transform:translateX(-50%);
  background:radial-gradient(ellipse at center,
    rgba(0,0,0,.45) 0%,
    rgba(0,0,0,.25) 35%,
    rgba(0,0,0,.10) 55%,
    rgba(0,0,0,0) 75%);
  filter: blur(22px);
  pointer-events:none;
  z-index:0;
}
.nr-isoStack{
  z-index:1;
}

/* ===== Hide mobile zoom/pan preview controls (not needed) ===== */

/* ===== Mobile improvements: ISO + Timeline ===== */
@media (max-width: 520px){
  /* ISO text */
  .nr-isoScene{
    height: 200px;
    min-height: 200px;
  }
  .nr-isoHint{
    font-size: 12px;
    line-height: 1.35;
    max-width: 32ch;
    margin: 8px auto 0;
  }
  /* Buttons: full width */
}

@media (max-width: 720px){
  /* Timeline: make the whole track scrollable and prevent clipping */
  .nr-timeline{
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: 6px;
  }
}

/* ===================================================================
/* Legacy utility layer cleanup */

/* === LISTS === */
.list-decimal { list-style-type: decimal; }

/* === TRANSFORMS (live) === */
.will-change-transform { will-change: transform; }

@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* === SCROLLBAR === */
.custom-scrollbar::-webkit-scrollbar { width: 6px; }
.custom-scrollbar::-webkit-scrollbar-track { background: rgba(255,255,255,.05); }
.custom-scrollbar::-webkit-scrollbar-thumb { background: rgba(255,255,255,.2); border-radius: 3px; }
.custom-scrollbar::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,.3); }

/* Timeline mobile layout */

/* ===== Mobile full-bleed layout (all main frames touch screen edges) ===== */
@media (max-width: 768px){
  #nr-scroll-root{
    padding-left: 0;
    padding-right: 0;
  }
  #nr-scroll-root > div{
    gap: 12px;
  }
  #nr-scroll-root > div > [class*="col-span-"]{
    border-left: 0;
    border-right: 0;
    border-radius: 8px;
    margin-left: 0;
    margin-right: 0;
  }
  /* "Kable bento" (proces / okno pracy / timeline) - slightly softer corners */
  .nr-layout-visual{
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    padding: 10px 0 12px;
  }
  .nr-layout-visual #nr-visualizer{
    border-left: 0;
    border-right: 0;
    border-radius: 0;
    padding: 0;
  }
  .nr-layout-visual #nr-visualizer > .nr-canvaswrap{
    border-radius: 0;
  }
}

/* Shared CTA buttons */
.nr-cta-btn{
  height:46px;
  padding:0 18px;
  border-radius:var(--radius-md);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:12px;
  border:1px solid rgba(255,255,255,0.12);
  transition:transform .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
  text-decoration:none;
  user-select:none;
}
.nr-cta-btn:hover{ transform:translateY(-2px); border-color:rgba(255,255,255,0.22); }
.nr-cta-btn:active{ transform:translateY(-1px) scale(.99); }
.nr-cta-btn--secondary{
  background:transparent;
  color:rgba(255,255,255,0.55);
}
.nr-cta-btn--secondary:hover{
  background:rgba(255,255,255,0.04);
  color:#fff;
}
.nr-cta-btn--primary{
  background:var(--nr-gradient-accent-cta);
  color:var(--nr-text-contrast);
}
.nr-cta-btn--primary:hover{
  background:var(--nr-surface-accent-cta);
}
.nr-cta-arrow{
  width:16px;
  height:16px;
  opacity:.7;
  transition:transform .25s ease;
}
.nr-cta-btn--primary:hover .nr-cta-arrow{ transform:translateX(3px); }

@media (max-width: 768px){
  .nr-cta-btn{
    width:100%;
  }
}

.nr-export-section{
  text-align: left;
  position: relative;
  isolation: isolate;
}
.nr-export-section > :not(.nr-export-tools-bg){
  position: relative;
  z-index: 1;
}
.nr-export-section .nr-export-head{
  text-align:left;
  max-width: min(680px, 100%);
}
.nr-export-section .nr-export-status{
  text-align: left;
  align-self:auto;
}
.nr-export-tools-bg{
  position:absolute;
  top:8px;
  right:28px;
  bottom:8px;
  width:min(520px, 46%);
  min-width:340px;
  pointer-events:none;
  opacity:.36;
  z-index:0;
  background:none;
  overflow:visible;
}
.nr-export-tools-bg::before{
  content:"";
  position:absolute;
  inset:20px 8px 18px 70px;
  opacity:.34;
  background:
    linear-gradient(90deg, transparent 0 38%, var(--nr-border-faint) 38% calc(38% + 1px), transparent calc(38% + 1px) 72%, var(--nr-border-faint) 72% calc(72% + 1px), transparent calc(72% + 1px)),
    linear-gradient(180deg, transparent 0 42%, var(--nr-border-faint) 42% calc(42% + 1px), transparent calc(42% + 1px) 72%, var(--nr-border-faint) 72% calc(72% + 1px), transparent calc(72% + 1px));
  transform:skewX(-8deg);
}
.nr-export-tool{
  position:absolute;
  display:block;
  border:1px solid var(--nr-border-emphasis);
  background:var(--nr-surface-soft);
  box-shadow: inset 0 1px 0 var(--nr-border-faint), 0 18px 44px rgba(0,0,0,.18);
  animation:nr-export-tool-float 8s ease-in-out infinite;
}
.nr-export-tool--ruler{
  top:34px;
  right:44px;
  width:168px;
  height:30px;
  border-radius:7px;
  transform:rotate(-9deg);
  animation-duration:9s;
  background:
    repeating-linear-gradient(90deg, var(--nr-border-emphasis) 0 1px, transparent 1px 16px),
    var(--nr-surface-chip);
}
.nr-export-tool--drop{
  top:78px;
  right:290px;
  width:56px;
  height:56px;
  border-radius:56px 56px 56px 12px;
  transform:rotate(45deg);
  animation-delay:-2.5s;
  animation-duration:10s;
  background:linear-gradient(135deg, var(--nr-surface-accent-strong), var(--nr-surface-soft));
}
.nr-export-tool--doc{
  right:118px;
  bottom:36px;
  width:82px;
  height:102px;
  border-radius:8px;
  animation-delay:-5s;
}
.nr-export-tool--doc::before,
.nr-export-tool--doc::after{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  height:3px;
  border-radius:99px;
  background:var(--nr-border-emphasis);
}
.nr-export-tool--doc::before{ top:28px; }
.nr-export-tool--doc::after{
  top:48px;
  box-shadow:0 20px 0 var(--nr-border-accent-soft);
}
@keyframes nr-export-tool-float{
  0%, 100%{ translate:0 0; }
  50%{ translate:0 -7px; }
}
@media (prefers-reduced-motion: reduce){
  .nr-export-tool{ animation:none; }
}
@media (max-width: 980px){
  .nr-export-section .nr-export-head{ align-items: flex-start; }
  .nr-export-tools-bg{ display:none; }
}

/* =====================================================
   STONE SPACING SYSTEM
   - Global gutters
   - Unified card padding rhythm
   ===================================================== */

/* Global page gutters */
#nr-scroll-root,
main{
  padding-left: clamp(14px, 4vw, 32px);
  padding-right: clamp(14px, 4vw, 32px);
}

/* Card padding rhythm */

/* Vertical rhythm inside cards */

/* Safety: no horizontal overflow */
html, body{
  overflow-x: hidden;
}

/* =====================================================
   STONE HEADERS SYSTEM
   - Unified card/section headers (height, baseline, spacing)
   - Prevent header text clipping + deco overlap
   ===================================================== */

:root{
  --nr-kicker-size: 11px;
  --nr-kicker-track: .14em;
  --nr-title-size: 16px;
  --nr-title-track: -.02em;
}

/* Kicker / section label (STONE) */
.nr-layer-title,
.nr-isoLabel {
  font-weight: 950;
  letter-spacing: var(--nr-kicker-track);
  text-transform: uppercase;
  font-size: var(--nr-kicker-size);
  line-height: 1.1;
  margin: 0;
}

/* Secondary line under kicker (STONE) */
.nr-layer-sub{
  font-size: 12px;
  line-height: 1.25;
  color: var(--nr-muted);
  margin: 2px 0 0 0;
}

.nr-layersummary{
  position: relative;
  overflow: visible;
}

/* Dynamic toolbar row: keep horizontal layout */
.nr-scale-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

/* AI tools container chips: reduce pill look */
.nr-aiToolBtn{
  height: 52px;
}

/* =====================================================
   AI tabs and mass balance styling
   ===================================================== */

/* Global Surface Layer */
  :root{
    color-scheme: dark;
  }
  html,body{
    background:
      radial-gradient(1200px 700px at 18% 8%, var(--nr-surface-accent-cta), transparent 55%),
      linear-gradient(180deg, var(--nr-bg), var(--nr-bg-deep));
    background-attachment: fixed;
  }
  /* soften overall typography */
  body, button, input, select, textarea{
    font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  }
  /* Bento-like cards (non-invasive) */
  .card, .panel, .bento, .tile, .box, .section, [class*="card"], [class*="panel"]{
    border-radius: 22px;
  }

/* Typography and Radius Layer */
  :root{
    --soft-shadow: 0 14px 38px rgba(0,0,0,.35);
    --soft-inset: inset 0 1px 0 rgba(255,255,255,.08);
  }

  /* Typography: calmer tracking + clearer hierarchy */
  h1, h2, h3, .nr-title, .nr-layer-title{
    letter-spacing: .04em;
  }
  .nr-title, h1, h2{
    font-family: "Space Grotesk", "IBM Plex Sans", "SF Pro Display", system-ui, sans-serif;
    font-weight: 800;
  }

  /* Soften heavy shadows */

  /* Unified radii */
  .nr-radius-lg{ border-radius: var(--radius-lg); }
  .nr-radius-md{ border-radius: var(--radius-md); }

  /* Improve low-contrast text in helper areas */
  .nr-isoHint{
    color: var(--nr-muted);
  }

  /* Spotlight focus on main canvas */
  .nr-canvaswrap{
    background: radial-gradient(900px 420px at 50% 30%, var(--nr-surface-chip), transparent 60%);
  }

  /* Buttons: quieter by default, clearer active state */
  button{
    border-radius: var(--radius-md);
  }
  .nr-seg-btn.is-active{
    background: rgba(255,255,255,.18);
    border-color: rgba(255,255,255,.22);
    color: #fff;
  }

/* Recommendation UI Layer */
.nr-rec-section {
  position: relative;
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: 1px solid var(--nr-border-accent-soft);
  background:
    radial-gradient(600px 300px at 20% 10%, var(--nr-surface-accent), transparent 60%),
    radial-gradient(500px 300px at 80% 90%, var(--nr-surface-info-ui), transparent 60%),
    var(--nr-surface-overlay);
  backdrop-filter: blur(12px);
  padding: 24px;
}
.nr-rec-header {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 12px;
  margin-bottom: 0;
  flex-wrap: wrap;
}
.nr-rec-top{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  grid-template-areas:
    "title cta"
    "badges cta";
  column-gap:16px;
  row-gap:10px;
  align-items:center;
  margin-bottom:12px;
}
.nr-rec-top .nr-rec-header{ grid-area:title; }
.nr-rec-top .nr-rec-project-badges{ grid-area:badges; margin-bottom:0; }
.nr-rec-top .nr-rec-btn{
  grid-area:cta;
  align-self:center;
  justify-self:end;
}
.nr-rec-title-wrap { display: flex; align-items: center; gap: 10px; }
.nr-rec-icon {
  width: 36px; height: 36px; border-radius: 12px;
  background: var(--nr-surface-accent-cta);
  border: 1px solid var(--nr-border-accent-soft);
  display: flex; align-items: center; justify-content: center;
  font-size: 16px; flex-shrink: 0;
}
.nr-rec-title {
  font-size: 13px; font-weight: 800;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--nr-text-sec);
}
.nr-rec-subtitle {
  font-size: 10px; font-weight: 600;
  color: var(--nr-text-subtle); letter-spacing: .06em;
}
.nr-rec-btn {
  height: 40px; padding: 0 20px; border-radius: var(--radius-md);
  background: var(--nr-accent); color: var(--nr-text-contrast);
  border: none; font-family: 'Sora', system-ui, sans-serif;
  font-size: 10px; font-weight: 800; text-transform: uppercase;
  letter-spacing: .12em; cursor: pointer;
  display: inline-flex; align-items: center; gap: 7px;
  transition: all .25s ease;
  box-shadow: var(--nr-shadow-accent-cta);
}
.nr-rec-btn:hover {
  background: var(--nr-accent-soft);
  transform: translateY(-2px);
  box-shadow: var(--nr-shadow-accent-cta);
}
.nr-rec-btn:active { transform: translateY(-1px) scale(.99); }
.nr-rec-btn:disabled {
  opacity: .5; cursor: not-allowed; transform: none;
  box-shadow: none;
}
.nr-rec-btn svg { width: 14px; height: 14px; }

/* Loading spinner */
@keyframes nrRecSpin { to { transform: rotate(360deg); } }
.nr-rec-spinner {
  width: 14px; height: 14px; border: 2px solid var(--nr-border-emphasis);
  border-top-color: var(--nr-text-contrast); border-radius: 50%;
  animation: nrRecSpin .6s linear infinite;
}

/* Results */
.nr-rec-results { margin-top: 16px; }
.nr-rec-podium { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 16px; }
@media (min-width: 640px) { .nr-rec-podium { grid-template-columns: repeat(3, 1fr); } }

.nr-rec-card {
  border-radius: var(--radius-lg); padding: 16px;
  border: 1px solid var(--nr-border-mid);
  background: linear-gradient(180deg, var(--nr-surface-chip), var(--nr-surface-faint));
  transition: all .25s ease;
  position: relative;
}
.nr-rec-card:hover { border-color: var(--nr-border-emphasis); background: linear-gradient(180deg, var(--nr-surface-chip-strong), var(--nr-surface-soft)); transform: translateY(-2px); }
.nr-rec-card--best {
  border-color: var(--nr-border-accent-soft);
  background: linear-gradient(180deg, var(--nr-surface-accent-cta), var(--nr-surface-accent));
  box-shadow: var(--nr-shadow-accent-cta);
}
.nr-rec-card--best::before {
  content: '★ NAJLEPSZA';
  position: absolute; top: -1px; right: 16px;
  font-size: var(--fs-micro); font-weight: 800; letter-spacing: .16em;
  color: var(--nr-accent); background: var(--nr-surface-accent-cta);
  padding: 3px 10px 4px; border-radius: 0 0 8px 8px;
  border: 1px solid var(--nr-border-accent-soft); border-top: none;
}
.nr-rec-card-brand {
  font-size: var(--fs-micro); font-weight: 700;
  text-transform: uppercase; letter-spacing: .14em;
  color: var(--nr-text-subtle); margin-bottom: 4px;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
.nr-rec-card-name {
  font-size: 16px; font-weight: 900;
  color: var(--nr-text); line-height: 1.15;
  margin-bottom: 10px;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
.nr-rec-card-stats {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  background: transparent;
  border: 1px solid var(--nr-border-mid);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, var(--nr-surface-soft-strong), var(--nr-surface-faint));
  box-shadow: none;
  padding: 0;
  overflow: hidden;
}
.nr-rec-card-stat {
  font-size: 10px; font-weight: 700;
  padding: 7px 10px;
  border-radius: 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--nr-border-soft-plus);
  color: var(--nr-text-subtle);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  box-shadow: none;
}
.nr-rec-card-stat:last-child{ border-bottom: 0; }
.nr-rec-card-stat b, .nr-rec-card-stat-v { color: var(--nr-text-soft-alpha); font-weight: 900; }
.nr-rec-card-stat-k { color: var(--nr-muted); letter-spacing: .06em; }

.nr-rec-card-use {
  margin-top: 10px;
  height: 32px; width: 100%; border-radius: var(--radius-sm);
  background: var(--nr-info-soft);
  border: 1px solid var(--nr-info-brd);
  color: var(--nr-info);
  font-size: var(--fs-micro); font-weight: 800; text-transform: uppercase;
  letter-spacing: .1em; cursor: pointer;
  transition: all .2s;
}
.nr-rec-card-use:hover {
  background: var(--nr-surface-info-strong);
  border-color: var(--nr-border-info-ui);
}

/* Prevent global [class*="card"] skin from drawing inner "cable" bars */
.nr-rec-card-brand,
.nr-rec-card-name,
.nr-rec-card-stats,
.nr-rec-card-stat,
.nr-rec-card-use{
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

/* AI text */
.nr-rec-ai-box {
  border-radius: var(--radius-md); padding: 14px 16px;
  background: var(--nr-surface-faint);
  border: 1px solid var(--nr-border-faint);
  position: relative;
}
.nr-rec-ai-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: var(--fs-micro); font-weight: 800; text-transform: uppercase;
  letter-spacing: .18em; color: var(--nr-text-subtle);
  margin-bottom: 8px;
}
.nr-rec-ai-badge::before {
  content: ''; width: 6px; height: 6px; border-radius: 50%;
  background: var(--nr-accent);
  box-shadow: 0 0 6px var(--nr-border-accent-strong);
}
.nr-rec-ai-text {
  font-size: 14px; font-weight: 500;
  line-height: 1.65; color: var(--nr-text-subtle);
}
.nr-rec-ai-text strong, .nr-rec-ai-text b {
  color: var(--nr-text-sec); font-weight: 700;
}

/* Project type badge */
.nr-rec-project-badge {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: var(--fs-micro); font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase;
  padding: 4px 10px; border-radius: var(--radius-sm);
  background: var(--nr-info-soft);
  border: 1px solid var(--nr-info-brd);
  color: var(--nr-info);
}

/* ═══════ BODY & ROOT ═══════ */
body, html { background: var(--nr-bg); color: var(--nr-text); }

/* ═══════ INNER ROWS / SECTIONS ═══════ */
.nr-mass-row {
  background: var(--nr-surface);
  border-color: var(--nr-border);
}

/* ═══════ TEXT ═══════ */
label { color: var(--nr-muted); }

/* ═══════ STATS ═══════ */
.nr-stat { background: var(--nr-surface-alt); border-color: var(--nr-border); }
.nr-stat-k { color: var(--nr-muted); }
.nr-stat-v { color: var(--nr-text); }
/* Improve readability of mini stat labels (WARSTW / MAX / OSTATNIA) */
.nr-ui-mass .nr-stat-k{
  color: rgba(226,232,240,.92);
  opacity: 1;
  letter-spacing: .16em;
}

/* ═══════ INPUTS ═══════ */
input[type="range"] { accent-color: var(--nr-accent); }
input[type="text"], input[type="number"], input[type="email"], input[type="tel"],
select, textarea {
  background: var(--nr-surface-alt);
  color: var(--nr-text);
  border-color: var(--nr-border);
}
input::placeholder { color: var(--nr-muted); }

/* ═══════ MODALS / OVERLAYS ═══════ */
.nr-modal-panel, #slopedInfoModal > div {
  background: var(--nr-surface);
  border-color: var(--nr-border);
  color: var(--nr-text);
}
#slopedInfoModal { background: var(--nr-overlay); }
#slopedInfoModal h3 { color: var(--nr-text); }
#slopedInfoModal p { color: var(--nr-muted); }

/* ═══════ NAVIGATION ═══════ */
#root nav, #root header, #nr-modal-root nav, #nr-modal-root header { background: var(--nr-bg-deep); border-color: var(--nr-border); }

/* ═══════ SCROLLBAR ═══════ */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: var(--nr-bg); }
::-webkit-scrollbar-thumb { background: var(--nr-border-solid); border-radius: 3px; }

/* ═══════ CANVAS AREA stays dark ═══════ */
.nr-canvaswrap { background: #1a1a1c; border-radius: 12px; }

/* ═══════ Light-only adjustments ═══════ */
[data-theme="light"] .nr-col-green { color: var(--nr-success); }
[data-theme="light"] .nr-col-amber { color: var(--nr-warning); }
[data-theme="light"] .nr-col-rose-dk { color: var(--nr-accent); }

/* Inline dark backgrounds: light-mode override */
[data-theme="light"] [style*="background:#050505"],
[data-theme="light"] [style*="background: rgba(5,6,7"] {
  background: var(--nr-surface);
}

/* Mass Balance Layer */
.nr-mass-summary-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  align-items: stretch;
}
.nr-mass-metric{
  min-width: 0;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--nr-border-emphasis);
}
.nr-mass-metric:last-child{ border-bottom: 0; padding-bottom: 0; }
.nr-mass-row--summary .nr-tabular-nums{
  font-size: clamp(2.1rem, 2.35vw, 2.55rem);
  line-height: .95;
}
.nr-mass-row--summary .nr-text-xs{
  font-size: .95rem;
  opacity: .9;
}

/* Asystent formy: mniej "bento w bento", ale z premium detalem */
.nr-mold-assistant{
  background: linear-gradient(180deg, var(--nr-surface-soft-strong), var(--nr-surface-faint));
  border: 1px solid var(--nr-border-strong-ui);
  border-radius: 16px;
  padding: 12px;
}
.nr-mold-setBtn{
  border-color: var(--nr-border-emphasis);
  background: linear-gradient(180deg, var(--nr-surface-chip-strong), var(--nr-surface-soft-strong));
}
.nr-mold-desc{
  color: var(--nr-text-soft-alpha);
}
.nr-mold-grid .nr-mold-cell{
  min-height: 120px;
  padding: 12px 14px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.nr-mold-grid .nr-mold-cell:hover{
  border-color: var(--nr-border-emphasis);
  background: var(--nr-surface-soft);
  transform: translateY(-1px);
}
.nr-mold-grid .nr-mold-cell.is-best{
  border-color: var(--nr-border-accent-ui);
  background: linear-gradient(180deg, var(--nr-surface-accent-strong), var(--nr-surface-accent));
  box-shadow: var(--nr-shadow-accent-cta);
}
.nr-mold-grid .nr-mold-cell > div{
  line-height: 1.2;
}

/* BHP assistant: semantyczne kolory alarmu */
.nr-alertPulse.is-hot .nr-risk-plan{
  background: linear-gradient(180deg, var(--nr-danger-soft), var(--nr-surface-mask));
  border-color: var(--nr-danger-brd);
}
.nr-alertPulse.is-hot .nr-risk-planTitle{
  color: var(--nr-danger);
}
.nr-alertPulse.is-hot .nr-risk-bhpBadge{
  background: var(--nr-danger-soft);
  border-color: var(--nr-danger-brd);
  color: var(--nr-text-contrast);
}
.nr-alertPulse.is-hot .nr-risk-bullet{
  color: var(--nr-danger);
}

/* Dobierz żywicę: usunięcie "kabli" i bardziej czytelne metryki */
.nr-rec-card-brand,
.nr-rec-card-name,
.nr-rec-card-stats{
  background-image: none;
}
.nr-rec-card-stat-k{
  font-size: 10px;
  font-weight: 800;
  text-transform: uppercase;
}
.nr-rec-card-stat-v{
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .02em;
}

/* ===== UI REWORK (main file only) =====
   Goal: less bento, cleaner hierarchy, stable readability
*/
.nr-ui-mass{
  border-radius: 18px;
}
.nr-ui-mass .nr-mass-row{
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,.10);
  border-radius: 0;
  box-shadow: none;
  background: transparent;
  margin: 0;
  padding: 10px 0;
}
.nr-ui-mass .nr-mass-row:last-child{
  border-bottom: 0;
  padding-bottom: 0;
}
.nr-ui-mass .nr-mass-row:first-child{
  padding-top: 0;
}
.nr-ui-mass .nr-mass-row--summary .nr-tabular-nums{
  font-size: clamp(1.9rem, 2.1vw, 2.3rem);
}
.nr-ui-mass .nr-mass-row--summary .nr-text-xs{
  font-size: .88rem;
}
.nr-ui-mass .nr-mass-summary-grid{
  gap: 10px;
}

.nr-ui-risk{
  border-radius: 20px;
  padding: 18px;
}
.nr-ui-risk .nr-riskMicro{
  font-size: 16px;
}
.nr-ui-risk .nr-risk-plan{
  border-radius: 14px;
  padding: 14px;
}
.nr-ui-risk .nr-risk-plan ul{
  margin-top: 4px;
}
.nr-ui-risk .nr-risk-plan li{
  line-height: 1.45;
}
.nr-ui-risk .nr-risk-plan .grid{
  gap: 10px;
}
.nr-ui-risk .nr-risk-bhpBadge{
  letter-spacing: .08em;
}

.nr-ui-rec{
  border-radius: 18px;
  padding: 18px;
}
.nr-ui-rec .nr-rec-header{
  margin-bottom: 12px;
}
.nr-ui-rec .nr-rec-podium{
  gap: 12px;
}
.nr-ui-rec .nr-rec-card-stats{
  border-radius: 10px;
}
.nr-ui-rec .nr-rec-project-badge{
  font-size: 10px;
}

/* Stop global [class*="card"] skin from nesting "bento in bento" inside resin cards */
.nr-ui-rec .nr-rec-card [class*="nr-rec-card-"]{
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  text-shadow: none;
}
.nr-ui-rec .nr-rec-card{
  padding: 12px;
  border-radius: 28px;
  border: 1px solid var(--nr-border-soft-plus);
  background: var(--nr-gradient-panel);
  box-shadow: var(--nr-shadow-panel);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.nr-ui-rec .nr-rec-card:hover{
  transform: translateY(-2px);
  border-color: var(--nr-border-accent-ui);
}
.nr-finish-podium{
  grid-template-columns: 1fr;
}
@media (min-width: 640px){
  .nr-finish-podium{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 900px){
  .nr-finish-podium{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
.nr-ui-rec .nr-rec-card--best{
  border-color: var(--nr-border-accent-soft);
  background: linear-gradient(180deg, var(--nr-surface-accent-cta), var(--nr-surface-accent));
  box-shadow: var(--nr-shadow-accent-cta);
}
.nr-ui-rec .nr-rec-card--best::before{
  content: "NAJLEPSZA";
  top: 12px;
  right: 12px;
  border-radius: 999px;
  padding: 3px 10px;
  border: 1px solid var(--nr-border-accent-ui);
  background: var(--nr-surface-accent-cta);
  color: var(--nr-text-contrast);
  font-size: 9px;
  letter-spacing: .12em;
}
.nr-ui-rec .nr-rec-card-top,
.nr-ui-rec .nr-rec-card-brand,
.nr-ui-rec .nr-rec-card-name,
.nr-ui-rec .nr-rec-card-price,
.nr-ui-rec .nr-rec-card-price-v,
.nr-ui-rec .nr-rec-card-price-u,
.nr-ui-rec .nr-rec-card-price-sub,
.nr-ui-rec .nr-rec-card-features,
.nr-ui-rec .nr-rec-card-features li{
  background: transparent;
  border: 0;
  border-radius: 0;
}
.nr-ui-rec .nr-rec-card-top{
  padding: 6px 8px 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.nr-finish-sheen-btn,
.nr-resin-tips-next{
  height: 30px;
  padding: 0 12px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}
.nr-finish-natural-kicker{
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--nr-text-subtle-strong);
  margin-bottom: 8px;
}
.nr-finish-col{
  position: relative;
}
.nr-finish-natural-kicker--top{
  margin: 0 2px 8px;
}
.nr-finish-col.is-natural .nr-finish-natural-kicker--top{
  position: absolute;
  top: -34px;
  left: 2px;
  margin: 0;
}
.nr-finish-sheen-row{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
}
.nr-finish-sheen-label{
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--nr-text-soft-alpha);
}
.nr-finish-sheen-btn{
  border: 1px solid var(--nr-border-mid);
  background: var(--nr-surface-overlay-soft);
  color: var(--nr-text-soft-alpha);
  letter-spacing: .08em;
}
.nr-finish-sheen-btn.is-active{
  border-color: var(--nr-info-brd);
  background: var(--nr-info-soft);
  color: var(--nr-info);
}
.nr-finish-sheen-btn:disabled{
  opacity: .45;
  cursor: not-allowed;
  filter: grayscale(.15);
}
.nr-ui-rec .nr-rec-card-brand{
  display: inline-flex;
  width: auto;
  margin-bottom: 2px;
  padding: 0;
  color: var(--nr-muted);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
}
.nr-ui-rec .nr-rec-card-name{
  margin-bottom: 4px;
  font-size: 20px;
  line-height: 1.2;
  color: var(--nr-text);
  padding: 0;
}
.nr-ui-rec .nr-rec-card-price{
  display: grid;
  grid-template-columns: max-content max-content;
  align-items: end;
  justify-content: start;
  column-gap: 8px;
  min-height: 56px;
  line-height: 1;
  padding: 0;
}
.nr-ui-rec .nr-rec-card-price-v{
  font-size: 48px;
  font-weight: 900;
  line-height: .9;
  font-variant-numeric: tabular-nums;
  min-width: 1.6ch;
  text-align: right;
  letter-spacing: -.03em;
  color: var(--nr-text);
  padding: 0;
}
.nr-ui-rec .nr-rec-card-price-u{
  font-size: 20px;
  font-weight: 700;
  line-height: 1;
  margin: 0 0 .16em 0;
  align-self: end;
  color: var(--nr-text-soft-alpha);
  padding: 0;
}
.nr-ui-rec .nr-rec-card-price-sub{
  margin-top: 2px;
  font-size: 12px;
  font-weight: 600;
  color: var(--nr-muted);
  padding: 0;
}
.nr-ui-rec .nr-rec-card-features{
  list-style: none;
  margin: 0;
  padding: 2px 8px 0;
  display: grid;
  gap: 8px;
}
.nr-ui-rec .nr-rec-card-features li{
  position: relative;
  padding-left: 22px;
  font-size: 15px;
  color: var(--nr-text-soft-alpha);
  line-height: 1.35;
}
.nr-ui-rec .nr-rec-card-features li::before{
  content: "✓";
  position: absolute;
  left: 0;
  top: -1px;
  color: var(--nr-info);
  font-weight: 800;
  font-size: 18px;
}
.nr-ui-rec .nr-rec-card-use{
  margin-top: auto;
  height: 44px;
  border-radius: 999px;
  font-size: 12px;
  letter-spacing: .08em;
  border: 1px solid var(--nr-border-mid);
  background: var(--nr-gradient-panel);
  color: var(--nr-text);
}
.nr-ui-rec .nr-rec-card-use:hover{
  background: var(--nr-surface-overlay-strong);
  border-color: var(--nr-border-accent-ui);
}
.nr-ui-rec .nr-rec-card--best .nr-rec-card-use{
  background: var(--nr-gradient-accent-cta);
  color: var(--nr-text-contrast);
  border-color: var(--nr-border-accent-strong);
}
.nr-ui-rec .nr-rec-card-tip{
  margin-top:8px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--nr-info-brd);
  background:var(--nr-info-soft);
  font-size:12px;
  line-height:1.4;
  color:var(--nr-info);
}
.nr-finish-tips{
  margin-top: 10px;
  display: grid;
  gap: 8px;
  padding: 0;
  border: 0;
  background: transparent;
  max-width: none;
}
.nr-finish-tips-title{
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.7);
  margin: 0;
}
.nr-finish-tips-pills{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.nr-finish-tip-pill{
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 0 11px;
  border-radius: 999px;
  border: 1px solid var(--nr-border-emphasis);
  background: var(--nr-surface-soft-strong);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  color: var(--nr-text);
}
.nr-finish-extra-tips-list{
  margin: 2px 0 0;
  padding-left: 18px;
  display: grid;
  gap: 5px;
}
.nr-finish-extra-tips-list li{
  font-size: 12px;
  line-height: 1.45;
  color: rgba(255,255,255,.78);
}
.nr-resin-tips-panel{
  margin-top:10px;
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(126,196,184,.22);
  background:linear-gradient(180deg, rgba(20,43,41,.35), rgba(8,15,20,.45));
  display:grid;
  gap:8px;
}
.nr-resin-tips-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.nr-resin-tips-title{
  font-size:11px;
  letter-spacing:.09em;
  text-transform:uppercase;
  font-weight:900;
  color:rgba(216,236,232,.88);
}
.nr-resin-tips-counter{
  font-size:10px;
  font-weight:800;
  color:rgba(154,195,188,.9);
}
.nr-resin-tips-list{
  margin:0;
  padding-left:18px;
  display:grid;
  gap:6px;
}
.nr-resin-tips-list li{
  font-size:13px;
  line-height:1.45;
  color:rgba(235,241,248,.9);
}
.nr-resin-tips-next{
  justify-self:start;
  border:1px solid rgba(126,196,184,.34);
  background:rgba(16,37,35,.72);
  color:#b8ead1;
  letter-spacing:.06em;
}
.nr-tech-strip{
  width:100%;
  max-width:100%;
  background:
    radial-gradient(circle at top right, rgba(255,255,255,.035), transparent 28%),
    linear-gradient(180deg, rgba(24,27,33,.98), rgba(16,19,24,.99));
  color:#fff;
  font-family:"Share Tech Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:.05em;
  padding:10px 16px;
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:16px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:18px;
  overflow-x:auto;
  white-space:nowrap;
  box-shadow:0 14px 34px rgba(0,0,0,.22);
}
.nr-tech-strip::-webkit-scrollbar{display:none}
.nr-tech-strip{-ms-overflow-style:none;scrollbar-width:none}
.nr-tech-strip-left{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  height:34px;
  min-width:34px;
  flex-shrink:0;
}
.nr-tech-strip-version{
  font-size:13px;
  line-height:1;
  color:#f0b0a5;
}
.nr-tech-strip-dots{
  display:flex;
  gap:4px;
  font-size:12px;
  line-height:1;
  color:#717986;
}
.nr-tech-strip-dots .is-filled{color:#fff}
.nr-tech-strip-graphic{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
}
.nr-tech-strip-main{
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:3px;
  flex:1 1 auto;
  min-width:380px;
}
.nr-tech-strip-line{
  display:flex;
  align-items:center;
  line-height:1.25;
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.nr-tech-strip-line.is-primary{
  color:#f2f3f5;
  font-size:13px;
}
.nr-tech-strip-line.is-secondary{
  color:#d7dbe2;
  font-size:11px;
}
.nr-tech-strip-line.is-tertiary{
  color:#919aa7;
  font-size:10px;
}
.nr-tech-strip-tm{
  font-size:8px;
  vertical-align:super;
  margin-left:2px;
}
.nr-tech-strip-circle{
  margin-left:6px;
  font-size:11px;
  color:#a0a8b3;
}
.nr-tech-strip-arrow{
  margin:0 5px;
  color:#7b8390;
}
.nr-tech-strip-stats{
  display:flex;
  flex-direction:column;
  gap:5px;
  flex-shrink:0;
  padding-left:12px;
  border-left:1px solid rgba(255,255,255,.12);
  min-width:186px;
}
.nr-tech-strip-stat-row{
  display:flex;
  align-items:center;
  gap:8px;
  line-height:1.1;
}
.nr-tech-strip-pill{
  width:28px;
  height:6px;
  border:1px solid #5d626b;
  border-radius:5px;
  position:relative;
  display:inline-block;
  flex-shrink:0;
}
.nr-tech-strip-pill-dot{
  width:4px;
  height:4px;
  background-color:#fff;
  border-radius:50%;
  position:absolute;
  top:0;
}
.nr-tech-strip-stat-val{
  font-weight:700;
  width:46px;
  text-align:right;
  color:#f2b1a6;
}
.nr-tech-strip-stat-label{
  color:#d4d9e2;
}
@media (max-width:980px){
  .nr-tech-strip{
    display:grid;
    grid-template-columns:auto 1fr;
    grid-template-areas:
      "left main"
      "stats stats";
    align-items:start;
    gap:10px 12px;
    padding:10px 14px;
    overflow-x:hidden;
    white-space:normal;
  }
  .nr-tech-strip-left{
    grid-area:left;
    height:30px;
    min-width:22px;
  }
  .nr-tech-strip-version{font-size:12px}
  .nr-tech-strip-dots{font-size:10px}
  .nr-tech-strip-graphic{
    display:none;
  }
  .nr-tech-strip-main{
    grid-area:main;
    min-width:0;
    width:100%;
    gap:2px;
  }
  .nr-tech-strip-line{
    display:block;
    line-height:1.28;
  }
  .nr-tech-strip-line.is-primary{font-size:11px}
  .nr-tech-strip-line.is-secondary{font-size:9px}
  .nr-tech-strip-line.is-tertiary{font-size:8px}
  .nr-tech-strip-circle{margin-left:4px}
  .nr-tech-strip-arrow{margin:0 4px}
  .nr-tech-strip-stats{
    grid-area:stats;
    min-width:0;
    width:100%;
    padding-left:0;
    padding-top:8px;
    border-left:0;
    border-top:1px solid rgba(255,255,255,.10);
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:8px;
  }
  .nr-tech-strip-stat-row{
    gap:6px;
    justify-content:flex-start;
    min-width:0;
  }
  .nr-tech-strip-stat-val{
    width:auto;
    min-width:0;
    text-align:left;
    font-size:11px;
  }
  .nr-tech-strip-stat-label{
    font-size:9px;
    min-width:0;
  }
}
@media (max-width:640px){
  .nr-tech-strip{
    padding:10px 12px;
  }
}
@media (max-width:420px){
  .nr-tech-strip{
    gap:8px 10px;
    padding:9px 10px;
  }
  .nr-tech-strip-line.is-primary{font-size:10px}
  .nr-tech-strip-line.is-secondary{font-size:8px}
  .nr-tech-strip-line.is-tertiary{font-size:7px}
  .nr-tech-strip-stats{
    grid-template-columns:1fr;
    gap:6px;
  }
}
.nr-resin-tips-modal{
  position:fixed;
  inset:0;
  z-index:var(--nr-z-modal-raised);
  background:rgba(2,6,12,.72);
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:18px;
}
.nr-resin-tips-modal-card{
  width:min(840px, 100%);
  max-height:min(82vh, 720px);
  overflow:auto;
  border-radius:18px;
  border:1px solid rgba(126,196,184,.28);
  background:linear-gradient(180deg, rgba(7,11,18,.98), rgba(4,7,12,.98));
  padding:14px 16px 16px;
}
.nr-resin-tips-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:10px;
}
.nr-resin-tips-modal-kicker{
  font-size:10px;
  font-weight:800;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:rgba(150,172,210,.78);
}
.nr-resin-tips-modal-title{
  margin-top:3px;
  font-size:16px;
  font-weight:900;
  color:#eaf0f7;
}
.nr-resin-tips-modal-close{
  width:34px;
  height:34px;
  border-radius:10px;
  border:1px solid var(--nr-border-emphasis);
  background:var(--nr-surface-chip);
  color:var(--nr-text);
  font-weight:900;
}
.nr-resin-tips-modal-list{
  margin:0;
  padding-left:20px;
  display:grid;
  gap:8px;
}
.nr-resin-tips-modal-list li{
  font-size:14px;
  line-height:1.5;
  color:rgba(234,240,247,.9);
}
@media (max-width: 639px){
  .nr-card-peek{
    display:flex;
    gap:10px;
    overflow-x:auto;
    overflow-y:visible;
    scroll-snap-type:x mandatory;
    padding-bottom:4px;
    -webkit-overflow-scrolling:touch;
  }
  .nr-card-peek > *{
    flex:0 0 calc(100% - 52px);
    min-width:calc(100% - 52px);
    scroll-snap-align:start;
  }
  .nr-card-peek .nr-rec-card{
    height:100%;
  }
}
@media (min-width: 640px){
  .nr-card-peek{
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  .nr-card-peek::-webkit-scrollbar{
    display:none;
  }
}

@media (max-width: 900px){
  .nr-ui-rec .nr-rec-card-name{
    font-size: 18px;
  }
  .nr-ui-rec .nr-rec-card-price-v{
    font-size: 40px;
  }
  .nr-ui-rec .nr-rec-card-price-u{
    font-size: 18px;
    margin: 0 0 .16em 0;
  }
}

@media (max-width: 900px){
  .nr-ui-risk{
    padding: 14px;
  }
  .nr-ui-rec{
    padding: 14px;
  }
}

/* System UI Layer */
/* System UI tune-up */
:root{
  --nr-cta-h: 46px;
}

/* 1) CTA: 2 variants + one size */
.nr-rec-btn,
.nr-rec-card-use,
.nr-cta-btn{
  height: var(--nr-cta-h);
  border-radius: var(--radius-md);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .08em;
}
/* Keep recommendation CTA in one horizontal row (icon + label). */
.nr-rec-btn{
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
  line-height: 1;
  align-self: center;
}
.nr-cta-btn--primary{
  background: linear-gradient(180deg, rgba(194,106,97,.18), rgba(96,42,39,.22));
  color: #d89a92;
  border: 1px solid rgba(194,106,97,.44);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05);
}
.nr-cta-btn--primary:hover{
  background: linear-gradient(180deg, rgba(194,106,97,.26), rgba(126,54,50,.30));
  color: #f3c2ba;
  border-color: rgba(194,106,97,.68);
}
.nr-cta-btn--secondary{
  background: rgba(255,255,255,.025);
  color: rgba(234,240,247,.68);
  border: 1px solid rgba(255,255,255,.16);
}
.nr-cta-btn--secondary:hover{
  background: rgba(194,106,97,.07);
  color: #ead6d2;
  border-color: rgba(194,106,97,.32);
}

/* 3) Radius system — single source of truth via CSS vars */
.nr-radius-sm{ border-radius: var(--radius-sm); }
.nr-radius-md{ border-radius: var(--radius-md); }
.nr-radius-lg{ border-radius: var(--radius-lg); }
.nr-radius-xl{ border-radius: var(--radius-xl); }

.nr-ui-rec .nr-rec-card,
.nr-ui-rec .nr-rec-card-top{
  border-color: rgba(255,255,255,.08);
}

/* 5) Mobile hit-area */
@media (max-width: 768px){
  .nr-seg-btn,
  .nr-ai-tb-btn,
  .nr-rec-btn,
  .nr-rec-card-use,
  .nr-cta-btn{
    min-height: 44px;
  }
  input[type="range"]{
    min-height: 44px;
  }
}

/* AI status badge */
.nr-ai-status{
  position: fixed;
  top: 62px;
  right: 16px;
  z-index: var(--nr-z-status);
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  border-radius: var(--radius-md);
  border: 1px solid var(--nr-border-stronger);
  background: var(--nr-surface-overlay-strong);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: var(--nr-shadow-dropdown);
}
.nr-ai-status-dot{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--nr-muted);
}
.nr-ai-status-txt{
  font-size: 12px;
  font-weight: 700;
  color: var(--nr-text-soft-alpha);
}
/* monochrome status dots — loading=white pulse, success=white, error=accent */
.nr-ai-status--loading .nr-ai-status-dot{ background:var(--nr-text-soft-alpha); box-shadow: 0 0 0 6px var(--nr-surface-chip); animation: nrDotPulse 1.2s ease-in-out infinite; }
.nr-ai-status--success .nr-ai-status-dot{ background:var(--nr-success); box-shadow: 0 0 0 6px var(--nr-success-soft); }
.nr-ai-status--error .nr-ai-status-dot{ background:var(--nr-danger); box-shadow: 0 0 0 6px var(--nr-danger-soft); }
@keyframes nrDotPulse{ 0%,100%{ opacity:.6; transform:scale(1); } 50%{ opacity:1; transform:scale(1.15); } }

@media (max-width: 768px){
  .nr-ai-status{
    top: 56px;
    right: 10px;
    left: 10px;
    justify-content: center;
  }
}

.text-\[\#5ba89e\]{
  color: var(--nr-info);
}

/* Export row: default grid, compact variant for PDF + Studio */
.nr-export-row{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  width: 100%;
  align-items: center;
  position: relative;
}
.nr-export-row.nr-export-row--compact{
  grid-template-columns: repeat(2, minmax(180px, 280px));
  justify-content: flex-start;
  max-width: 580px;
}
.nr-export-btn{
  width: 100%;
  min-width: 0;
  padding-inline: 16px;
}
@media (max-width: 980px){
  .nr-export-row{
    grid-template-columns: repeat(2, minmax(140px, 260px));
    justify-content: center;
    gap: 8px;
    margin-inline: auto;
  }
  .nr-export-btn{
    height: 42px;
    font-size: 12px;
    letter-spacing: .05em;
  }
}
@media (max-width: 560px){
  .nr-export-row.nr-export-row--compact{
    grid-template-columns: 1fr;
    max-width: none;
  }
}

/* Mobile: values in mass summary must never be clipped */
.nr-ui-mass .nr-mass-row--summary .break-all{
  word-break: normal;
  overflow-wrap: anywhere;
}
@media (max-width: 768px){
  .nr-ui-mass .nr-mass-row--summary .nr-tabular-nums{
    font-size: clamp(1.45rem, 7.1vw, 1.9rem);
    line-height: 1.02;
    letter-spacing: -.01em;
  }
  .nr-ui-mass .nr-mass-row--summary .nr-text-xs{
    font-size: .88rem;
  }
}

/* Layout reorder: full-width visual -> resin table -> 3 supporting cards */
.nr-layout-visual{ order: -50; }
.nr-layout-resin{ order: -49; }
.nr-layout-mass{ order: -48; }
.nr-layout-mold{ order: -47; }
.nr-layout-conditions{ order: -46; }

/* Wide resin section in table style */
.nr-layout-resin .nr-scrollfade-box{
  background: transparent;
  border: 1px solid var(--nr-border-strong-ui);
  border-radius: 14px;
  overflow: hidden;
}
.nr-layout-resin .nr-scrollfade-box::after{
  display: none;
}
.nr-layout-resin .nr-resin-rows{
  max-height: 260px;
  overflow-y: auto;
}
.nr-layout-resin .nr-resin-rows::-webkit-scrollbar{
  width: 8px;
}
.nr-layout-resin .nr-resin-rows::-webkit-scrollbar-thumb{
  background: var(--nr-border-emphasis);
  border-radius: 999px;
}
.nr-layout-resin .nr-resin-controls{
  display: flex;
  flex-wrap: nowrap;
  overflow-x: auto;
  gap: 8px;
  margin-bottom: 10px;
  align-items: center;
}
.nr-layout-resin .nr-resin-controls-source{
  min-width: 0;
}
.nr-layout-resin .nr-resin-type-filters{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  margin: 0;
  justify-content:flex-start;
  align-items:center;
  min-width: 0;
  overflow-x: auto;
  flex-shrink: 0;
}
.nr-layout-resin .nr-resin-type-filter{
  appearance:none;
  cursor:pointer;
  transition: transform .08s ease, box-shadow .14s ease, border-color .14s ease, background-color .14s ease, opacity .14s ease;
}
.nr-layout-resin .nr-resin-type-filter:active{
  transform: translateY(1px);
}
.nr-layout-resin .nr-resin-type-filter.is-all{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 14px;
  max-width: 100%;
  border-radius:999px;
  border:1px solid var(--nr-border-strong-ui);
  background:var(--nr-surface-control-idle);
  color:var(--nr-text-subtle-strong);
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  line-height:1;
  white-space:nowrap;
}
.nr-layout-resin .nr-resin-controls > *{
  min-width: 0;
}
.nr-layout-resin .nr-fancy-select-trigger span:first-child{
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.nr-layout-resin .nr-resin-type-filter:not(.is-active){
  opacity:.94;
}
.nr-layout-resin .nr-resin-type-filter.is-active{
  box-shadow: 0 0 0 1px var(--nr-border-faint) inset, var(--nr-shadow-utility-lg);
  opacity:1;
}
.nr-layout-resin .nr-resin-type-filter.is-all.is-active{
  border-color: var(--nr-info-brd);
  background: var(--nr-info-soft);
  color: var(--nr-info);
}
.nr-layout-resin .nr-resin-source-toggle{
  width: auto;
  margin: 0;
  padding: 4px;
  gap: 4px;
  grid-template-columns: max-content max-content;
  border-radius: 0;
  background: transparent;
  border: 0;
  box-shadow: none;
}

#root :is(.nr-layout-resin, .nr-layout-conditions, .nr-layout-wood, .nr-layout-mold) .nr-bg-white,
#root :is(.nr-layout-resin, .nr-layout-conditions, .nr-layout-wood, .nr-layout-mold) a.nr-bg-white{
  background:var(--nr-surface-chip-strong);
  border-color:var(--nr-border-emphasis);
  color:var(--nr-text);
  box-shadow:inset 0 1px 0 var(--nr-border-faint);
}

#root :is(.nr-layout-resin, .nr-layout-conditions, .nr-layout-wood, .nr-layout-mold) .nr-hover-zinc:hover{
  background:var(--nr-surface-hover);
  color:var(--nr-text);
}

.nr-layout-resin .nr-resin-controls .nr-resin-source-toggle{
  min-width: 0;
}
.nr-layout-resin .nr-resin-source-toggle .nr-seg-btn{
  height: 32px;
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: .02em;
  padding: 0 14px;
  min-width: 0;
  white-space: nowrap;
}
.nr-layout-resin .nr-resin-controls input,
.nr-layout-resin .nr-resin-controls select{
  height: 34px;
  border: 1px solid var(--nr-control-border-dark);
  border-radius: var(--radius-sm);
  background: var(--nr-control-bg-dark);
  color: var(--nr-control-text-soft);
  font-size: 12px;
  font-weight: 700;
  padding: 0 10px;
  transition: border-color .14s ease, box-shadow .14s ease;
}
.nr-layout-resin .nr-resin-controls input:focus-visible,
.nr-layout-resin .nr-resin-controls select:focus-visible{
  outline: none;
  border-color: var(--nr-border-accent-strong);
  box-shadow: 0 0 0 2px var(--nr-border-accent-ui);
}
.nr-layout-resin .nr-resin-search-input{
  min-width:0;
}
.nr-layout-resin .nr-fancy-select{
  position: relative;
  min-width: 0;
}
.nr-layout-resin .nr-fancy-select-trigger{
  width: 100%;
  height: 34px;
  border: 1px solid var(--nr-control-border-dark);
  border-radius: var(--radius-sm);
  background: var(--nr-control-bg-dark);
  color: var(--nr-control-text-soft);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
  padding: 0 10px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  cursor: pointer;
  text-align: left;
  transition: border-color .14s ease, box-shadow .14s ease, transform .08s ease;
}
.nr-layout-resin .nr-fancy-select-trigger:hover{
  border-color: var(--nr-border-stronger);
  box-shadow: var(--nr-shadow-inset-ui);
}
.nr-layout-resin .nr-fancy-select-trigger:focus-visible{
  outline: 2px solid var(--nr-border-accent-strong);
  outline-offset: 2px;
  border-color: var(--nr-border-accent-strong);
}
.nr-layout-resin .nr-fancy-select.is-open .nr-fancy-select-trigger{
  border-color: var(--nr-border-accent-strong);
  box-shadow: 0 0 0 1px var(--nr-border-accent-ui), var(--nr-shadow-utility-lg);
}
.nr-layout-resin .nr-fancy-select-caret{
  font-size: 12px;
  line-height: 1;
  color: var(--nr-control-text-dim);
  transition: transform .16s ease;
}
.nr-layout-resin .nr-fancy-select.is-open .nr-fancy-select-caret{
  transform: rotate(180deg);
}
.nr-layout-resin .nr-fancy-select-menu{
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  max-height: 280px;
  overflow: auto;
  z-index: 45;
  border: 1px solid var(--nr-control-border-dark);
  border-radius: var(--radius-sm);
  background: linear-gradient(180deg, var(--nr-surface-overlay-strong), var(--nr-surface-mask));
  box-shadow: var(--nr-shadow-dropdown), 0 0 0 1px var(--nr-surface-faint) inset;
  padding: 6px;
}
.nr-layout-resin .nr-fancy-select-menu::-webkit-scrollbar{
  width: 8px;
}
.nr-layout-resin .nr-fancy-select-menu::-webkit-scrollbar-thumb{
  background: var(--nr-control-text-faint);
  border-radius: 999px;
}
.nr-layout-resin .nr-fancy-select-option{
  width: 100%;
  border: 0;
  background: transparent;
  color: var(--nr-control-text-soft);
  font-size: 13px;
  font-weight: 700;
  padding: 9px 10px;
  border-radius: var(--radius-sm);
  text-align: left;
  cursor: pointer;
  transition: background .12s ease, color .12s ease;
}
.nr-layout-resin .nr-fancy-select-option:hover,
.nr-layout-resin .nr-fancy-select-option:focus-visible{
  background: var(--nr-surface-accent-cta);
  color: var(--nr-text-contrast);
  outline: none;
}
.nr-layout-resin .nr-fancy-select-option.is-active{
  background: var(--nr-surface-accent-strong);
  color: var(--nr-text-contrast);
  box-shadow: 0 0 0 1px var(--nr-border-accent-ui) inset;
}
.nr-layout-resin .nr-resin-controls input::placeholder{
  color: var(--nr-control-text-faint);
}
.nr-layout-resin .nr-resin-table-head{
  display: grid;
  grid-template-columns: 1.92fr .56fr .56fr .84fr .62fr;
  gap: 8px;
  align-items: center;
  padding: 10px 12px;
  border-bottom: 1px solid var(--nr-border-strong-ui);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: var(--nr-control-text-faint);
}
.nr-layout-resin .nr-resin-table-head > *{
  position: relative;
  min-width: 0;
  padding-inline: 10px;
}
.nr-layout-resin .nr-resin-table-head > :not(:last-child)::after{
  content: "";
  position: absolute;
  top: -10px;
  bottom: -10px;
  right: -4px;
  width: 1px;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0) 0%,
      var(--nr-border-strong-ui) 12%,
      var(--nr-border-strong-ui) 88%,
    rgba(255,255,255,0) 100%
  );
  pointer-events: none;
}
.nr-layout-resin .nr-resin-row{
  width: 100%;
  display: grid;
  grid-template-columns: 1.92fr .56fr .56fr .84fr .62fr;
  gap: 8px;
  align-items: center;
  min-height: 52px;
  padding: 8px 12px;
  border: 0;
  border-bottom: 1px solid var(--nr-border-faint);
  border-radius: 0;
  box-shadow: none;
  position: relative;
  overflow: hidden;
  transition: box-shadow .18s ease, border-color .18s ease, background-color .18s ease;
}
.nr-layout-resin .nr-resin-row:focus-visible{
  outline: 2px solid var(--nr-border-accent-strong);
  outline-offset: -2px;
  background-color: var(--nr-surface-accent-cta);
}
.nr-layout-resin .nr-resin-row > *{
  position: relative;
  min-width: 0;
  padding-inline: 10px;
}
.nr-layout-resin .nr-resin-row > :not(:last-child)::after{
  content: "";
  position: absolute;
  top: -8px;
  bottom: -8px;
  right: -4px;
  width: 1px;
  background: linear-gradient(
    180deg,
    rgba(255,255,255,0) 0%,
      var(--nr-border-faint) 14%,
      var(--nr-border-faint) 86%,
    rgba(255,255,255,0) 100%
  );
  pointer-events: none;
}
.nr-layout-resin .nr-resin-row::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(180px circle at var(--mx, 50%) var(--my, 50%), var(--nr-surface-accent-cta), transparent 72%);
  transition: opacity .16s ease;
}
.nr-layout-resin .nr-resin-row::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  border-top: 1px solid var(--nr-border-faint);
  border-bottom: 1px solid var(--nr-border-strong-ui);
  transition: opacity .16s ease;
}
@media (hover: hover) and (pointer: fine){
  .nr-layout-resin .nr-resin-row:hover{
    box-shadow: var(--nr-shadow-utility-lg), inset 0 1px 0 var(--nr-border-faint);
    border-bottom-color: var(--nr-border-emphasis);
  }
  .nr-layout-resin .nr-resin-row:hover > :not(:last-child)::after{
    background: linear-gradient(
      180deg,
      rgba(255,255,255,0) 0%,
      var(--nr-border-emphasis) 12%,
      var(--nr-border-emphasis) 88%,
      rgba(255,255,255,0) 100%
    );
  }
  .nr-layout-resin .nr-resin-row:hover::before,
  .nr-layout-resin .nr-resin-row:hover::after{
    opacity: 1;
  }
}
.nr-layout-resin .nr-resin-row:last-child{
  border-bottom: 0;
}
.nr-layout-resin .nr-resin-row.is-pending > *{
  filter: blur(5px);
  opacity: .42;
  pointer-events: none;
  user-select: none;
}
.nr-layout-resin .nr-resin-row.is-pending > :first-child{
  filter: none;
  opacity: 1;
  pointer-events: none;
  user-select: none;
  position: relative;
  z-index: 2;
}
.nr-layout-resin .nr-resin-row.is-pending > :not(:first-child){
  filter: blur(5px);
  opacity: .42;
  pointer-events: none;
  user-select: none;
}
.nr-layout-resin .nr-resin-row.is-pending::before{
  opacity: 0;
}
.nr-layout-resin .nr-resin-row.is-pending::after{
  content: attr(data-pending-message);
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: clamp(268px, 36%, 520px);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 26px;
  text-align: center;
  pointer-events: none;
  opacity: 1;
  color: var(--nr-text);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
  background:
    linear-gradient(90deg,
      rgba(17,18,20,0) 0%,
      rgba(17,18,20,.08) 8%,
      rgba(17,18,20,.22) 16%,
      rgba(17,18,20,.38) 28%,
      rgba(17,18,20,.52) 100%
    ),
    linear-gradient(180deg, var(--nr-surface-overlay-soft), var(--nr-surface-chip));
  text-shadow: 0 1px 16px rgba(0,0,0,.55);
}
.nr-layout-resin .nr-resin-row.is-pending:hover{
  box-shadow: none;
  border-bottom-color: rgba(255,255,255,.08);
}
.nr-layout-resin .nr-resin-name{
  font-size: 13px;
  font-weight: 800;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nr-layout-resin .nr-tds-pill{
  display:inline-flex;
  align-items:center;
  max-width:none;
  height:18px;
  padding:0 7px;
  margin-left:6px;
  border-radius:999px;
  border:1px solid var(--nr-border-strong-ui);
  background:var(--nr-surface-chip);
  color:var(--nr-text-muted-alpha);
  font-size:9px;
  font-weight:900;
  letter-spacing:.05em;
  text-transform:uppercase;
  vertical-align:middle;
  white-space:nowrap;
  overflow:visible;
}
.nr-layout-resin .nr-warn-pill{
  display:inline-flex;
  align-items:center;
  height:18px;
  padding:0 6px;
  margin-left:5px;
  border-radius:999px;
  border:1px solid var(--nr-warning-brd);
  background:var(--nr-warning-soft);
  color:var(--nr-warning);
  font-size:11px;
  font-weight:900;
  vertical-align:middle;
  white-space:nowrap;
  cursor:default;
  line-height:1;
}
.nr-layout-resin .nr-tips-pill{
  display:inline-flex;
  align-items:center;
  height:18px;
  padding:0 7px;
  margin-left:5px;
  border-radius:999px;
  border:1px solid var(--nr-info-brd);
  background:var(--nr-info-soft);
  color:var(--nr-info);
  font-size:9px;
  font-weight:900;
  letter-spacing:.06em;
  text-transform:uppercase;
  vertical-align:middle;
  white-space:nowrap;
}
.nr-layout-resin .nr-resin-cell{
  font-size: 12px;
  font-weight: 700;
  color: var(--nr-text-soft-alpha);
  font-variant-numeric: tabular-nums;
}
.nr-layout-resin .nr-resin-cell.is-warn{
  color: var(--nr-warning);
}
.nr-layout-resin .nr-resin-cell.is-ok{
  color: var(--nr-success);
}
.nr-layout-resin .nr-resin-type-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--nr-border-strong-ui);
  background:var(--nr-surface-chip);
  font-size: clamp(10px, 0.72vw, 12px);
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  line-height:1;
  white-space:nowrap;
}
.nr-layout-resin .nr-resin-controls-types .nr-resin-type-pill{
  min-height:36px;
  padding:0 14px;
  border-radius:var(--radius-sm);
  font-size: clamp(10px, 0.72vw, 12px);
  letter-spacing:.12em;
}
.nr-layout-resin .nr-resin-controls-types .nr-resin-type-pill.is-art{
  color:var(--nr-accent-soft);
  border-color:var(--nr-border-accent-ui);
  background:var(--nr-surface-accent);
}
.nr-layout-resin .nr-resin-controls-types .nr-resin-type-pill.is-table{
  color:var(--nr-info);
  border-color:var(--nr-info-brd);
  background:var(--nr-info-soft);
}
.nr-layout-resin .nr-resin-controls-types .nr-resin-type-pill.is-deep{
  color:var(--nr-danger);
  border-color:var(--nr-danger-brd);
  background:var(--nr-danger-soft);
}
.nr-layout-resin .nr-resin-controls-types .nr-resin-type-pill.is-active{
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.04),
    0 0 0 1px rgba(255,255,255,.03),
    0 8px 18px rgba(0,0,0,.18);
}
.nr-layout-resin .nr-resin-controls-types .nr-resin-type-pill.is-art.is-active{
  color:#ddbaff;
  border-color:rgba(177,103,255,.52);
  background:rgba(82,34,130,.34);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.04),
    0 0 0 1px rgba(177,103,255,.16),
    0 10px 22px rgba(60,24,98,.28);
}
.nr-layout-resin .nr-resin-controls-types .nr-resin-type-pill.is-table.is-active{
  color:#b9ece6;
  border-color:rgba(79,166,162,.50);
  background:rgba(24,82,82,.34);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.04),
    0 0 0 1px rgba(79,166,162,.16),
    0 10px 22px rgba(18,66,66,.26);
}
.nr-layout-resin .nr-resin-controls-types .nr-resin-type-pill.is-deep.is-active{
  color:var(--nr-danger);
  border-color:var(--nr-danger-brd);
  background:var(--nr-danger-soft);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.04),
    0 0 0 1px rgba(227,140,134,.16),
    0 10px 22px rgba(85,38,38,.28);
}
.nr-layout-resin .nr-resin-controls-types .nr-resin-type-filter:not(.is-active).nr-resin-type-pill{
  box-shadow:none;
}
.nr-layout-resin .nr-resin-type-pill.is-art{
  color:var(--nr-accent-soft);
  border-color:var(--nr-border-accent-ui);
  background:var(--nr-surface-accent);
}
.nr-layout-resin .nr-resin-type-pill.is-table{
  color:var(--nr-info);
  border-color:var(--nr-info-brd);
  background:var(--nr-info-soft);
}
.nr-layout-resin .nr-resin-type-pill.is-deep{
  color:var(--nr-danger);
  border-color:var(--nr-danger-brd);
  background:var(--nr-danger-soft);
}
.nr-layout-resin .nr-resin-type-pill.is-uv{
  color:var(--nr-warning);
  border-color:var(--nr-warning-brd);
  background:var(--nr-warning-soft);
}
.nr-layout-resin .nr-resin-type-pill.is-other{
  color:var(--nr-text-subtle-strong);
  border-color:var(--nr-border-strong-ui);
  background:var(--nr-surface-chip);
}
.nr-layout-resin .nr-resin-pick{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 28px;
  min-width: 98px;
  padding: 0 12px;
  line-height: 1;
  text-align: center;
  border-radius: 999px;
  border: 1px solid rgba(148,163,184,.34);
  background: rgba(10,14,20,.8);
  color: #eaf0fa;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  justify-self: end;
  white-space: nowrap;
}
.nr-layout-resin .nr-resin-action-wrap{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:6px;
}
.nr-layout-resin .nr-resin-tips-btn{
  height:26px;
  min-width:56px;
  padding:0 9px;
  border-radius:999px;
  border:1px solid rgba(126,196,184,.34);
  background:rgba(14,33,31,.66);
  color:#9ad4ce;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.nr-layout-resin .nr-resin-row.is-active .nr-resin-pick{
  background: var(--nr-accent);
  border-color: var(--nr-border-accent-strong);
  color: var(--nr-text-contrast);
}
@media (min-width: 981px){
  .nr-layout-resin .nr-resin-controls{
    gap: 10px;
  }
  .nr-layout-resin .nr-resin-controls-source{
    flex: 0 0 auto;
    width: auto;
  }
  .nr-layout-resin .nr-resin-controls > .nr-resin-controls-source.nr-resin-source-toggle{
    display: inline-grid;
    grid-template-columns: repeat(2, max-content);
    width: fit-content;
    flex: 0 0 max-content;
    justify-content: start;
    align-items: center;
    padding: 3px;
    gap: 3px;
  }
  .nr-layout-resin .nr-resin-source-toggle .nr-seg-btn{
    padding: 0 16px;
  }
  .nr-layout-resin .nr-resin-controls > .nr-resin-controls-source.nr-resin-source-toggle .nr-seg-btn{
    width: auto;
    min-width: max-content;
    height: 30px;
    padding: 0 12px;
    font-size: 9px;
    letter-spacing: .015em;
  }
  .nr-layout-resin .nr-resin-controls-types{
    flex-wrap: nowrap;
    justify-content: flex-end;
    overflow: visible;
    white-space: nowrap;
    gap: 6px;
  }
  .nr-layout-resin .nr-resin-source-toggle .nr-seg-btn{
    padding: 0 10px;
    font-size: 9px;
  }
  .nr-layout-resin .nr-resin-type-filter.is-all,
  .nr-layout-resin .nr-resin-controls-types .nr-resin-type-pill{
    min-height: 26px;
    padding: 0 10px;
    font-size: clamp(9px, .58vw, 11px);
  }
}
@media (max-width: 980px){
  .nr-layout-resin .nr-resin-controls{
    flex-wrap: wrap;
  }
  .nr-layout-resin .nr-resin-controls-source,
  .nr-layout-resin .nr-resin-search-input{
    flex: 1 1 100%;
  }
  .nr-layout-resin .nr-resin-controls-brand{
    flex: 1 1 auto;
    min-width: 0;
  }
  .nr-layout-resin .nr-resin-controls-sort{
    flex: 1 1 auto;
    min-width: 0;
  }
  .nr-layout-resin .nr-resin-controls-types{
    flex: 1 1 100%;
    justify-content:flex-start;
    flex-wrap:wrap;
    margin: 0 0 10px;
  }
  .nr-layout-resin .nr-resin-table-head{
    display: none;
  }
  .nr-layout-resin .nr-resin-row{
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "name action"
      "meta meta";
    gap: 4px 8px;
    min-height: 74px;
    padding: 10px 12px;
    align-items: center;
  }
  .nr-layout-resin .nr-resin-row > *{
    padding-inline: 0;
  }
  .nr-layout-resin .nr-resin-row > :not(:last-child)::after{
    display: none;
  }
  .nr-layout-resin .nr-resin-row > :nth-child(1){
    grid-area: name;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
  }
  .nr-layout-resin .nr-resin-row > :nth-child(2){
    grid-area: meta;
    font-size: 11px;
    font-weight: 700;
    color: rgba(226,232,240,.78);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-width: 0;
    align-self: start;
  }
  .nr-layout-resin .nr-resin-row > :nth-child(2)::before{
    content: "Grubość ";
    opacity: .72;
  }
  .nr-layout-resin .nr-resin-row > :nth-child(2)::after{
    content: " · proporcja " attr(data-ratio);
    opacity: .86;
  }
  .nr-layout-resin .nr-resin-row > :nth-child(3),
  .nr-layout-resin .nr-resin-row > :nth-child(4){
    display: none;
  }
  .nr-layout-resin .nr-resin-row > :nth-child(5){
    grid-area: action;
    justify-self: end;
    align-self: center;
  }
  .nr-layout-resin .nr-resin-row.is-pending::after{
    left: 12px;
    top: 34px;
    bottom: 8px;
    border-radius: 10px;
    padding: 10px 14px;
    font-size: 10px;
    letter-spacing: .09em;
  }
  .nr-layout-resin .nr-resin-col-action{ display: block; }
  .nr-layout-resin .nr-resin-pick{
    display: inline-flex;
    min-width: 84px;
    height: 26px;
    font-size: 10px;
    letter-spacing: .05em;
    justify-self: end;
  }
  .nr-layout-resin .nr-resin-tips-btn{
    height:24px;
    min-width:52px;
    font-size:9px;
  }
}

/* Cookie Banner Layer */
.nr-cookie{
  position:fixed;
  left:50%;
  bottom:22px;
  transform:translateX(-50%);
  z-index:99999;
  width:calc(100% - 44px);
  max-width:920px;
}
.nr-cookie__box{
  display:flex;
  flex-direction:column;
  gap:22px;
  padding:34px 36px 30px;
  border-radius:0 0 24px 24px;
  background:#111214;
  border:2px solid rgba(255,255,255,.16);
  box-shadow:0 26px 70px rgba(0,0,0,.55);
}
.nr-cookie__title{
  font-family:"Sora","Times New Roman",serif;
  font-weight:700;
  font-size:62px;
  line-height:.95;
  letter-spacing:-.02em;
  color:#f2f2f2;
}
.nr-cookie__text{
  max-width:800px;
  margin-top:12px;
  font-size:20px;
  line-height:1.38;
  color:rgba(245,245,245,.86);
}
.nr-cookie__link{
  color:#f1f1f1;
  text-decoration:underline;
  text-underline-offset:3px;
}
.nr-cookie__actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.nr-cookie__btn{
  appearance:none;
  cursor:pointer;
  min-height:74px;
  border-radius:16px;
  padding:0 20px;
  font-size:22px;
  font-weight:650;
  letter-spacing:.01em;
  transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease;
}
.nr-cookie__btn--ghost{
  border:2px solid rgba(255,255,255,.38);
  background:transparent;
  color:#f3f3f3;
}
.nr-cookie__btn--ghost:hover{
  border-color:rgba(255,255,255,.58);
  transform:translateY(-1px);
}
.nr-cookie__btn--primary{
  border:2px solid #ececec;
  background:#ececec;
  color:#0f1114;
}
.nr-cookie__btn--primary:hover{
  background:#fff;
  border-color:#fff;
  transform:translateY(-1px);
}
@media (max-width:860px){
  .nr-cookie{ width:calc(100% - 26px); }
  .nr-cookie__box{ padding:24px 20px 20px; border-radius:20px; gap:16px; }
  .nr-cookie__title{ font-size:46px; }
  .nr-cookie__text{ font-size:17px; }
  .nr-cookie__btn{ min-height:64px; font-size:19px; }
}
@media (max-width:560px){
  .nr-cookie{ bottom:12px; }
  .nr-cookie__title{ font-size:38px; }
  .nr-cookie__text{ font-size:15px; line-height:1.42; }
  .nr-cookie__actions{ grid-template-columns:1fr; gap:10px; }
  .nr-cookie__btn{ min-height:56px; font-size:17px; border-radius:13px; }
}

/* Layout and Toolbar Layer */
/* Remove top "strip/frame" artifact */
html, body, #root{
  margin: 0;
  padding: 0;
}
.nr-app-root{
  border-radius: 0;
  border: 0;
  box-shadow: none;
  margin: 0;
}
@keyframes nrMobSlide {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ═══════ AI TOOLBAR (accordion mobile, inline desktop) ═══════ */
.nr-ai-wrap { padding: 4px 0; }
/* monochrome health dots — online=white, degraded=dim white, offline=accent */
.nr-ai-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px solid var(--nr-border-faint);
  background: var(--nr-surface-faint);
  cursor: pointer;
  transition: all .15s;
}
.nr-ai-toggle:hover { background: var(--nr-surface-soft-strong); }

.nr-ai-toolbar {
  display: none;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px 0 0;
  overflow: hidden;
  animation: nrAccordionOpen .2s ease;
}
.nr-ai-toolbar.is-open { display: flex; }

@keyframes nrAccordionOpen {
  from { opacity: 0; max-height: 0; }
  to { opacity: 1; max-height: 200px; }
}

/* Desktop: hide toggle, always show toolbar */
@media (min-width: 769px) {
  .nr-ai-toggle { display: none; }
  .nr-ai-toolbar { display: flex; padding: 8px 0; flex-wrap: nowrap; }
}

.nr-ai-tb-btn {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 10px;
  border: 1px solid var(--nr-border-strong-ui);
  background: var(--nr-surface-soft);
  color: var(--nr-control-text-faint);
  cursor: pointer;
  transition: all .15s;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .03em;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .nr-ai-tb-btn { flex: 1 1 calc(50% - 4px); padding: 10px 8px; font-size: 10px; }
}
.nr-ai-tb-btn:hover { background: var(--nr-surface-chip-strong); color: var(--nr-text-soft-alpha); }
.nr-ai-tb-btn.is-active {
  background: var(--nr-surface-accent-cta);
  border-color: var(--nr-border-accent-ui);
  color: var(--nr-accent);
}
.nr-ai-tb-btn.is-loading {
  animation: pulse 1.5s ease-in-out infinite;
  background: var(--nr-surface-accent-strong);
  border-color: var(--nr-border-accent-soft);
  color: var(--nr-accent);
}

/* AI Spinner */
.nr-ai-spinner {
  display: inline-block;
  width: 14px; height: 14px;
  border: 2px solid var(--nr-border-accent-soft);
  border-top-color: var(--nr-accent);
  border-radius: 50%;
  animation: nrSpin .6s linear infinite;
  flex-shrink: 0;
}
@keyframes nrSpin {
  to { transform: rotate(360deg); }
}

/* Conditional sliders */
.nr-ai-tb-slider {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: 8px;
  background: var(--nr-surface-soft);
  border: 1px solid var(--nr-border-faint);
}
.nr-ai-tb-slider label {
  font-size: 10px;
  font-weight: 700;
  color: var(--nr-control-text-faint);
  white-space: nowrap;
  min-width: 70px;
}
.nr-ai-tb-range { flex: 1; accent-color: var(--nr-accent); }
.nr-ai-tb-slider--purple .nr-ai-tb-range { accent-color: var(--nr-accent); }
.nr-ai-tb-slider--red .nr-ai-tb-range { accent-color: var(--nr-accent); }

@media (max-width: 480px) {
  .nr-ai-tb-btn { font-size: 9px; padding: 9px 6px; }
}

/* Hero Layer */
/* Hero layer with highest cascade priority */
#hero-main-header{position:fixed;top:0;left:0;width:100%;padding:1.5rem 3rem;display:flex;justify-content:space-between;align-items:center;z-index:100;transition:background .25s ease,box-shadow .25s ease,padding .2s ease,opacity .2s ease,transform .25s ease;border-bottom:1px solid transparent;font-family:'Inter',sans-serif;background:transparent;border-radius:0;overflow:visible;backdrop-filter:none;box-shadow:none;border:none;visibility:visible}
#hero-main-header.scrolled{padding:1rem 3rem;background:var(--nr-surface-overlay);backdrop-filter:blur(15px);-webkit-backdrop-filter:blur(15px);box-shadow:var(--nr-shadow-header);border-bottom:1px solid var(--nr-border-faint)}
#hero-main-header.is-hidden{transform:translateY(calc(-100% - 12px));opacity:0}
.hero-logo-text{font-weight:700;font-size:1.25rem;letter-spacing:-.02em;display:flex;align-items:center;gap:.75rem;color:var(--nr-text-contrast);font-family:'Inter',sans-serif;background:none;border:none;box-shadow:none;border-radius:0}
.hero-logo-lines{display:flex;flex-direction:column;align-items:flex-start;line-height:1;width:max-content}
.hero-logo-main{font-size:1rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.hero-logo-sub{display:flex;justify-content:space-between;align-items:center;width:100%;font-size:.62rem;font-weight:700;letter-spacing:0;text-transform:uppercase;color:var(--nr-text-subtle);margin-top:2px}
.hero-logo-beta-soft{margin-top:3px;font-size:.56rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;line-height:1;background:var(--nr-gradient-accent-cta);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;opacity:.72}
.hero-logo-icon{color:var(--nr-accent)}
.hero-logo-tile{fill:var(--nr-paper-text)}
.hero-logo-mark{fill:var(--nr-paper-surface)}
.hero-menu-trigger,
#hero-nav-overlay .nrm-close{cursor:pointer;width:46px;height:46px;display:flex;align-items:center;justify-content:center;color:var(--nr-text-contrast);background:var(--nr-surface-overlay-soft);border:1px solid var(--nr-border-stronger);border-radius:14px;box-shadow:var(--nr-shadow-dropdown);backdrop-filter:blur(10px);transition:transform .2s ease,background .2s ease,border-color .2s ease,color .2s ease}
.hero-menu-trigger{z-index:110}
.hero-menu-trigger:hover,
#hero-nav-overlay .nrm-close:hover{transform:translateY(-1px);background:var(--nr-surface-overlay-strong);border-color:var(--nr-border-stronger)}
.hero-menu-trigger[aria-expanded="true"]{background:var(--nr-surface-accent-strong);border-color:var(--nr-border-accent-strong)}
.hero-desktop-nav{
  display:none;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  border-radius:14px;
  border:1px solid var(--nr-paper-border-ui);
  background:var(--nr-paper-surface);
  box-shadow:var(--nr-shadow-panel);
  overflow:visible;
}
.hero-desktop-link,
.hero-help-trigger{
  color:var(--nr-paper-text);
  text-decoration:none;
  font-family:'Sora','Inter',sans-serif;
  font-size:12px;
  font-weight:800;
  letter-spacing:.11em;
  text-transform:uppercase;
  padding:8px 10px;
  border-radius:8px;
  transition:background .18s ease,color .18s ease,border-color .18s ease;
}
.hero-desktop-link:hover,
.hero-desktop-link.is-active,
.hero-help-trigger:hover,
.hero-help-dd:focus-within .hero-help-trigger{
  background:var(--nr-paper-surface-muted);
  color:var(--nr-paper-text);
}
.hero-login-btn{
  display:inline-flex;align-items:center;gap:6px;
  color:var(--nr-paper-text);text-decoration:none;
  font-family:'Sora','Inter',sans-serif;
  font-size:12px;font-weight:800;letter-spacing:.11em;
  text-transform:uppercase;padding:8px 14px;
  border-radius:999px;border:1px solid rgba(255,255,255,.15);
  background:transparent;cursor:pointer;
  transition:all .18s ease;
}
.hero-login-btn:hover{
  background:var(--nr-paper-surface-muted);
  border-color:rgba(255,255,255,.3);
}
.hero-login-btn svg{width:14px;height:14px}
.hero-docs-dd,
.hero-help-dd{
  position:relative;
  display:inline-flex;
  align-items:center;
}
.hero-docs-dd::after,
.hero-help-dd::after{
  content:"";
  position:absolute;
  top:100%;
  height:12px;
}
.hero-docs-dd::after{left:0;width:100%}
.hero-help-dd::after{right:0;width:100%}
.hero-docs-menu,
.hero-help-menu{
  position:absolute;
  top:calc(100% + 8px);
  min-width:210px;
  padding:8px;
  border-radius:12px;
  border:1px solid var(--nr-border-stronger);
  background:var(--nr-surface-overlay-strong);
  box-shadow:var(--nr-shadow-dropdown);
  display:none;
  z-index:260;
}
.hero-docs-menu{left:0}
.hero-help-menu{right:0}
.hero-docs-dd:hover .hero-docs-menu,
.hero-docs-dd:focus-within .hero-docs-menu,
.hero-docs-dd.is-open .hero-docs-menu{
  display:block;
}
.hero-help-dd:hover .hero-help-menu,
.hero-help-dd:focus-within .hero-help-menu{
  display:block;
}
.hero-docs-item,
.hero-help-item{
  display:block;
  width:100%;
  border:0;
  cursor:pointer;
  text-align:left;
  text-decoration:none;
  background:transparent;
  color:var(--nr-text-soft-alpha);
  font-family:'Inter',sans-serif;
  font-size:12px;
  font-weight:700;
  padding:8px 10px;
  border-radius:8px;
}
.hero-help-trigger{border:0;outline:0;background:transparent}
.hero-docs-item:hover,
.hero-help-item:hover{
  background:var(--nr-surface-chip-strong);
}

/* ── Home Hero — swiss technical product stage ── */
body.nr-home-page #hero-top.nr-home-swiss-hero{
  position:relative;
  min-height:92svh;
  display:block;
  padding:104px 14px 18px;
  background:transparent;
  overflow:hidden;
  visibility:visible;
  scroll-margin-top:84px;
  font-family:'Sora','Inter',sans-serif;
}
body.nr-home-page #hero-top.nr-home-swiss-hero::after{
  display:none;
}
body.nr-home-page .nr-home-swiss-frame{
  position:relative;
  min-height:calc(92svh - 122px);
  overflow:hidden;
  border-radius:28px;
  border:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(circle at 74% 42%, rgba(255,255,255,.03), transparent 18%),
    linear-gradient(180deg, rgba(255,255,255,.014), rgba(255,255,255,.01));
  box-shadow:0 30px 120px rgba(0,0,0,.45);
  isolation:isolate;
}
body.nr-home-page .nr-home-swiss-stage{
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
}
body.nr-home-page .nr-home-swiss-canvas{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
}
body.nr-home-page .nr-home-swiss-noise{
  position:absolute;
  inset:0;
  opacity:.1;
  mix-blend-mode:screen;
  background-image:
    radial-gradient(circle at 20% 18%, rgba(255,255,255,.18) 0 .55px, transparent .8px),
    radial-gradient(circle at 84% 24%, rgba(255,255,255,.12) 0 .5px, transparent .8px),
    radial-gradient(circle at 42% 84%, rgba(255,255,255,.1) 0 .75px, transparent 1px);
  background-size:16px 16px,20px 20px,24px 24px;
}
body.nr-home-page .nr-home-swiss-grid{
  position:relative;
  z-index:1;
  min-height:inherit;
  padding:28px 28px 24px;
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(420px,1.1fr);
  grid-template-rows:auto 1fr;
  gap:18px 24px;
}
body.nr-home-page .nr-home-swiss-left{
  align-self:end;
  display:grid;
  gap:16px;
  padding-bottom:4vh;
}
body.nr-home-page .nr-home-swiss-kicker{
  display:inline-flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  font-family:'JetBrains Mono','IBM Plex Mono',monospace;
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:rgba(246,241,235,.42);
}
body.nr-home-page .nr-home-swiss-kicker strong{
  color:#c26a61;
  font-weight:700;
}
body.nr-home-page .nr-home-swiss-title{
  margin:0;
  font-family:'Syne','Sora',system-ui,sans-serif;
  font-size:clamp(4rem,11vw,8.8rem);
  line-height:.88;
  letter-spacing:-.085em;
  color:#f6f1eb;
}
body.nr-home-page .nr-home-swiss-title span{
  color:rgba(255,255,255,.84);
}
body.nr-home-page .nr-home-swiss-copy{
  max-width:24rem;
  margin:0;
  color:rgba(246,241,235,.68);
  font-size:clamp(1rem,1.45vw,1.14rem);
  line-height:1.66;
}
body.nr-home-page .nr-home-swiss-cta{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
body.nr-home-page .nr-home-swiss-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:52px;
  padding:0 22px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  text-decoration:none;
  font-family:'Syne','Sora',system-ui,sans-serif;
  font-size:15px;
  font-weight:700;
  letter-spacing:-.02em;
  transition:transform .2s ease,border-color .2s ease,background .2s ease,color .2s ease;
}
body.nr-home-page .nr-home-swiss-btn:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,.24);
}
body.nr-home-page .nr-home-swiss-btn--primary{
  background:rgba(255,255,255,.92);
  color:#11141a;
}
body.nr-home-page .nr-home-swiss-btn--secondary{
  color:#f6f1eb;
  background:rgba(255,255,255,.03);
}
body.nr-home-page .nr-home-swiss-btn--secondary:hover{
  color:#f6f1eb;
}
body.nr-home-page .nr-home-swiss-right{
  position:relative;
  min-height:100%;
}
body.nr-home-page .nr-home-swiss-pills{
  position:absolute;
  right:0;
  bottom:0;
  width:min(29rem,100%);
  display:grid;
  grid-template-columns:repeat(2, max-content);
  gap:10px;
  justify-content:end;
  align-content:end;
}
body.nr-home-page .nr-home-swiss-pill{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:0 14px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:#f6f1eb;
  font-family:'JetBrains Mono','IBM Plex Mono',monospace;
  font-size:10px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  white-space:nowrap;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
body.nr-home-page .nr-home-swiss-pill--hero{
  grid-column:1 / span 2;
  justify-self:end;
  min-height:44px;
  padding:0 18px;
  font-size:11px;
  background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.16);
}
body.nr-home-page .nr-home-swiss-pill--wide{
  min-height:40px;
  padding:0 16px;
}
body.nr-home-page .nr-home-swiss-pill--compact{
  min-height:34px;
  padding:0 12px;
  font-size:9px;
  letter-spacing:.12em;
}
body.nr-home-page .nr-home-swiss-pill--offset{
  grid-column:2;
  justify-self:end;
}
body.nr-home-page .nr-home-swiss-pill b{
  margin-right:8px;
  color:#c26a61;
  font-weight:800;
}
body.nr-home-page .nr-home-swiss-pill--sage b{
  color:#5f8a72;
}
body.nr-home-page .nr-home-swiss-pill--amber b{
  color:#c49a48;
}
body.nr-home-page .nr-home-swiss-note{
  position:absolute;
  max-width:12.5rem;
  display:grid;
  gap:6px;
}
body.nr-home-page .nr-home-swiss-note strong{
  font-family:'JetBrains Mono','IBM Plex Mono',monospace;
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:rgba(255,255,255,.88);
}
body.nr-home-page .nr-home-swiss-note p{
  margin:0;
  color:rgba(246,241,235,.42);
  font-size:11px;
  line-height:1.58;
}
body.nr-home-page .nr-home-swiss-note--one{
  right:1.5rem;
  top:26%;
  text-align:right;
}
body.nr-home-page .nr-home-swiss-note--two{
  left:3%;
  bottom:20%;
  max-width:11rem;
}
.nr-home-how{
  position:relative;
  width:min(var(--nr-shell-max, 1520px), calc(100% - clamp(28px, 8vw, 64px)));
  margin:18px auto 18px;
  padding:24px;
  font-family:'Sora','Inter',sans-serif;
  color:#eef2f6;
  border-radius:var(--radius-lg);
  border:1px solid var(--nr-border-accent-soft);
  background:
    radial-gradient(600px 300px at 20% 10%, var(--nr-surface-accent), transparent 60%),
    radial-gradient(500px 300px at 80% 90%, var(--nr-surface-info-ui), transparent 60%),
    var(--nr-surface-overlay);
  box-sizing:border-box;
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  overflow:hidden;
}
.nr-home-how__inner{
  width:100%;
  display:grid;
  gap:14px;
}
.nr-home-how__eyebrow{
  display:block;
  margin-bottom:7px;
  color:#c26a61;
  font-family:'JetBrains Mono','IBM Plex Mono',monospace;
  font-size:10px;
  font-weight:800;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.nr-home-how__head{
  display:grid;
  gap:6px;
  padding:0 2px 2px;
}
.nr-home-how h2{
  margin:0;
  max-width:24ch;
  color:rgba(244,247,250,.92);
  font-size:clamp(1.35rem,2.2vw,1.95rem);
  font-weight:700;
  line-height:1.14;
  letter-spacing:0;
}
.nr-home-how__steps{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.nr-home-how__card{
  min-height:218px;
  padding:18px;
  display:grid;
  grid-template-rows:1fr auto auto auto;
  align-content:start;
  gap:9px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:8px;
  background:
    radial-gradient(160px 110px at 50% 10%, rgba(255,255,255,.055), transparent 68%),
    linear-gradient(180deg, rgba(255,255,255,.045), rgba(255,255,255,.018));
  box-shadow:0 18px 48px rgba(0,0,0,.22);
  overflow:hidden;
  position:relative;
}
.nr-home-how__card::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,0));
  pointer-events:none;
}
.nr-home-how__visual{
  position:relative;
  min-height:96px;
  display:grid;
  place-items:center;
  color:rgba(230,235,241,.72);
}
.nr-home-how__num{
  color:#c26a61;
  font-family:'JetBrains Mono','IBM Plex Mono',monospace;
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  position:relative;
  z-index:1;
}
.nr-home-how__card h3{
  margin:0;
  color:rgba(246,248,251,.9);
  font-size:1rem;
  line-height:1.24;
  letter-spacing:0;
  position:relative;
  z-index:1;
}
.nr-home-how__card p{
  margin:0;
  color:rgba(232,238,245,.54);
  font-size:.78rem;
  line-height:1.5;
  position:relative;
  z-index:1;
}
.nr-flow-file,
.nr-flow-ruler,
.nr-flow-mask,
.nr-flow-report{
  display:block;
  border:2px solid currentColor;
  background:transparent;
}
.nr-flow-file{
  width:78px;
  height:54px;
  border-radius:6px;
  background:
    radial-gradient(circle at 70% 28%, currentColor 0 4px, transparent 5px),
    linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
  transform:rotate(-4deg);
  animation:nrFlowPhoto 3.8s ease-in-out infinite;
}
.nr-flow-file::before{
  content:'';
  position:absolute;
  left:12px;
  bottom:12px;
  width:42px;
  height:22px;
  border-left:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:skewX(-28deg);
  opacity:.72;
}
.nr-flow-file::after{
  content:'';
  position:absolute;
  left:29px;
  bottom:12px;
  width:32px;
  height:17px;
  border-left:2px solid currentColor;
  border-bottom:2px solid currentColor;
  transform:skewX(-34deg);
  opacity:.48;
}
.nr-flow-spark{
  position:absolute;
  width:26px;
  height:2px;
  background:currentColor;
  opacity:.36;
  animation:nrFlowScan 2.9s ease-in-out infinite;
}
.nr-flow-spark--one{left:42px;top:43px}
.nr-flow-spark--two{left:58px;bottom:36px;animation-delay:.55s}
.nr-flow-ruler{
  width:104px;
  height:10px;
  border-radius:999px;
  transform:rotate(-12deg);
  animation:nrFlowMeasure 3.2s ease-in-out infinite;
}
.nr-flow-point{
  position:absolute;
  width:12px;
  height:12px;
  border:2px solid currentColor;
  border-radius:50%;
  background:#11161c;
  animation:nrFlowPulse 2.4s ease-in-out infinite;
}
.nr-flow-point--a{left:62px;top:61px}
.nr-flow-point--b{right:62px;top:43px;animation-delay:.5s}
.nr-flow-mask{
  width:96px;
  height:64px;
  border-radius:54% 46% 48% 52%;
  animation:nrFlowBlob 4.2s ease-in-out infinite;
}
.nr-flow-brush{
  position:absolute;
  right:58px;
  bottom:36px;
  width:50px;
  height:10px;
  border-radius:999px;
  background:currentColor;
  transform:rotate(-28deg);
  animation:nrFlowBrush 3s ease-in-out infinite;
}
.nr-flow-brush::after{
  content:'';
  position:absolute;
  right:-10px;
  top:-5px;
  width:16px;
  height:20px;
  border:2px solid currentColor;
  border-radius:50% 50% 6px 6px;
  background:#11161c;
}
.nr-flow-report{
  width:72px;
  height:86px;
  border-radius:8px;
  animation:nrFlowFloatSoft 3.6s ease-in-out infinite;
}
.nr-flow-report::before{
  content:'';
  position:absolute;
  left:16px;
  right:16px;
  top:18px;
  height:2px;
  background:currentColor;
}
.nr-flow-bar{
  position:absolute;
  left:calc(50% - 18px);
  width:36px;
  height:4px;
  border-radius:999px;
  background:#c26a61;
  transform-origin:left center;
  animation:nrFlowGrow 2.8s ease-in-out infinite;
}
.nr-flow-bar--one{top:66px}
.nr-flow-bar--two{top:82px;animation-delay:.25s}
.nr-flow-bar--three{top:98px;animation-delay:.5s}
@keyframes nrFlowPhoto{
  0%,100%{transform:translateY(0) rotate(-4deg)}
  50%{transform:translateY(-5px) rotate(-1deg)}
}
@keyframes nrFlowFloatSoft{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-8px)}
}
@keyframes nrFlowScan{
  0%,100%{transform:translateX(-8px);opacity:.16}
  50%{transform:translateX(14px);opacity:.5}
}
@keyframes nrFlowMeasure{
  0%,100%{transform:rotate(-12deg) scaleX(.84)}
  50%{transform:rotate(-12deg) scaleX(1.08)}
}
@keyframes nrFlowPulse{
  0%,100%{transform:scale(1);opacity:.75}
  50%{transform:scale(1.22);opacity:1}
}
@keyframes nrFlowBlob{
  0%,100%{border-radius:54% 46% 48% 52%;transform:scale(1)}
  50%{border-radius:46% 54% 58% 42%;transform:scale(1.05)}
}
@keyframes nrFlowBrush{
  0%,100%{transform:translate(-7px,3px) rotate(-28deg)}
  50%{transform:translate(10px,-8px) rotate(-20deg)}
}
@keyframes nrFlowGrow{
  0%,100%{transform:scaleX(.38);opacity:.42}
  50%{transform:scaleX(1);opacity:1}
}
@media (prefers-reduced-motion: reduce){
  .nr-home-how__visual *,
  .nr-home-how__visual *::before,
  .nr-home-how__visual *::after{
    animation:none;
  }
}
@media (max-width: 980px){
  .nr-home-how__head{
    display:grid;
    gap:6px;
  }
  .nr-home-how__steps{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .nr-home-how__card{
    min-height:232px;
  }
}
@media(max-width:850px){
  #hero-main-header{padding:1.5rem}
  #hero-main-header.scrolled{padding:1rem 1.5rem}
}
@media(min-width:851px){
  .hero-desktop-nav{display:flex}
  .hero-menu-trigger{display:none}
}
@media (max-width: 1080px){
  body.nr-home-page .nr-home-swiss-grid{
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto auto;
  }
  body.nr-home-page .nr-home-swiss-right{
    min-height:48svh;
  }
  body.nr-home-page .nr-home-swiss-note{
    display:none;
  }
  body.nr-home-page .nr-home-swiss-pills{
    left:0;
    right:0;
    width:100%;
    justify-content:start;
    grid-template-columns:repeat(2, minmax(0, max-content));
  }
  body.nr-home-page .nr-home-swiss-pill--hero{
    justify-self:start;
  }
}
@media (max-width: 720px){
  body.nr-home-page #hero-top.nr-home-swiss-hero{
    padding:92px 10px 10px;
    min-height:auto;
  }
  body.nr-home-page .nr-home-swiss-frame{
    min-height:calc(92svh - 20px);
    border-radius:20px;
  }
  body.nr-home-page .nr-home-swiss-grid{
    padding:18px 18px 16px;
  }
  body.nr-home-page .nr-home-swiss-left{
    padding-top:clamp(40px, 8vw, 68px);
    padding-bottom:0;
  }
  body.nr-home-page .nr-home-swiss-title{
    font-size:clamp(3.2rem,18vw,5.6rem);
  }
  body.nr-home-page .nr-home-swiss-copy{
    max-width:30ch;
  }
  body.nr-home-page .nr-home-swiss-cta{
    margin-top:10px;
  }
  body.nr-home-page .nr-home-swiss-right{
    min-height:46svh;
    display:flex;
    align-items:flex-end;
  }
  .nr-home-how{
    padding:14px 10px 20px;
  }
  .nr-home-how h2{
    max-width:22ch;
  }
  .nr-home-how__steps{
    grid-template-columns:1fr;
  }
  .nr-home-how__card{
    min-height:0;
    padding:16px;
  }
  .nr-home-how__visual{
    min-height:88px;
  }
}
@media (max-width: 520px){
  body.nr-home-page .nr-home-swiss-pills{
    position:relative;
    margin-top:72px;
    padding-bottom:12px;
    grid-template-columns:1fr;
    justify-content:stretch;
  }
  body.nr-home-page .nr-home-swiss-pill{
    width:100%;
    justify-content:center;
  }
  body.nr-home-page .nr-home-swiss-pill--hero,
  body.nr-home-page .nr-home-swiss-pill--offset{
    grid-column:auto;
    justify-self:stretch;
  }
}

/* Resin recommendation CTA: force perfect vertical/horizontal centering */
.nr-rec-section .nr-rec-top .nr-rec-btn{
  display:inline-flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  place-content:center;
  align-self:center;
  height: 56px;
  line-height:1;
  padding-top:0;
  padding-bottom:0;
  padding: 0 28px;
  gap: 10px;
  vertical-align: middle;
}
.nr-rec-section .nr-rec-top .nr-rec-btn svg,
.nr-rec-section .nr-rec-top .nr-rec-btn .nr-rec-spinner{
  display:block;
  margin:0;
  flex-shrink:0;
  align-self:center;
}
.nr-rec-section .nr-rec-top .nr-rec-btn .nr-rec-btn-label{
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  transform:none;
}
@media (max-width: 980px){
  .nr-rec-top{
    grid-template-columns:1fr;
    grid-template-areas:
      "title"
      "badges"
      "cta";
    row-gap:8px;
  }
  .nr-rec-top .nr-rec-btn{
    width:100%;
    justify-self:stretch;
  }
}

#root button:not([class]),
#nr-modal-root button:not([class]){
  background:var(--nr-control-bg-dark);
  border:1px solid var(--nr-control-border-dark);
  color:var(--nr-control-text-soft);
  box-shadow:none;
  transition:all .2s;
}
#root button:not([class]):hover,
#nr-modal-root button:not([class]):hover{
  background:var(--nr-control-bg-elevated);
  border-color:var(--nr-control-border-contrast);
}

/* --- SVG ICONS in text context --- */
svg:not(.hero-logo-icon){color:inherit }

/* --- LINKS --- */
#root a,
#nr-modal-root a{color:var(--nr-accent) }
#root a:hover,
#nr-modal-root a:hover{color:var(--nr-accent-soft) }

/* --- TOOLTIP / POPOVER --- */
[role="tooltip"],
[class*="tooltip"]{
  background:var(--nr-control-bg-dark);
  border:1px solid var(--nr-control-border-dark);
  color:var(--nr-control-text-soft);
}

/* --- TABS --- */
[role="tab"]{
  background:var(--nr-control-bg-dark);
  border:1px solid var(--nr-control-border-dark);
  color:var(--nr-text-subtle);
}
[role="tab"][aria-selected="true"],
[role="tab"].active{
  background:var(--nr-control-bg-elevated);
  color:var(--nr-control-text-soft);
  border-color:var(--nr-accent);
}

/* --- DIVIDERS --- */
hr,[class*="divide"]{
  border-color:var(--nr-control-border-dark);
  background:var(--nr-control-border-dark);
}

/* --- SAFETY: keep functional status colors slightly distinct --- */
/* Success indicators — subdued green */
/* Warning indicators — warm amber */
/* Error indicators — soft danger */

/* --- AI TOOLBAR --- */
.nr-ai-wrap{background:transparent }
.nr-ai-toggle{
  border:1px solid var(--nr-control-border-dark);
  background:var(--nr-control-bg-dark);
  color:var(--nr-control-text-soft);
}
.nr-ai-toggle:hover{background:var(--nr-control-bg-elevated) }
.nr-ai-toolbar button{
  background:var(--nr-control-bg-dark);
  border:1px solid var(--nr-control-border-dark);
  color:var(--nr-control-text-soft);
}
.nr-ai-toolbar button:hover{background:var(--nr-control-bg-elevated) }

/* --- MASS/RESIN UI --- */
.nr-ui-mass{
  background:var(--nr-control-bg-deep);
  border-color:var(--nr-control-border-dark);
}
.nr-resin-pick{
  background:var(--nr-control-bg-dark);
  border:1px solid var(--nr-control-border-dark);
  color:var(--nr-control-text-dim);
  min-height:0;
  height:28px;
  padding:0 12px;
}
.nr-layout-resin .nr-resin-row.is-active .nr-resin-pick{
  background:var(--nr-accent);
  border-color:var(--nr-accent-soft);
  color:var(--nr-text-contrast);
}

/* --- MOLD MATERIAL BUTTONS: lower height --- */
.nr-layout-mold .nr-grid button{
  min-height:56px;
  padding:10px 12px;
  justify-content:center;
}
.nr-layout-mold .nr-grid button span{
  font-size:14px;
  line-height:1.2;
  transform: translateY(1px);
}

/* ===== Mobile: process modules in vertical readable layout ===== */

/* --- RANGE TRACK VISIBILITY (WebKit + Firefox) --- */
input[type="range"]{
  -webkit-appearance:none;
  appearance:none;
  --range-pct: 0%;
  --range-track-bg: var(--nr-surface-soft);
  --range-track-active: var(--nr-surface-chip-strong);
  --range-track-border: var(--nr-control-border-dark);
  --range-fill-start: var(--nr-accent-soft);
  --range-fill-end: var(--nr-accent);
  --range-fill-shadow: var(--nr-border-accent-ui);
  --range-thumb: var(--nr-paper-surface);
  --range-seg-gap: 6px;
  --range-seg-size: calc((100% - (9 * var(--range-seg-gap))) / 10);
  height:46px;
  padding:0;
  background:transparent;
  border:none;
  cursor:ew-resize;
}
input[type="range"]::-webkit-slider-runnable-track{
  height:40px;
  border-radius:14px;
  border:1px solid var(--range-track-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), inset 0 -1px 2px rgba(0,0,0,.35);
  background:
    linear-gradient(90deg, var(--range-track-active) 0%, var(--range-track-active) var(--range-pct), var(--range-track-bg) var(--range-pct), var(--range-track-bg) 100%),
    repeating-linear-gradient(
      90deg,
      rgba(0,0,0,0) 0,
      rgba(0,0,0,0) var(--range-seg-size),
      rgba(0,0,0,.16) var(--range-seg-size),
      rgba(0,0,0,.16) calc(var(--range-seg-size) + var(--range-seg-gap))
    ),
    linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:36px;
  height:34px;
  margin-top:2px;
  border-radius:12px;
  border:2px solid var(--nr-control-border-contrast);
  background:linear-gradient(180deg, var(--nr-paper-surface), var(--range-thumb));
  box-shadow:0 8px 20px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.55);
}
input[type="range"]::-moz-range-track{
  height:40px;
  border-radius:14px;
  border:1px solid var(--range-track-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), inset 0 -1px 2px rgba(0,0,0,.35);
  background: repeating-linear-gradient(
      90deg,
      var(--range-track-bg) 0,
      var(--range-track-bg) var(--range-seg-size),
      transparent var(--range-seg-size),
      transparent calc(var(--range-seg-size) + var(--range-seg-gap))
    );
}
input[type="range"]::-moz-range-progress{
  height:40px;
  border-radius:14px;
  background: repeating-linear-gradient(
      90deg,
      var(--range-track-active) 0,
      var(--range-track-active) var(--range-seg-size),
      transparent var(--range-seg-size),
      transparent calc(var(--range-seg-size) + var(--range-seg-gap))
    );
}
input[type="range"]::-moz-range-thumb{
  width:36px;
  height:34px;
  border-radius:12px;
  border:2px solid var(--nr-control-border-contrast);
  background:linear-gradient(180deg, var(--nr-paper-surface), var(--range-thumb));
  box-shadow:0 8px 20px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.55);
}
input[type="range"]:hover::-webkit-slider-runnable-track{
  filter:brightness(1.08);
}
input[type="range"]:focus-visible{
  outline:none;
}
input[type="range"]:focus-visible::-webkit-slider-thumb{
  box-shadow:0 0 0 3px var(--nr-border-accent-ui), 0 8px 20px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.55);
}
input[type="range"]:focus-visible::-moz-range-thumb{
  box-shadow:0 0 0 3px var(--nr-border-accent-ui), 0 8px 20px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.55);
}
input[type="range"].nr-accent-secondary{
  --range-fill-start:var(--nr-teal);
  --range-fill-end:var(--nr-info);
}
input[type="range"].nr-accent-primary{
  --range-fill-start:var(--nr-accent-soft);
  --range-fill-end:var(--nr-accent);
}
input[type="range"].nr-range-over-limit{
  --range-fill-start:var(--nr-warning);
  --range-fill-end:var(--nr-danger);
  --range-track-border: var(--nr-danger-brd);
  --range-fill-shadow: var(--nr-danger-soft);
}
input[type="range"].nr-range-over-limit::-webkit-slider-runnable-track{
  box-shadow:
    0 0 0 1px var(--nr-danger-brd),
    0 0 18px var(--nr-danger-soft),
    inset 0 1px 0 var(--nr-border-strong-ui),
    inset 0 -1px 2px rgba(0,0,0,.36);
  background:
    linear-gradient(90deg, var(--range-fill-start) 0%, var(--range-fill-end) var(--range-pct), var(--range-track-bg) var(--range-pct), var(--range-track-bg) 100%),
    repeating-linear-gradient(
      90deg,
      rgba(0,0,0,0) 0,
      rgba(0,0,0,0) var(--range-seg-size),
      rgba(0,0,0,.16) var(--range-seg-size),
      rgba(0,0,0,.16) calc(var(--range-seg-size) + var(--range-seg-gap))
    ),
    linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.02));
}
input[type="range"].nr-range-over-limit::-webkit-slider-thumb{
  border-color: var(--nr-danger);
  box-shadow:
    0 0 0 3px var(--nr-danger-soft),
    0 8px 20px rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.55);
}
input[type="range"].nr-range-over-limit::-moz-range-thumb{
  border-color: var(--nr-danger);
  box-shadow:
    0 0 0 3px var(--nr-danger-soft),
    0 8px 20px rgba(0,0,0,.42),
    inset 0 1px 0 rgba(255,255,255,.55);
}
input[type="range"].nr-range-over-limit::-moz-range-progress{
  background: linear-gradient(90deg, var(--range-fill-start), var(--range-fill-end));
}

/* --- Hierarchy pass: one strong primary panel + calmer secondary cards --- */
.nr-primary-panel{
  border-color: var(--nr-border-accent-ui);
  box-shadow: var(--nr-shadow-accent-cta), var(--nr-shadow-inset-ui);
}

/* ===== Hero menu rewrite (nrm) ===== */
#hero-nav-overlay{
  position:fixed;
  inset:0;
  z-index:var(--nr-z-nav);
  display:block;
  opacity:0;
  pointer-events:none;
  background:var(--nr-gradient-loader);
  visibility:visible;
  backdrop-filter:blur(6px);
  transition:opacity .2s ease;
  overflow-y:auto;
  overflow-x:hidden;
}
#hero-nav-overlay.is-open{
  opacity:1;
  pointer-events:auto;
}
#hero-nav-panel{
  position:absolute;
  top:5.15rem;
  right:1rem;
  width:min(420px,calc(100% - 2rem));
  height:auto;
  min-height:0;
  max-height:none;
  overflow:visible;
  display:block;
  border-radius:22px;
  border:1px solid var(--nr-border-stronger);
  background:var(--nr-gradient-panel);
  box-shadow:var(--nr-shadow-mobile-panel);
  padding:1rem;
  transform:translateY(-10px) scale(.98);
  opacity:0;
  transition:transform .22s ease,opacity .22s ease;
}
#hero-nav-overlay.is-open #hero-nav-panel{
  transform:translateY(0) scale(1);
  opacity:1;
}
#hero-nav-overlay .nrm-close{
  position:absolute;
  top:1.5rem;
  right:3rem;
  z-index:var(--nr-z-nav-close);
}
#hero-nav-panel .nrm-links{
  display:block;
  margin:0;
  padding:0;
}
#hero-nav-panel .nrm-link{
  position:static;
  inset:auto;
  float:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:100%;
  margin:0;
  padding:.62rem .15rem;
  border:0;
  border-bottom:1px solid var(--nr-border-strong-ui);
  background:transparent;
  color:var(--nr-text-strong-alpha);
  font-size:clamp(1rem,2.1vw,1.22rem);
  font-weight:650;
  line-height:1.15;
  text-decoration:none;
  text-transform:none;
  transition:color .16s ease,padding-left .16s ease,border-color .16s ease;
}
#hero-nav-panel .nrm-link + .nrm-link{
  margin-top:.18rem;
}
#hero-nav-panel .nrm-link.is-active,
#hero-nav-panel .nrm-link:hover{
  color:var(--nr-accent);
  border-bottom-color:var(--nr-border-accent-strong);
}
#hero-nav-panel .nrm-link:hover{
  padding-left:.45rem;
}
#hero-nav-panel .nrm-link:focus-visible{
  outline:2px solid var(--nr-accent);
  outline-offset:2px;
  border-radius:10px;
}
#hero-nav-panel .nrm-dot{
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--nr-accent);
  opacity:.3;
  transition:opacity .15s ease,transform .15s ease;
}
#hero-nav-panel .nrm-link.is-active .nrm-dot,
#hero-nav-panel .nrm-link:hover .nrm-dot{
  opacity:1;
  transform:scale(1.22);
}
#hero-nav-panel .nrm-login{
  color:var(--nr-accent);
  font-weight:700;
}
@media(max-width:850px){
  #hero-nav-overlay .nrm-close{top:1.5rem;right:1.5rem}
  #hero-nav-panel{top:4.6rem;right:.7rem;width:calc(100% - 1.4rem);max-height:none;overflow:visible;padding:.82rem}
  #hero-nav-panel .nrm-link{font-size:1rem;padding:.56rem .08rem}
}

/* Laptop/Desktop balance pass: avoid text overlap on 14-16" screens */
@media (min-width: 1100px) and (max-width: 1700px){
  body.nr-home-page #hero-top.nr-home-swiss-hero{
    padding-top: 108px;
    padding-bottom: 18px;
  }
}

/* Ultra-wide desktop: center hero vertically and reduce bottom void */
@media (min-width: 1600px) and (min-height: 850px){
  body.nr-home-page .nr-home-swiss-frame{
    min-height: calc(92svh - 126px);
  }
}

/* Range accents: consistent brand + accent */
input[type="range"].nr-accent-secondary{
  --range-fill: var(--nr-info);
  --range-thumb: var(--nr-info);
}
input[type="range"].nr-accent-primary{
  --range-fill: var(--nr-accent);
  --range-thumb: var(--nr-accent);
}

/* ===== Mobile Readability Pass (no layout changes) ===== */
@media (max-width: 820px){
  /* 3) stronger separation lines for inputs */
  input,
  select,
	  textarea{
	    background-color: rgba(27,28,31,.82);
    border-color: rgba(255,255,255,.16);
  }

  /* 4) timeline chips / labels readability only */

  /* 5) chips/badges text contrast */
  .badge,
  [class*="badge"],
  .nr-tds-pill{
    color: rgba(236,242,250,.95);
    border-color: rgba(255,255,255,.22);
  }
}

/* Immersive photo workspace */
.nr-app-root.nr-immersive-on #nr-scroll-root{
  overflow:hidden;
}
.nr-app-root.nr-immersive-on::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:var(--nr-z-immersive);
  background:rgba(3,5,9,.98);
  pointer-events:none;
}
.nr-layout-visual.is-immersive{
  position:fixed;
  inset:8px;
  z-index:calc(var(--nr-z-immersive) + 10);
  height:auto;
  max-height:none;
  margin:0;
  padding:10px;
  border-radius:20px;
  background:#05070b;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 30px 90px rgba(0,0,0,.7);
}
.nr-layout-visual.is-immersive #nr-visualizer{
  height:100%;
  min-height:0;
}
.nr-layout-visual.is-immersive::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-1;
  background:rgba(3,5,9,.94);
  pointer-events:none;
}
.nr-app-root.nr-immersive-on #hero-main-header,
.nr-app-root.nr-immersive-on #nr-cookie-pill{
  opacity:0;
  pointer-events:none;
}
@media (max-width: 820px){
  .nr-app-root.nr-immersive-on::before{
    display:none;
    content:none;
  }
  .nr-layout-visual.is-immersive{
    position:relative;
    inset:auto;
    z-index:auto;
    border-radius:16px;
    box-shadow:0 14px 34px rgba(0,0,0,.42);
  }
  .nr-layout-visual.is-immersive::before{
    display:none;
    content:none;
  }
  .nr-app-root.nr-immersive-on #hero-main-header{
    opacity:1;
    pointer-events:auto;
  }
}
@media (max-width: 768px){
  .nr-layout-visual.is-immersive{
    inset:0;
    border-radius:0;
    padding:8px;
  }
}

/* Cookie pill hidden during immersive mode to avoid toolbar overlap */
.nr-app-root.nr-immersive-on #nr-cookie-pill{
  display:none;
  opacity:0;
  pointer-events:none;
}
/* Also hide cookie pill whenever editor toolbar is active (prevents overlap on mobile) */
.nr-app-root.nr-edit-lock #nr-cookie-pill{
  display:none;
  opacity:0;
  pointer-events:none;
}

/* ===== Hero depth (subtle, no global gloss) ===== */
.nr-layout-visual:not(.is-immersive){
  position: relative;
}
.nr-layout-visual:not(.is-immersive)::after{
  display: none;
}

/* Mobile perf: reduce expensive blur/repaint artifacts */
@media (max-width: 820px){
  #nr-scroll-root::after{
    display: none;
  }
}

#nr-scroll-root{
  contain: none;
}

html, body{
  overflow-x: clip;
}

@media (max-width: 820px){
  #nr-scroll-root{
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-y: auto;
    will-change: scroll-position;
  }
  /* remove only the heaviest noise layer on mobile */
  body::before{
    display: none;
    content: none;
  }
  .nr-layout-visual.has-image{
    height: calc(100svh - 148px);
    min-height: calc(100svh - 148px);
    max-height: calc(100svh - 148px);
  }
  .nr-layout-visual.has-image #nr-visualizer{
    height: 100%;
    min-height: 0;
  }
}

@media (min-width: 1024px){
  .nr-layout-visual.has-image{
    min-height: calc(100svh - 92px);
    max-height: calc(100svh - 92px);
  }
  .nr-layout-visual.has-image #nr-visualizer{
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    height: 100%;
  }
}

/* Ultra-wide displays: keep workspace proportional to viewport height */
@media (min-width: 1800px){
  .nr-layout-visual.has-image #nr-visualizer{
    width: min(100%, calc((100svh - 92px) * 1.9));
    margin-left: auto;
    margin-right: auto;
  }
}

/* Flatten nested "bento inside bento" for image workspace */
.nr-layout-visual.has-image{
  padding: 10px;
}
#nr-visualizer.has-image{
  background: transparent;
  border-color: rgba(255,255,255,.08);
  box-shadow: none;
  overflow: visible;
}
#nr-visualizer.has-image::after{
  display: none;
  content: none;
}
#nr-visualizer.has-image > .nr-canvaswrap.has-image{
  background: transparent;
  border: 0;
  box-shadow: none;
  overflow: visible;
}
#nr-visualizer.has-image > .nr-canvaswrap.has-image::after{
  display: none;
  content: none;
}

/* Mobile hero simplification: remove heavy decorative layers and large vertical gap */
@media (max-width: 820px){
  html, body, #root, .nr-app-root, .nr-page-shell{
    max-width: 100%;
    overflow-x: clip;
  }
  #nr-scroll-root{
    padding-left: .5rem;
    padding-right: .5rem;
  }
  .nr-page-shell{
    width: 100%;
    max-width: 100%;
  }
  body.nr-home-page #hero-top.nr-home-swiss-hero{
    padding: 92px 10px 10px;
    min-height: auto;
    box-sizing: border-box;
  }
  body.nr-home-page #hero-top.nr-home-swiss-hero::before,
  body.nr-home-page #hero-top.nr-home-swiss-hero::after{
    display: none;
  }
  #hero-main-header,
  #hero-main-header.scrolled{
    padding: .85rem 1rem;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-sizing: border-box;
    width: 100%;
  }
  #hero-main-header > *{
    min-width: 0;
  }
  .nr-ai-wrap{
    min-width: 0;
    padding: 0;
  }
  .nr-ai-wrap > div{
    min-width: 0;
  }
  .nr-ai-toggle{
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 7px 10px;
    min-height: 42px;
    border-radius: 8px;
  }
}

/* Unified toolbar layout (single source of truth) */
#nr-bento .nr-main-menu-grid{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  width: 100%;
}

/* Demo7 toolbar variant (backup page only) */
#nr-bento .nr-main-menu-hint-bar{
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 30px;
  margin-bottom: 6px;
  padding: 5px 8px;
  border: 1px solid var(--nr-control-border-dark);
  border-radius: 10px;
  background: var(--nr-control-bg-strong);
}
#nr-bento .nr-main-menu-hint-text{
  flex: 1;
  min-width: 0;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .11em;
  text-transform: uppercase;
  color: var(--nr-control-text-dim);
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#nr-bento .nr-main-menu-hint-info{
  height: 24px;
  padding: 0 10px;
  border-radius: 7px;
  border: 1px solid var(--nr-control-border-contrast);
  background: var(--nr-control-bg-active);
  color: var(--nr-control-text);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
}
#nr-bento .nr-main-menu-grid--toolbar{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
}
#nr-bento .nr-main-menu-grid--toolbar > button{
  min-height: 36px;
  border-radius: 10px;
  background: var(--nr-control-bg-elevated);
  border-color: var(--nr-control-border-strong);
  color: var(--nr-control-text-soft);
}
#nr-bento .nr-main-menu-grid--toolbar > button:nth-child(4),
#nr-bento .nr-main-menu-grid--toolbar > button:nth-child(5){
  grid-column: span 1;
}
#nr-bento .nr-main-menu-grid--toolbar > button:nth-child(4){
  margin-right: 3px;
}
#nr-bento .nr-main-menu-grid--toolbar > button:nth-child(5){
  margin-left: 3px;
}
#nr-bento .nr-main-menu-grid--toolbar .nr-main-menu-two-line{
  line-height: 1.03;
}
@media (max-width: 768px){
  #nr-bento .nr-main-menu-hint-text{
    font-size: 9px;
    letter-spacing: .09em;
  }
  #nr-bento .nr-main-menu-hint-info{
    height: 22px;
    padding: 0 8px;
    font-size: 11px;
  }
  #nr-bento .nr-main-menu-grid--toolbar{
    gap: 5px;
  }
}
.nr-main-menu-grid .nr-step-hint,
#nr-bento .nr-main-menu-grid > button.nr-step-hint{
  border-color: var(--nr-info-brd);
  background: linear-gradient(180deg, var(--nr-surface-info-strong), var(--nr-surface-info-ui));
  color: var(--nr-text-contrast);
  box-shadow: inset 0 0 0 1px var(--nr-info-brd), 0 0 0 3px var(--nr-surface-info-ui), 0 0 20px var(--nr-info-soft);
}
.nr-main-menu-grid .nr-step-hint.nr-step-hint--alt{
  border-color: var(--nr-success-brd);
  background: linear-gradient(180deg, var(--nr-surface-success-ui), var(--nr-success-soft));
  box-shadow: inset 0 0 0 1px var(--nr-success-brd), 0 0 0 4px var(--nr-success-soft), 0 0 22px var(--nr-surface-success-ui);
}

/* Demo7 toolbar (as in demo/toolbar-styles-lab.html) */
.nr-toolbar-dock{
  position: fixed;
  left: 50%;
  right: auto;
  bottom: max(16px, env(safe-area-inset-bottom, 0px) + 12px);
  z-index: var(--nr-z-dock-active);
  display: grid;
  grid-template-rows: auto auto;
  gap: 0;
  width: min(1060px, calc(100vw - 24px));
  max-width: calc(100vw - 24px);
  height: auto;
  margin: 0;
  pointer-events: none;
  isolation: isolate;
  transform: translateX(-50%);
  background: var(--nr-control-bg-deep);
  border: 1px solid var(--nr-control-border-dark);
  border-radius:12px;
  overflow: hidden;
}
.nr-toolbar-dock > *{ pointer-events: auto; }
.nr-toolbar-dock > *,
.nr-toolbar-dock > * *{
  position: relative;
  z-index: var(--nr-z-dock-active);
}
.nr-toolbar-tracker{
  display: flex;
  align-items: center;
  gap: 0;
  background: var(--nr-control-bg-dark);
  border: 0;
  border-bottom: 1px solid var(--nr-control-border-dark);
  border-radius: 0;
  overflow: hidden;
  min-height: 30px;
  height: auto;
}
.nr-toolbar-step{
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 30px;
  height: auto;
  padding: 0 6px;
  cursor: pointer;
  font-family: "Bebas Neue", sans-serif;
  font-size: 12px;
  letter-spacing: .035em;
  color: var(--nr-control-text-faint);
  border: 0;
  border-right: 1px solid var(--nr-control-border-dark);
  background: transparent;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nr-toolbar-step:last-child{ border-right:none; }
.nr-toolbar-step.active{ background: var(--nr-control-bg-active); color: var(--nr-control-text); }
.nr-toolbar-shell{
  display:flex;
  flex-direction:column;
  gap:0;
  min-height:auto;
  background: var(--nr-control-bg-deep);
  border:0;
  border-radius:0;
  box-shadow:none;
  margin:0;
  overflow:visible;
}
.nr-toolbar-hint{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:32px;
  padding:5px 8px;
  border-bottom: 1px solid var(--nr-control-border-dark);
  color: var(--nr-control-text-dim);
  background: var(--nr-control-bg-strong);
}
.nr-toolbar-hint-text{
  flex:1;
  min-width:0;
  font-family:"IBM Plex Mono",monospace;
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.nr-toolbar-hint-info{
  height:26px;
  padding:0 8px;
  border-radius:6px;
  border: 1px solid var(--nr-control-border-contrast);
  background: var(--nr-control-bg-active);
  color: var(--nr-control-text-soft);
  font-family:"Bebas Neue",sans-serif;
  font-size:15px;
  letter-spacing:.1em;
}
.nr-toolbar-row{
  display:flex;
  align-items:center;
  gap:5px;
  padding:0 7px;
  overflow-x:auto;
  overflow-y: hidden;
  flex-wrap:nowrap;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  height:0;
  max-height:0;
}
.nr-toolbar-row.active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  height:auto;
  max-height:500px;
  min-height:32px;
  overflow-y: hidden;
  padding:6px 7px;
}
.nr-toolbar-row::-webkit-scrollbar{ display:none; }
.nr-toolbar-row--wood.active{
  flex-wrap:nowrap;
  overflow-x:auto;
  row-gap:0;
}
.nr-toolbar-row--wood.active .nr-toolbar-btn{
  flex:0 0 auto;
  justify-content:center;
}
.nr-toolbar-row--form.active{
  flex-wrap: nowrap;
  gap: 8px;
}
.nr-toolbar-row--scale.active{
  flex-wrap: nowrap;
  gap: 8px;
}
.nr-toolbar-step-lbl{
  font-family:"Bebas Neue",sans-serif;
  font-size:17px;
  letter-spacing:.10em;
  color: var(--nr-control-text-mid);
}
.nr-toolbar-vl{
  width:1px;
  height:22px;
  background: var(--nr-control-border-dark);
  flex-shrink:0;
}
.nr-toolbar-input{
  display:flex;
  align-items:center;
  gap: 8px;
  background: var(--nr-control-bg-strong);
  border: 1px solid var(--nr-control-border-soft);
  border-radius:8px;
  overflow:hidden;
  max-width:220px;
  height:32px;
  padding:0 10px;
  color: var(--nr-control-text);
  font-family:"IBM Plex Mono",monospace;
  font-weight:700;
}
.nr-toolbar-input .label{
  font-family:"Bebas Neue",sans-serif;
  font-size:16px;
  letter-spacing:.05em;
  color: var(--nr-control-text-mid);
  white-space:nowrap;
  line-height:1;
}
.nr-toolbar-input input{
  width:64px;
  height:28px;
  border:0;
  outline:none;
  background:transparent;
  color: var(--nr-control-text);
  font-family:"IBM Plex Mono",monospace;
  font-weight:700;
  font-size:22px;
  text-align:right;
}
.nr-toolbar-input .unit{
  margin-left:4px;
  padding-left:8px;
  border-left: 1px solid var(--nr-control-border-soft);
  font-size:11px;
  letter-spacing:.12em;
  color: var(--nr-control-text-faint);
  text-transform:uppercase;
}
@media (max-width: 1024px){
  .nr-toolbar-input .label{
    font-size:14px;
    letter-spacing:.04em;
  }
  .nr-toolbar-input input{
    width:58px;
    font-size:20px;
  }
}
.nr-toolbar-sp{ flex:1; min-width:4px; }
.nr-toolbar-status{
  display:flex;
  align-items:center;
  gap:5px;
  font-family:"IBM Plex Mono",monospace;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color: var(--nr-control-text-faint);
  white-space:nowrap;
}
.nr-toolbar-status .dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background: var(--nr-warning);
  box-shadow: 0 0 0 3px var(--nr-warning-soft);
}
.nr-toolbar-status .dot.ok{
  background: var(--nr-teal);
  box-shadow: 0 0 0 3px var(--nr-info-soft);
}
.nr-toolbar-btn{
  height:38px;
  padding:0 8px;
  border-radius:8px;
  border: 1px solid var(--nr-control-border-strong);
  background: var(--nr-control-bg-elevated);
  color: var(--nr-control-text-mid);
  font-family:"Bebas Neue",sans-serif;
  font-size:13px;
  letter-spacing:.045em;
  text-transform:uppercase;
  display:flex;
  align-items:center;
  justify-content:center;
  white-space:nowrap;
}

@media (min-width: 1025px){
  .nr-toolbar-tracker{
    min-height: 28px;
  }
  .nr-toolbar-step{
    min-height: 28px;
    font-size: 11px;
    letter-spacing: .02em;
    padding: 0 5px;
  }
  .nr-toolbar-row.active{
    gap: 4px;
    padding: 5px 6px;
  }
  .nr-toolbar-btn{
    height: 36px;
    font-size: 12px;
    letter-spacing: .02em;
    padding: 0 7px;
  }
}
.nr-toolbar-btn.confirm{
  background: var(--nr-surface-success-ui);
  border-color: var(--nr-success-brd);
  color: var(--nr-teal);
}
.nr-toolbar-btn.confirm.is-done{
  border-color: var(--nr-success);
  color: var(--nr-text-contrast);
  box-shadow: inset 0 0 0 1px var(--nr-success-brd), 0 0 0 2px var(--nr-success-soft), 0 0 16px var(--nr-surface-success-ui);
}
.nr-toolbar-btn.active{
  background: var(--nr-surface-accent-cta);
  border-color: var(--nr-text-contrast);
  color: var(--nr-text-contrast);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.76), 0 0 0 2px var(--nr-surface-accent-strong), 0 0 18px rgba(249,92,75,.30);
}
.nr-toolbar-btn.danger{
  background: var(--nr-danger-soft);
  border-color: var(--nr-danger-brd);
  color: var(--nr-danger);
}
.nr-toolbar-btn.pulse-alt{
  border-color: var(--nr-border-accent-strong);
  color: var(--nr-text-contrast);
  animation:nrFormChoicePulse .9s ease-in-out infinite;
}
.nr-toolbar-row--sloped.active{
  border-top: 1px solid var(--nr-border-soft-ui);
}
.nr-toolbar-slider-wrap{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  height:36px;
  padding:0 10px;
  border-radius:8px;
  border: 1px solid var(--nr-control-border-dark);
  background: var(--nr-control-bg-dark);
  font-family:"IBM Plex Mono",monospace;
  font-size:13px;
  letter-spacing:.06em;
  color: var(--nr-control-text-dim);
  text-transform:uppercase;
}
.nr-toolbar-slider-wrap > span{
  white-space:nowrap;
  line-height:1;
}
.nr-toolbar-slider{
  flex:1 1 auto;
  min-width:140px;
  width:auto;
  accent-color:#f5a524;
  -webkit-appearance:none;
  appearance:none;
  height:18px;
  background:transparent;
  border:none;
  margin:0;
  padding:0;
}
.nr-toolbar-slider::-webkit-slider-runnable-track{
  height:10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
}
.nr-toolbar-slider::-webkit-slider-thumb{
  -webkit-appearance:none;
  width:18px;
  height:18px;
  margin-top:-5px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  background:linear-gradient(180deg, #f8f8f8, #d8d8d8);
  box-shadow:0 1px 6px rgba(0,0,0,.45);
}
.nr-toolbar-slider::-moz-range-track{
  height:10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.09), rgba(255,255,255,.03));
}
.nr-toolbar-slider::-moz-range-thumb{
  width:18px;
  height:18px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.35);
  background:linear-gradient(180deg, #f8f8f8, #d8d8d8);
  box-shadow:0 1px 6px rgba(0,0,0,.45);
}
.nr-toolbar-slider-wrap strong{
  font-size:12px;
  color: var(--nr-warning);
  min-width:52px;
  text-align:right;
}
.nr-toolbar-seg{
  display:flex;
  gap:2px;
  padding:2px;
  border-radius:8px;
  border: 1px solid var(--nr-control-border-dark);
  background: var(--nr-control-bg-dark);
}
.nr-toolbar-seg-btn{
  height:28px;
  padding:0 11px;
  border-radius:6px;
  border:1px solid transparent;
  background:transparent;
  color: var(--nr-control-text-faint);
  font-family:"Bebas Neue",sans-serif;
  font-size:12px;
  letter-spacing:.08em;
}
.nr-toolbar-seg-btn.on{
  background: var(--nr-surface-accent-cta);
  border-color: var(--nr-text-contrast);
  color: var(--nr-text-contrast);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75), 0 0 0 2px var(--nr-surface-accent-strong), 0 0 14px rgba(249,92,75,.28);
}
.nr-toolbar-seg-btn.pulse-alt{
  border-color: var(--nr-border-accent-strong);
  color: var(--nr-text-contrast);
  animation:nrFormChoicePulse .9s ease-in-out infinite;
}
/* Hard mobile rules (class-driven, no media conflicts) */
.nr-toolbar-dock.is-mobile-dock{
  position: fixed;
  top: auto;
  left: 8px;
  right: 8px;
  bottom: calc(env(safe-area-inset-bottom, 0px) + 10px);
  display: grid;
  width: auto;
  min-width: 0;
  max-width: none;
  margin: 0;
  transform: none;
  will-change: auto;
  box-sizing: border-box;
  overflow: hidden;
  order: initial;
  align-self: auto;
  justify-self: auto;
  z-index: calc(var(--nr-z-dock-active) + 6);
  max-height: min(40svh, calc(100svh - 92px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)));
  border-radius: 14px;
  box-shadow: var(--nr-shadow);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-shell{
  width: 100%;
  min-width: 0;
  overflow-x: hidden;
  overflow-y: auto;
  border-radius: 0 0 14px 14px;
  max-height: calc(min(40svh, calc(100svh - 92px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px))) - 38px);
  -webkit-overflow-scrolling: touch;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-tracker{
  width: 100%;
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.35fr);
  min-height: 36px;
  height: auto;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-step{
  min-width: 0;
  width: 100%;
  min-height: 36px;
  font-size: 11px;
  letter-spacing: .02em;
  line-height: 1.02;
  padding: 4px 3px;
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-hint-text{
  font-size: 11px;
  letter-spacing: .12em;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row.active{
  flex-wrap: wrap;
  overflow: visible;
  gap: 4px;
  padding: 4px;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row.active .nr-toolbar-vl,
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row.active .nr-toolbar-sp{
  display: none;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row.active .nr-toolbar-input{
  flex: 1 1 100%;
  max-width: none;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row.active .nr-toolbar-status{
  width: 100%;
  order: 2;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row.active .nr-toolbar-btn{
  flex: 1 1 calc(50% - 3px);
  min-width: 110px;
  height: 34px;
  font-size: 12px;
  letter-spacing: .02em;
  padding: 0 8px;
  text-overflow: ellipsis;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--wood.active{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: 4px;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--wood.active .nr-toolbar-btn{
  width: 100%;
  min-width: 0;
  flex: initial;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--wood.active .nr-toolbar-status{
  grid-column: 1 / -1;
  width: 100%;
  order: initial;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--scale.active .nr-toolbar-btn{
  flex: 1 1 calc(33.333% - 3px);
  min-width: 0;
  font-size: 11px;
  letter-spacing: .015em;
  padding: 0 4px;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch;
  gap: 4px;
  overflow: visible;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active .nr-toolbar-step-lbl,
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active .nr-toolbar-vl,
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active .nr-toolbar-status{
  display: none;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active .nr-toolbar-seg{
  display: contents;
  min-width: 0;
  gap: 4px;
  padding: 0;
  border: 0;
  background: transparent;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active .nr-toolbar-seg-btn{
  height: 32px;
  width: 100%;
  min-width: 0;
  padding: 0 4px;
  text-align: center;
  justify-content: center;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active .nr-toolbar-seg-btn.on{
  background: var(--nr-surface-accent-cta);
  border-color: var(--nr-text-contrast);
  color: var(--nr-text-contrast);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.75), 0 0 0 2px var(--nr-surface-accent-strong), 0 0 14px rgba(249,92,75,.28);
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active :is(.nr-toolbar-seg-btn, .nr-toolbar-btn){
  flex: 1 1 0;
  width: 100%;
  min-width: 0;
  height: 32px;
  font-size: 11px;
  letter-spacing: .03em;
  padding: 0 4px;
  font-family: "Bebas Neue", sans-serif;
  justify-content: center;
  border-radius: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active .nr-toolbar-btn.confirm{
  background: var(--nr-surface-success-ui);
  border-color: var(--nr-success-brd);
  color: var(--nr-teal);
  box-shadow: inset 0 0 0 1px var(--nr-success-soft);
}
.nr-toolbar-dock.is-mobile-dock .nr-toolbar-row--form.active .nr-toolbar-btn.confirm.is-done{
  background: var(--nr-surface-success-ui);
  border-color: var(--nr-success);
  color: var(--nr-text-contrast);
  box-shadow: inset 0 0 0 1px var(--nr-success-brd), 0 0 12px var(--nr-surface-success-ui);
}
@keyframes nrFormChoicePulse{
  0%,100%{ box-shadow:0 0 0 0 rgba(249,92,75,.00); background:rgba(249,92,75,.08); }
  50%{ box-shadow:0 0 0 3px rgba(249,92,75,.16), 0 0 18px rgba(249,92,75,.30); background:rgba(249,92,75,.16); }
}
.nr-exit-edit-pulse{
  animation: nrExitEditPulse 1.2s ease-in-out infinite;
}
@keyframes nrExitEditPulse{
  0%, 100%{
    box-shadow: 0 0 0 0 rgba(0,0,0,0);
    border-color: rgba(255,255,255,.15);
  }
  50%{
    box-shadow: 0 0 0 3px var(--nr-success-soft), 0 0 18px var(--nr-surface-success-ui);
    border-color: var(--nr-success-brd);
  }
}
.nr-dyn-shell{
  border-radius: 14px;
  padding: 3px 6px;    /* was 6px — mniej górа/dół */
  width: 100%;
  max-width: 100%;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  column-gap: 8px;
  row-gap: 4px;        /* was gap: 8px — przerwy między wierszami */
  overflow-x: hidden;
  overflow-y: visible;
}
.nr-dyn-shell .nr-scale-row{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  align-items: center;
  gap: 6px;
  padding: 0;  /* was 6px — usuwamy, żeby wiersze wyglądały jak w trybie drewna */
}
.nr-dyn-shell .nr-scale-row > *{
  min-width: 0;
}
.nr-dyn-shell .nr-scale-row > button{
  width: 100%;
}
.nr-dyn-shell .nr-scale-row > span,
.nr-dyn-shell .nr-scale-row > div{
  grid-column: 1 / -1;
}
.nr-dyn-shell .nr-mode-grid{
  display: inline-grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  width: 100%;
}
.nr-dyn-shell .nr-mode-grid > button{
  width: 100%;
}
.nr-dyn-hint{
  flex-basis: 100%;
  width: 100%;
}
.nr-scale-panel{
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 8px;
}
.nr-scale-panel__grid{
  width: 100%;
  display: grid;
  grid-template-columns: auto auto auto;
  align-items: center;
  gap: 8px;
}
.nr-scale-panel__grid.is-mobile{
  grid-template-columns: 1fr 1fr;
}
.nr-scale-panel__measure.is-mobile{
  grid-column: 1 / -1;
}
.nr-numpad-overlay{
  position: fixed;
  inset: 0;
  z-index: var(--nr-z-modal-raised);
  display: flex;
  align-items: flex-end;
  justify-content: center;
  background: rgba(3, 6, 14, .62);
  backdrop-filter: blur(7px);
  -webkit-backdrop-filter: blur(7px);
  padding: 14px 12px calc(env(safe-area-inset-bottom, 0px) + 10px);
  touch-action: none;
}
.nr-numpad-sheet{
  width: min(560px, 100%);
  border-radius: 22px;
  border: 1px solid var(--nr-border-strong-ui);
  background:
    linear-gradient(180deg, var(--nr-surface-chip-strong), var(--nr-surface-faint)),
    var(--nr-bg-strong);
  box-shadow: var(--nr-shadow);
  padding: 12px;
}
.nr-numpad-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.nr-numpad-head-actions{
  display: flex;
  align-items: center;
  gap: 8px;
}
.nr-numpad-title{
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--nr-text-strong-alpha);
}
.nr-numpad-clear{
  height: 34px;
  min-width: 78px;
  border-radius: 10px;
  border: 1px solid var(--nr-border-accent-ui);
  background: var(--nr-surface-accent-cta);
  color: var(--nr-text-contrast);
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .05em;
}
.nr-numpad-close{
  height: 34px;
  min-width: 34px;
  border-radius: 10px;
  border: 1px solid var(--nr-border-stronger);
  background: var(--nr-surface-chip);
  color: var(--nr-text-soft-alpha);
  font-weight: 900;
}
.nr-numpad-display{
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  border: 1px solid var(--nr-border-accent-strong);
  background: var(--nr-accent-dim);
  color: var(--nr-text-contrast);
  font-size: 28px;
  font-weight: 900;
  letter-spacing: .04em;
  margin-bottom: 12px;
}
.nr-numpad-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.nr-numpad-key{
  height: 48px;
  border-radius: 12px;
  border: 1px solid var(--nr-border-emphasis);
  background: var(--nr-surface-chip);
  color: var(--nr-text);
  font-size: 20px;
  font-weight: 900;
  touch-action: manipulation;
}
.nr-numpad-key--ghost{
  font-size: 19px;
  color: rgba(255,255,255,.9);
}
.nr-numpad-key--ok{
  font-size: 15px;
  letter-spacing: .08em;
  text-transform: uppercase;
  background: rgba(34,197,94,.24);
  border-color: rgba(34,197,94,.45);
}
@media (max-width: 640px){
  .nr-numpad-sheet{
    border-radius: 18px;
    padding: 10px;
  }
  .nr-numpad-display{
    height: 52px;
    font-size: 24px;
    margin-bottom: 10px;
  }
  .nr-numpad-key{
    height: 44px;
    font-size: 18px;
  }
}
.nr-shape-choice-row{
  min-width: 0;
}
@media (min-width: 1025px){
  .nr-dynbento.is-canvas-dock .nr-shape-choice-row{
    width: fit-content;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    justify-content: center;
    overflow-x: visible;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle{
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: row;
    align-items: center;
    gap: 6px;  /* was 8px — wyrównujemy z gap wood mode */
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-snap,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-snap{
    grid-column: span 1;
    order: 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-edge,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-edge{
    grid-column: span 1;
    order: 2;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-delete,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-delete{
    grid-column: span 1;
    order: 3;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-sens,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-sens{
    grid-column: span 1;
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 6px;
    order: 4;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-sens > span,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-sens > span{
    display: none;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-done,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-done,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-undo,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-undo,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-clear,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-clear,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-exit,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-exit{
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-clear,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-clear{ order: 5; }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-exit,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-exit{ order: 6; }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-undo,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-undo{ order: 7; }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-done,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-done{ order: 8; }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-sens input[type="range"],
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-sens input[type="range"]{
    width: 100%;
    min-width: 0;
  }
}
.nr-dyn-shell input[type="range"]{
  min-height: 28px;
}
@media (min-width: 1025px){
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    align-items: center;
    gap: 6px;  /* was 8px */
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-mode-switch,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-mode-switch{
    grid-column: span 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;  /* was 8px */
    width: 100%;
    min-width: 0;
    margin-right: 0;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-row1-snap,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-row1-snap,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-row1-delete,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-row1-delete,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-row2-done,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-row2-done,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-pro-row2-undo,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-pro-row2-undo,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-pro-row2-clear,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-pro-row2-clear,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-pro-row2-exit,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-pro-row2-exit{
    grid-column: span 1;
    width: 100%;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-row1-snap,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-row1-snap{ order: 3; }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-row1-delete,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-row1-delete{ order: 4; }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-pro-row2-clear,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-pro-row2-clear{ order: 5; }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-pro-row2-exit,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-pro-row2-exit{ order: 6; }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-pro-row2-undo,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-pro-row2-undo{ order: 7; }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-row2-done,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-row2-done{ order: 8; }
}
@media (max-width: 1024px){
  .nr-dyn-shell{
    max-height: 44vh;
    overflow-y: auto;
  }
  .nr-dyn-shell .nr-shape-choice-row{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    width: 100%;
    max-width: 100%;
    gap: 6px;
    margin-right: 0;
    overflow: visible;
  }
  .nr-dyn-shell .nr-shape-choice-row > button{
    width: 100%;
    min-width: 0;
    padding-left: 8px;
    padding-right: 8px;
  }
  #nr-bento{
    left: 6px;
    right: 6px;
    padding: 0;
  }
  #nr-bento > div{
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  .nr-layout-visual:has(.nr-dynbento){
    overflow: visible;
  }
  #nr-visualizer:has(+ .nr-dynbento),
  #nr-visualizer:has(~ .nr-dynbento){
    overflow: visible;
  }
  .nr-main-menu-grid{
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    grid-auto-flow: row;
    gap: 6px;
    width: 100%;
  }
  #nr-bento .nr-main-menu-grid > button{
    grid-column: span 2;
    width: 100%;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--scale{
    grid-column: 1 / span 2;
    grid-row: 1;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--form{
    grid-column: 3 / span 2;
    grid-row: 1;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--wood{
    grid-column: 5 / span 2;
    grid-row: 1;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--rotate{
    grid-column: 1 / span 3;
    grid-row: 2;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--reset{
    grid-column: 4 / span 3;
    grid-row: 2;
  }
  /* Mobile/tablet: keep labels readable by removing icons in main menu */
  #nr-bento .nr-main-menu-grid > button svg{
    display: none;
  }
  #nr-bento .nr-main-menu-grid > button > span{
    gap: 0;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--scale,
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--form,
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--wood{
    font-size: 12px;
    letter-spacing: .02em;
    line-height: 1.05;
  }
  .nr-main-menu-two-line{
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    text-align: center;
  }
  .nr-main-menu-two-line > span{
    white-space: nowrap;
    display: block;
  }
}
@media (max-width: 820px){
  /* Top step hint: centered and narrower (not full-width) */
  .nr-dynbento .nr-dyn-hint{
    flex-basis: auto;
    width: auto;
    max-width: calc(100% - 14px);
    margin-left: auto;
    margin-right: auto;
    display: inline-flex;
    justify-content: center;
  }

  /* Make button 3 wider on phone: 1 and 2 slightly narrower */
  #nr-bento .nr-main-menu-grid{
    grid-template-columns: repeat(7, minmax(0, 1fr));
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--scale{
    grid-column: 1 / span 2;
    grid-row: 1;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--form{
    grid-column: 3 / span 2;
    grid-row: 1;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--wood{
    grid-column: 5 / span 3;
    grid-row: 1;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--rotate{
    grid-column: 1 / span 4;
    grid-row: 2;
  }
  #nr-bento .nr-main-menu-grid > .nr-main-menu-btn--reset{
    grid-column: 5 / span 3;
    grid-row: 2;
  }
}
@media (min-width: 390px) and (max-width: 1024px){
  .nr-dyn-shell .nr-scale-row{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 1024px){
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: row;
    align-items: center;
    gap: 6px;
    width: 100%;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-snap,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-snap{
    order: 1;
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-edge,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-edge{
    order: 2;
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-delete,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-delete{
    order: 3;
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-sens,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-sens{
    order: 4;
    grid-column: span 1;
    min-width: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: center;
    gap: 6px;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-sens > span,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-sens > span{
    display: none;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-undo,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-undo{
    order: 7;
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-clear,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-clear{
    order: 5;
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-done,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-done{
    order: 8;
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row2-exit,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row2-exit{
    order: 6;
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > button,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > button{
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-sens input[type="range"],
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-sens input[type="range"]{
    width: 100%;
    min-width: 0;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_poly > .nr-pro-row1-sens > span,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--pro_circle > .nr-pro-row1-sens > span{
    font-size: 12px;
    white-space: nowrap;
  }

  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude{
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: 100%;
    align-items: center;
    gap: 6px;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-mode-switch,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-mode-switch{
    order: 1;
    grid-column: span 2;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-right: 0;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-row1-snap,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-row1-snap{
    order: 2;
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-row1-delete,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-row1-delete{
    order: 3;
    grid-column: span 1;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-row2-done,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-row2-done{
    order: 8;
    grid-column: span 2;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-pro-row2-undo,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-pro-row2-undo{
    order: 7;
    grid-column: span 2;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-pro-row2-clear,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-pro-row2-clear{
    order: 5;
    grid-column: span 2;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-pro-row2-exit,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-pro-row2-exit{
    order: 6;
    grid-column: span 2;
  }
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > button,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > button,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly > .nr-poly-mode-switch > button,
  .nr-dyn-shell .nr-scale-row.nr-scale-row--poly_exclude > .nr-poly-mode-switch > button{
    width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
  }
}

/* Layer summary labels: WARSTW / MAX / OSTATNIA */
.nr-layersummary .nr-layerstats .nr-stat .nr-layerstat-k{
  color: #f3f6fb;
  opacity: 1;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .14em;
  text-shadow: 0 1px 0 rgba(0,0,0,.28);
}

/* Canvas fit and workspace sizing */
.nr-layout-visual.has-image{
  padding: 6px;
}
.nr-layout-visual.has-image.is-editing{
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.nr-layout-visual.has-image #nr-visualizer{
  width: 100%;
  max-width: 100%;
  height: 100%;
  margin: 0;
  border-radius: 14px;
}
#nr-visualizer.has-image{
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
  background:
    radial-gradient(900px 520px at 50% 45%, rgba(255,255,255,.035), transparent 64%),
    #17191d;
}
#nr-visualizer.has-image > .nr-canvas-stage{
  width:100%;
  height:100%;
  min-height:0;
  align-items:center;
  justify-content:center;
  background:
    radial-gradient(760px 440px at 50% 48%, rgba(255,255,255,.045), transparent 62%),
    #17191d;
  border-radius:10px;
}
#nr-visualizer.has-image > .nr-canvaswrap.has-image{
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

@media (min-width: 1024px){
  .nr-layout-visual.has-image{
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
  .nr-layout-visual.has-image #nr-visualizer{
    width: 100%;
  }
}

/* === Flat bento modules (no hover, no backgrounds) === */
#nr-risk-alert,
#nr-risk-alert .nr-risk-plan,
#nr-risk-alert .nr-risk-bhpBadge,
#nr-risk-alert .nr-risk-planTitle,
#nr-bento > div,
.nr-dynbento > div,
#nr-bento button,
.nr-dynbento button,
#nr-bento .nr-seg-btn,
.nr-dynbento .nr-seg-btn,
.nr-rec-section.nr-ui-rec,
.nr-rec-section.nr-ui-rec .nr-rec-icon,
.nr-rec-section.nr-ui-rec .nr-rec-btn,
.nr-rec-section.nr-ui-rec .nr-rec-card,
.nr-rec-section.nr-ui-rec .nr-rec-card--best,
.nr-rec-section.nr-ui-rec .nr-rec-card-use,

.nr-rec-section.nr-ui-rec .nr-rec-btn:hover,
.nr-rec-section.nr-ui-rec .nr-rec-card:hover,
.nr-rec-section.nr-ui-rec .nr-rec-card-use:hover,
.nr-dynbento button:hover,
#nr-bento button:hover,
#nr-bento .nr-seg-btn:hover{
  background: transparent;
  background-image: none;
  box-shadow: none;
  transform: none;
}

/* === Mass balance simplified (no bento-in-bento) === */
.nr-ui-mass{
  padding: 16px;
}
.nr-ui-mass .nr-mass-flat{
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  padding: 0;
}
.nr-ui-mass .nr-mass-flat .nr-mass-row{
  border: 0;
  border-bottom: 1px solid var(--nr-border-strong-ui);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  margin: 0;
  padding: 12px 0;
}
.nr-ui-mass .nr-mass-flat .nr-mass-row:last-child{
  border-bottom: 0;
}

/* === No background: Mass balance + mold material buttons === */
.nr-ui-mass,
.nr-ui-mass .nr-mass-flat,
.nr-ui-mass .nr-mass-flat .nr-mass-row,
.nr-ui-mass .nr-mass-summary-grid,
.nr-ui-mass .nr-mass-metric{
  background: transparent;
  background-image: none;
  box-shadow: none;
}

.nr-layout-mold .nr-grid button,
.nr-layout-mold .nr-grid button.nr-is-selected,
.nr-layout-mold .nr-grid button:hover{
  background: transparent;
  background-image: none;
  box-shadow: none;
}

.nr-ui-mass [class*="bg-"]{
  background: transparent;
  background-image: none;
}

/* Mass balance visual restore: outer frame + ratio beans */
.nr-ui-mass{
  border: 1px solid var(--nr-border-strong-ui);
  border-radius: 24px;
  background: var(--nr-surface-overlay-soft);
  box-shadow: var(--nr-shadow-utility-lg), inset 0 1px 0 var(--nr-border-faint);
}
.nr-ui-mass .nr-mass-row--ratio > .relative{
  border-radius: 14px;
  border: 1px solid var(--nr-border-emphasis);
  background: var(--nr-surface-soft-strong);
  box-shadow: inset 0 1px 0 var(--nr-border-strong-ui);
}
.nr-ui-mass .nr-ratioA{
  background: var(--nr-success-soft);
}
.nr-ui-mass .nr-ratioB{
  background: var(--nr-warning-soft);
}

/* === Animated perimeter pulse for "REKOMENDACJA (WARSTWY)" === */
@property --nr-risk-ring-angle{
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}
@keyframes nrRiskRingSpin{
  to{ --nr-risk-ring-angle: 1turn; }
}
@keyframes nrRiskRingPulse{
  0%, 100%{ opacity: .28; }
  50%{ opacity: .72; }
}
.nr-alertPulse.is-hot .nr-risk-plan{
  position: relative;
  isolation: isolate;
}
.nr-alertPulse.is-hot .nr-risk-plan::before,
.nr-alertPulse.is-hot .nr-risk-plan::after{
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: inherit;
  pointer-events: none;
  padding: 2px;
  background: conic-gradient(
    from var(--nr-risk-ring-angle),
    rgba(251,113,133,0) 0deg,
    rgba(251,113,133,0) 286deg,
    rgba(251,113,133,.95) 326deg,
    rgba(254,202,202,.95) 344deg,
    rgba(251,113,133,0) 1turn
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
}
.nr-alertPulse.is-hot .nr-risk-plan::before{
  animation: nrRiskRingSpin 2.6s linear infinite;
}
.nr-alertPulse.is-hot .nr-risk-plan::after{
  filter: blur(7px);
  animation: nrRiskRingSpin 2.6s linear infinite, nrRiskRingPulse 1.8s ease-in-out infinite;
}

@media (max-width: 820px){
  .nr-layout-visual.has-image.is-editing{
    position: fixed;
    inset: calc(env(safe-area-inset-top, 0px) + 56px) 0 0 0;
    height: auto;
    min-height: 0;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    z-index: calc(var(--nr-z-dock-active) + 2);
  }
  .nr-layout-visual.has-image.is-editing .nr-ai-wrap{
    display: none;
  }
  .nr-layout-visual.has-image.is-editing #nr-visualizer{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 0;
    height: 100%;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #0c1118;
    box-sizing: border-box;
  }
  .nr-layout-visual.has-image.is-editing #nr-visualizer > .nr-toolbar-dock.is-mobile-dock{
    flex: initial;
    margin: 0;
  }
  .nr-layout-visual.has-image.is-editing #nr-visualizer > .nr-canvas-stage{
    flex: 1 1 0;
    min-height: 0;
    height: 100%;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    order: initial;
    overflow: hidden;
  }
  .nr-layout-visual.has-image.is-editing #nr-visualizer > .nr-canvas-stage > .nr-canvas-stage-inner.nr-canvaswrap.has-image{
    width: 100%;
    height: 100%;
    min-height: 0;
    max-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  .nr-layout-visual.has-image.is-editing #nr-visualizer > .nr-canvas-stage > .nr-canvas-stage-inner.nr-canvaswrap.has-image .nr-canvaszoom{
    max-width: 100%;
    max-height: 100%;
  }
  .nr-layout-visual.has-image:not(.is-editing){
    height: auto;
    min-height: 320px;
    max-height: none;
    position: relative;
    top: auto;
  }
  .nr-layout-visual.has-image:not(.is-editing) #nr-visualizer{
    height: auto;
    min-height: 320px;
  }
}

/* === Process modules: final stable layout (desktop + mobile) === */
.nr-section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
}
.nr-section-meta{
  opacity:.9;
}

/* === Process cockpit: temperature + cure map === */
.nr-process-cockpit{
  width:100%;
  overflow:hidden;
  border:1px solid var(--nr-border-strong-ui);
  border-radius:22px;
  color:var(--nr-text);
  background:
    radial-gradient(860px 380px at 76% 0%, var(--nr-surface-accent-strong), transparent 58%),
    linear-gradient(180deg, var(--nr-surface-soft-strong), var(--nr-surface-faint)),
    var(--nr-surface);
  box-shadow:0 24px 90px rgba(0,0,0,.24), inset 0 1px 0 var(--nr-border-faint);
}
.nr-process-cockpit__top{
  position:relative;
  display:flex;
  justify-content:space-between;
  gap:20px;
  padding:30px 30px 22px;
  border-bottom:1px solid var(--nr-border-faint);
}
.nr-process-cockpit__top::before{
  content:"";
  position:absolute;
  left:30px;
  top:0;
  width:58px;
  height:3px;
  border-radius:0 0 3px 3px;
  background:linear-gradient(90deg, var(--nr-accent), transparent);
}
.nr-process-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.nr-process-eyebrow::after{
  content:"";
  width:22px;
  height:1px;
  background:currentColor;
  opacity:.45;
}
.nr-process-eyebrow,
.nr-process-block-title{
  font-size:11px;
  line-height:1;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.28em;
  color:var(--nr-text-muted-alpha);
}
.nr-process-cockpit h3{
  margin:14px 0 0;
  max-width:720px;
  font-size:40px;
  line-height:.96;
  font-weight:900;
  letter-spacing:-.012em;
  color:var(--nr-text);
}
.nr-process-meta-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(110px, 1fr));
  gap:10px;
  width:min(340px, 100%);
  align-content:start;
}
.nr-process-meta{
  position:relative;
  overflow:hidden;
  min-height:70px;
  border:1px solid var(--nr-border-faint);
  border-radius:8px;
  padding:12px;
  background:var(--nr-surface-faint);
  transition:border-color .3s ease, transform .3s ease;
}
.nr-process-meta::before{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  top:0;
  height:2px;
  background:linear-gradient(90deg, var(--nr-accent-soft), transparent);
  opacity:.55;
  transition:opacity .3s ease;
}
.nr-process-meta:hover{
  transform:translateY(-1px);
  border-color:var(--nr-border-strong-ui);
}
.nr-process-meta:hover::before{ opacity:1; }
.nr-process-meta span{
  display:block;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--nr-text-faint);
}
.nr-process-meta b{
  display:block;
  margin-top:8px;
  font-size:22px;
  line-height:1;
  letter-spacing:0;
  color:var(--nr-text-soft-alpha);
}
.nr-process-cockpit__grid{
  display:grid;
  grid-template-columns:260px minmax(0,1fr) 210px;
  min-height:620px;
}
.nr-process-side,
.nr-process-control{
  padding:26px 26px 24px;
  border-right:1px solid var(--nr-border-faint);
}
.nr-process-control{
  border-right:0;
  border-left:1px solid var(--nr-border-faint);
}
.nr-process-block + .nr-process-block{ margin-top:34px; }
.nr-process-block-title{ margin-bottom:14px; }
.nr-process-data-list{
  display:grid;
  gap:12px;
}
.nr-process-data-row{
  min-width:0;
}
.nr-process-data-meta{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:12px;
  align-items:baseline;
  padding-bottom:9px;
  border-bottom:1px solid var(--nr-border-faint);
}
.nr-process-data-meta strong{
  min-width:0;
  font-size:13px;
  line-height:1.25;
  color:var(--nr-text-soft-alpha);
}
.nr-process-data-meta span{
  color:var(--nr-accent-soft);
  font-size:11px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.06em;
  white-space:nowrap;
}
.nr-process-mini-signal{
  height:32px;
  margin-top:8px;
  overflow:hidden;
  border:1px solid var(--nr-border-faint);
  border-radius:8px;
  background:var(--nr-surface-soft);
}
.nr-process-mini-signal i{
  display:block;
  height:100%;
  min-width:8%;
  background:
    linear-gradient(90deg, rgba(194,106,97,.58), rgba(194,106,97,.18)),
    repeating-linear-gradient(135deg, transparent 0 7px, rgba(255,255,255,.08) 7px 8px);
}
.nr-process-mini-signal[data-level="2"] i{
  background:
    linear-gradient(90deg, rgba(194,106,97,.52), rgba(194,106,97,.15)),
    repeating-linear-gradient(45deg, transparent 0 7px, rgba(255,255,255,.09) 7px 8px);
}
.nr-process-mini-signal[data-level="3"] i{
  background:
    linear-gradient(90deg, rgba(194,106,97,.55), rgba(194,106,97,.16)),
    repeating-linear-gradient(45deg, transparent 0 7px, rgba(255,255,255,.08) 7px 8px),
    repeating-linear-gradient(-45deg, transparent 0 7px, rgba(255,255,255,.06) 7px 8px);
}
.nr-process-mini-signal[data-level="4"] i{
  background:linear-gradient(180deg, rgba(194,106,97,.88), rgba(194,106,97,.66));
}
.nr-process-chart-panel{
  position:relative;
  min-width:0;
  padding:24px 26px;
  overflow:hidden;
}
.nr-process-nav{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  margin-bottom:28px;
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--nr-text-faint);
}
.nr-process-nav span:first-child{ color:var(--nr-text-soft-alpha); }
.nr-process-chart-stage{
  position:relative;
  min-height:410px;
  border-bottom:1px solid var(--nr-border-faint);
}
.nr-process-chart-stage svg{
  display:block;
  width:100%;
  height:auto;
  min-height:410px;
}
.nr-process-plot-bg{
  fill:var(--nr-surface-faint);
}
.nr-process-grid-lines{
  stroke:var(--nr-border-faint);
  stroke-width:1;
}
.nr-process-axis-label,
.nr-process-markers text,
.nr-process-window-bracket text,
.nr-process-dist-widget text{
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  fill:var(--nr-text-subtle);
}
.nr-process-chart-note{
  position:absolute;
  right:24px;
  top:20px;
  display:flex;
  align-items:center;
  gap:9px;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:var(--nr-text-muted-alpha);
  z-index:2;
}
.nr-process-chart-note i{
  width:34px;
  height:8px;
  border-radius:1px;
  background:linear-gradient(90deg, var(--nr-surface-success-ui), var(--nr-surface-chip-strong));
  box-shadow:0 0 24px rgba(126,196,184,.12);
}
.nr-process-chart-note i.is-hot{
  background:linear-gradient(90deg, #d79a76, var(--nr-accent));
  box-shadow:0 0 24px rgba(194,106,97,.28);
}
.nr-process-readout{
  position:absolute;
  left:47%;
  top:44%;
  z-index:2;
  display:grid;
  gap:4px;
  padding:10px 12px;
  border:1px solid var(--nr-border-strong-ui);
  border-radius:var(--radius-sm);
  background:var(--nr-surface-overlay);
  transform:translate(-50%, -50%);
}
.nr-process-readout b{
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.18em;
  color:var(--nr-text);
}
.nr-process-readout span{
  color:var(--nr-accent-soft);
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.nr-process-scan{
  position:absolute;
  inset:0;
  width:180px;
  pointer-events:none;
  background:linear-gradient(90deg, transparent, var(--nr-surface-faint), transparent);
  animation:nrProcessScan 7s linear 3;
  animation-fill-mode:forwards;
  opacity:.55;
}
@keyframes nrProcessScan{
  from{ transform:translateX(-220px); }
  to{ transform:translateX(1100px); }
}
.nr-process-heat-glow{
  fill:none;
  stroke:rgba(194,106,97,.20);
  stroke-width:18;
  filter:url(#nrSoftGlow);
}
.nr-process-heat-line{
  fill:none;
  stroke:url(#nrHeatCurve);
  stroke-width:5;
  stroke-linecap:round;
}
.nr-process-cure-line{
  fill:none;
  stroke:url(#nrCureCurve);
  stroke-width:2;
  stroke-linecap:round;
  opacity:.9;
}
.nr-process-marker-lines{
  stroke:rgba(238,236,231,.62);
  stroke-width:2;
  stroke-dasharray:7 10;
}
.nr-process-markers circle{
  fill:var(--nr-text-soft-alpha);
}
.nr-process-markers circle:first-child{
  fill:#d79a76;
}
.nr-process-markers circle.is-hot{
  fill:var(--nr-accent);
  filter:drop-shadow(0 0 10px rgba(194,106,97,.34));
}
.nr-process-markers circle.is-ok{
  fill:#8ea896;
}
.nr-process-window-bracket{
  stroke:rgba(238,236,231,.66);
  stroke-width:2;
  fill:var(--nr-text-subtle);
}
.nr-process-dist-widget rect:first-child{
  fill:none;
  stroke:var(--nr-border-strong-ui);
}
.nr-process-dist-widget rect:nth-child(2){
  fill:#d0af76;
}
.nr-process-phase-cards{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:10px;
  margin-top:20px;
}
.nr-process-phase-card{
  position:relative;
  overflow:hidden;
  min-height:96px;
  border:1px solid var(--nr-border-faint);
  border-radius:8px;
  padding:13px;
  background:var(--nr-surface-faint);
  transition:transform .35s ease, border-color .35s ease, box-shadow .35s ease, background-color .35s ease;
}
.nr-process-phase-card::before{
  position:absolute;
  right:-8px;
  bottom:-24px;
  font-size:88px;
  font-weight:900;
  line-height:1;
  letter-spacing:-.04em;
  color:transparent;
  -webkit-text-stroke:1px var(--nr-border-strong-ui);
  opacity:.28;
  pointer-events:none;
  transition:opacity .35s ease, -webkit-text-stroke-color .35s ease;
}
.nr-process-phase-card:nth-child(1)::before{ content:"01"; }
.nr-process-phase-card:nth-child(2)::before{ content:"02"; }
.nr-process-phase-card:nth-child(3)::before{ content:"03"; }
.nr-process-phase-card:nth-child(4)::before{ content:"04"; }
.nr-process-phase-card:hover{
  transform:translateY(-3px);
  border-color:var(--nr-border-accent-ui);
  box-shadow:0 14px 44px rgba(194,106,97,.16);
}
.nr-process-phase-card:hover::before{
  opacity:.55;
  -webkit-text-stroke-color:var(--nr-accent-soft);
}
.nr-process-phase-card > *{ position:relative; z-index:1; }
.nr-process-phase-card small{
  display:block;
  margin-bottom:10px;
  color:var(--nr-text-faint);
  font-size:9px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}
.nr-process-phase-card b{
  display:block;
  font-size:22px;
  line-height:1;
  letter-spacing:-.01em;
  color:var(--nr-text);
}
.nr-process-phase-card span{
  display:block;
  margin-top:8px;
  color:var(--nr-text-muted-alpha);
  font-size:11px;
  line-height:1.38;
  font-weight:700;
}
.nr-process-dial{
  position:relative;
  display:grid;
  place-items:center;
  aspect-ratio:1;
  margin:8px auto 28px;
  border:1px solid var(--nr-border-strong-ui);
  border-radius:50%;
  background:
    radial-gradient(circle at 50% 50%, rgba(194,106,97,.18) 0 5px, transparent 6px),
    conic-gradient(from 220deg, rgba(194,106,97,0), rgba(194,106,97,.72), rgba(215,154,118,.22), rgba(255,255,255,.05));
  transition:box-shadow .4s ease;
}
.nr-process-dial::after{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:50%;
  background:radial-gradient(circle at 50% 50%, rgba(194,106,97,.16), transparent 62%);
  filter:blur(10px);
  opacity:.5;
  pointer-events:none;
  z-index:0;
}
.nr-process-dial.is-hot{
  animation:nrDialPulse 2.4s ease-in-out infinite;
}
.nr-process-dial.is-hot::after{ opacity:.9; }
@keyframes nrDialPulse{
  0%, 100% { box-shadow:0 0 0 0 rgba(194,106,97,0); }
  50%      { box-shadow:0 0 0 10px rgba(194,106,97,.16); }
}
.nr-process-dial-inner{
  position:relative;
  z-index:1;
  display:grid;
  place-items:center;
  width:80%;
  aspect-ratio:1;
  border:1px solid var(--nr-border-faint);
  border-radius:50%;
  text-align:center;
  background:var(--nr-surface);
}
.nr-process-dial-inner b{
  display:block;
  font-size:36px;
  line-height:1;
  letter-spacing:-.02em;
  color:var(--nr-text);
}
.nr-process-dial-inner span{
  display:block;
  margin-top:6px;
  color:var(--nr-text-faint);
  font-size:9px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.16em;
}
.nr-process-control-grid{
  display:grid;
  gap:10px;
}
.nr-process-control-btn{
  height:42px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:0 12px;
  border:1px solid var(--nr-border-faint);
  border-radius:8px;
  background:var(--nr-surface-faint);
  color:var(--nr-text-muted-alpha);
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.16em;
}
.nr-process-control-btn b{
  color:var(--nr-text-soft-alpha);
}
.nr-process-control-btn.is-active{
  color:var(--nr-text);
  border-color:var(--nr-border-accent-ui);
  background:var(--nr-surface-accent);
}
@media (prefers-reduced-motion: reduce){
  .nr-process-scan{ animation:none; }
  .nr-process-dial.is-hot{ animation:none; }
  .nr-process-phase-card,
  .nr-process-meta{ transition:none; }
}
@media (max-width:1100px){
  .nr-process-cockpit__grid{ grid-template-columns:1fr; }
  .nr-process-side,
  .nr-process-control{
    border:0;
    border-bottom:1px solid var(--nr-border-faint);
  }
  .nr-process-control{ border-bottom:0; }
  .nr-process-side{
    display:grid;
    grid-template-columns:repeat(2, minmax(0,1fr));
    gap:22px;
  }
  .nr-process-block + .nr-process-block{ margin-top:0; }
  .nr-process-phase-cards{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .nr-process-control{
    display:grid;
    grid-template-columns:180px minmax(0,1fr);
    align-items:center;
    gap:20px;
  }
  .nr-process-control .nr-process-block-title{
    grid-column:1 / -1;
    margin-bottom:0;
  }
  .nr-process-dial{ width:180px; margin:0; }
}
@media (max-width:720px){
  .nr-process-cockpit__top{
    display:grid;
    padding:22px 18px;
  }
  .nr-process-cockpit h3{ font-size:28px; }
  .nr-process-meta-grid{
    width:100%;
    grid-template-columns:repeat(2, minmax(0,1fr));
  }
  .nr-process-side{
    grid-template-columns:1fr;
    padding:20px 18px;
  }
  .nr-process-chart-panel{ padding:20px 14px; }
  .nr-process-chart-stage{
    min-height:300px;
    overflow:hidden;
    padding-bottom:0;
  }
  .nr-process-chart-stage svg{
    width:100%;
    max-width:none;
    min-width:0;
    min-height:300px;
    height:300px;
  }
  .nr-process-chart-note{
    position:static;
    margin-bottom:10px;
  }
  .nr-process-readout{
    left:51%;
    top:50%;
    transform:translate(-50%, -50%) scale(.84);
    transform-origin:center;
  }
  .nr-process-axis-label,
  .nr-process-markers text,
  .nr-process-window-bracket text{
    font-size:11px;
  }
  .nr-process-phase-cards{ grid-template-columns:1fr; }
  .nr-process-control{
    display:block;
    padding:20px 18px;
  }
  .nr-process-dial{
    width:min(210px, 70vw);
    margin:12px auto 20px;
  }
}

/* === Process modules v2: vertical workflow + vertical timeline === */

@media (min-width: 1024px){

  /* Desktop: compact rail look (like technical strip) */

}

/* === NEW DESIGN: Work window + timeline (clean v3) === */
.nr-work-next,
.nr-time-next{
  border: 0;
  border-radius: 0;
  background: transparent;
  padding: 2px 0 0;
}
.nr-work-next__hint,
.nr-time-next__hint{
  margin-top: 2px;
  font-size: 10px;
  line-height: 1.2;
  letter-spacing: .03em;
  color: rgba(206,215,229,.62);
}
.nr-bento-module{
  border-radius: 24px;
}
.nr-bento-module--secondary{
  border-radius: 22px;
}
.nr-bento-module--summary{
  border-radius: 24px;
}
.nr-bento-chip{
  border:1px solid rgba(255,255,255,.12);
  background:rgba(18,23,33,.45);
  border-radius:10px;
}
.nr-workline__summary,
.nr-timeline-line__summary{
  margin-top: 8px;
  display: grid;
  grid-template-columns: repeat(var(--nr-summary-cols, 2), minmax(0,1fr));
  gap: 8px;
}
.nr-workline__summary-item,
.nr-timeline-line__summary-item{
  min-width: 0;
  padding: 8px 10px;
  border-left-width: 3px;
  border-left-color: rgba(255,255,255,.18);
}
.nr-workline__summary-item.is-mix{ border-left-color: rgba(255,255,255,.28); }
.nr-workline__summary-item.is-pour{ border-left-color: rgba(255,255,255,.50); }
.nr-workline__summary-item.is-adjust{ border-left-color: rgba(255,255,255,.72); }
.nr-workline__summary-item.is-gel{ border-left-color: rgba(255,255,255,.95); }
.nr-workline__summary-k,
.nr-timeline-line__summary-k{
  display: block;
  font-size: 10px;
  line-height: 1.1;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 800;
  color: rgba(226,235,247,.72);
}
.nr-workline__summary-v,
.nr-timeline-line__summary-v{
  display: block;
  margin-top: 3px;
  font-size: 13px;
  line-height: 1.1;
  font-weight: 900;
  color: rgba(246,249,255,.96);
}
.nr-workline__scroll,
.nr-timeline-line__scroll{
  margin-top: 10px;
  overflow-x: hidden;
  overflow-y: visible;
}
.nr-workline,
.nr-timeline-line{
  position: relative;
  width: 100%;
  min-width: 0;
  padding: 8px 8px 10px;
  box-sizing: border-box;
}
.nr-workline__track,
.nr-timeline-line__track{
  position: relative;
  height: 14px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.09);
  overflow: hidden;
}
.nr-workline__fill,
.nr-timeline-line__fill{
  position: absolute;
  inset: 0;
  border-radius: 999px;
}
.nr-workline__node,
.nr-timeline-line__node{
  position: absolute;
  top: 15px;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  text-align: center;
  min-width: 0;
  max-width: none;
}
.nr-workline__node.is-edge-start,
.nr-workline__node.is-edge-end,
.nr-timeline-line__node.is-edge-start,
.nr-timeline-line__node.is-edge-end{
  transform: translate(-50%, -50%);
  align-items: center;
  text-align: center;
}
.nr-workline__node::after,
.nr-workline__node.is-lane-top::after,
.nr-workline__node.is-edge-start::after,
.nr-workline__node.is-edge-end::after,
.nr-workline__node.is-lane-below::after,
.nr-timeline-line__node::after,
.nr-timeline-line__node.is-lane-top::after,
.nr-timeline-line__node.is-edge-start::after,
.nr-timeline-line__node.is-edge-end::after,
.nr-timeline-line__node.is-lane-below::after{
  display: none;
}
.nr-workline__badge,
.nr-workline__badge.is-compact,
.nr-workline__time,
.nr-workline__time.is-compact,
.nr-timeline-line__badge,
.nr-timeline-line__badge.is-compact,
.nr-timeline-line__time,
.nr-timeline-line__time.is-compact{
  display: none;
}
.nr-workline__dot,
.nr-timeline-line__dot{
  position: static;
  width: 14px;
  height: 14px;
  border-radius: 999px;
  background: rgba(255,255,255,.9);
  box-shadow: 0 0 0 1px rgba(8,12,20,.9);
}
.nr-workline__node.is-edge-start .nr-workline__dot,
.nr-workline__node.is-edge-end .nr-workline__dot,
.nr-timeline-line__node.is-edge-start .nr-timeline-line__dot,
.nr-timeline-line__node.is-edge-end .nr-timeline-line__dot{
  transform: none;
}
.nr-workline__node.is-lane-below .nr-workline__badge,
.nr-workline__node.is-lane-below .nr-workline__time,
.nr-timeline-line__node.is-lane-below .nr-timeline-line__badge,
.nr-timeline-line__node.is-lane-below .nr-timeline-line__time{
  display:none;
}
.nr-workline__node.is-mix .nr-workline__dot{ background:rgba(255,255,255,.28); box-shadow:0 0 0 1px rgba(8,12,20,.9); }
.nr-workline__node.is-pour .nr-workline__dot{ background:rgba(255,255,255,.52); box-shadow:0 0 0 1px rgba(8,12,20,.9); }
.nr-workline__node.is-adjust .nr-workline__dot{ background:rgba(255,255,255,.75); box-shadow:0 0 0 1px rgba(8,12,20,.9); }
.nr-workline__node.is-gel .nr-workline__dot{ background:rgba(255,255,255,.97); box-shadow:0 0 0 2px rgba(8,12,20,.9); }
.nr-timeline-line__summary-item.is-start{ border-left-color: rgba(255,255,255,.22); }
.nr-timeline-line__summary-item.is-peak{ border-left-color: rgba(255,255,255,.42); }
.nr-timeline-line__summary-item.is-gel{ border-left-color: rgba(255,255,255,.58); }
.nr-timeline-line__summary-item.is-pot{ border-left-color: rgba(255,255,255,.76); }
.nr-timeline-line__summary-item.is-demold{ border-left-color: rgba(255,255,255,.95); }
.nr-timeline-line__node.is-start .nr-timeline-line__dot{ background:rgba(255,255,255,.22); box-shadow:0 0 0 1px rgba(8,12,20,.9); }
.nr-timeline-line__node.is-peak .nr-timeline-line__dot{ background:rgba(255,255,255,.42); box-shadow:0 0 0 1px rgba(8,12,20,.9); }
.nr-timeline-line__node.is-gel .nr-timeline-line__dot{ background:rgba(255,255,255,.62); box-shadow:0 0 0 1px rgba(8,12,20,.9); }
.nr-timeline-line__node.is-pot .nr-timeline-line__dot{ background:rgba(255,255,255,.80); box-shadow:0 0 0 1px rgba(8,12,20,.9); }
.nr-timeline-line__node.is-demold .nr-timeline-line__dot{ background:rgba(255,255,255,.97); box-shadow:0 0 0 2px rgba(8,12,20,.9); }

.nr-rec-project-badges{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:0;
}

/* Wood edge input: optical centering and better fit */
.nr-wood-edge-label{
  align-items:center;
}
.nr-wood-edge-value{
  display:inline-flex;
  align-items:center;
  line-height:1;
  color: rgba(228,236,247,.72);
  font-size: 11px;
  letter-spacing: .02em;
}
.nr-wood-edge-input{
  height:36px;
  width:100%;
  text-align:center;
  line-height:36px;
  padding:0 34px 0 10px;
  border-radius: 10px;
  border: 1px solid rgba(148,163,184,.28);
  background: rgba(10,14,20,.65);
  color: #e5edf9;
  box-shadow: none;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .02em;
  padding-top:0;
  padding-bottom:0;
  appearance: auto;
  -webkit-appearance: auto;
  transition: border-color .14s ease, box-shadow .14s ease, background .14s ease;
}
.nr-wood-edge-input::-webkit-outer-spin-button,
.nr-wood-edge-input::-webkit-inner-spin-button{
  margin:0;
  opacity:.55;
  filter: invert(1) brightness(.92);
}
.nr-wood-edge-input:hover{
  border-color: rgba(157,174,197,.45);
  background: linear-gradient(180deg, rgba(10,14,20,.72), rgba(10,14,20,.58));
  box-shadow: 0 0 0 1px rgba(148,163,184,.08) inset;
}
.nr-wood-edge-input:focus,
.nr-wood-edge-input:focus-visible{
  outline: none;
  border-color: var(--nr-border-accent-strong);
  box-shadow:
    0 0 0 1px var(--nr-border-accent-ui),
    var(--nr-shadow-utility-lg);
  background: linear-gradient(180deg, rgba(10,14,20,.72), rgba(10,14,20,.58));
}
.nr-rec-error{
  margin-top:12px;
  padding:12px 16px;
  border-radius:12px;
  background:var(--nr-danger-soft);
  border:1px solid var(--nr-danger-brd);
  color:var(--nr-danger);
  font-size:12px;
  font-weight:600;
}

@media (max-width: 820px){
  .nr-work-next,
  .nr-time-next{
    padding:8px;
  }
  .nr-work-next__hint,
  .nr-time-next__hint{ font-size:10px; }
  .nr-workline,
  .nr-timeline-line{
    padding-left:4px;
    padding-right:4px;
  }
  .nr-workline__summary,
  .nr-timeline-line__summary{ gap:6px; }
  .nr-workline__summary-k,
  .nr-timeline-line__summary-k{ font-size:10px; }
  .nr-workline__summary-v,
  .nr-timeline-line__summary-v{ font-size:12px; }
}

/* ═══════════════════════════════════════
   TOOLBAR — unified button system
   (no mix-blend-mode conflicts)
   ═══════════════════════════════════════ */

/* Container: dark glassmorphism */
#nr-bento > div,
.nr-dynbento > div {
  background: linear-gradient(160deg, rgba(14,18,28,.88) 0%, rgba(9,12,20,.82) 100%);
  backdrop-filter: blur(20px) saturate(1.3);
  -webkit-backdrop-filter: blur(20px) saturate(1.3);
  border: 1px solid rgba(255,255,255,.16);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.10),
    inset 0 -1px 0 rgba(0,0,0,.12),
    0 12px 30px rgba(0,0,0,.30);
}

/* All toolbar buttons — visible, mix-blend-mode: normal */
#nr-bento button,
.nr-dynbento button {
  background: var(--nr-surface-chip-strong);
  border-color: var(--nr-border-emphasis);
  color: var(--nr-text-soft-alpha);
  mix-blend-mode: normal;
  backdrop-filter: none;
  text-shadow: none;
  -webkit-text-stroke: 0;
  box-shadow: inset 0 1px 0 var(--nr-border-faint);
  transition: background .18s ease, border-color .18s ease, transform .15s ease, box-shadow .18s ease;
}

#nr-bento button:hover,
.nr-dynbento button:hover {
  background: var(--nr-border-emphasis);
  border-color: var(--nr-border-emphasis-strong);
  box-shadow: inset 0 1px 0 var(--nr-border-strong-ui), var(--nr-shadow-dropdown);
}

#nr-bento button:active,
.nr-dynbento button:active {
  transform: translateY(1px);
  background: rgba(255,255,255,.10);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04);
  transition-duration: .06s;
}

#nr-bento button:focus-visible,
.nr-dynbento button:focus-visible {
  outline: none;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 0 0 2px rgba(122,233,211,.30);
}

/* Confirm buttons must stay green (override generic toolbar button skin) */
#nr-bento .nr-toolbar-btn.confirm,
.nr-dynbento .nr-toolbar-btn.confirm{
  background: var(--nr-surface-success-ui);
  border-color: var(--nr-success-brd);
  color: var(--nr-teal);
  box-shadow: inset 0 0 0 1px var(--nr-success-soft);
}
#nr-bento .nr-toolbar-btn.confirm:hover,
.nr-dynbento .nr-toolbar-btn.confirm:hover{
  background: rgba(92,226,164,.20);
  border-color: var(--nr-success);
  color: var(--nr-text-contrast);
}
#nr-bento .nr-toolbar-btn.confirm.is-done,
.nr-dynbento .nr-toolbar-btn.confirm.is-done{
  background: var(--nr-surface-success-ui);
  border-color: var(--nr-success);
  color: var(--nr-text-contrast);
  box-shadow: inset 0 0 0 1px var(--nr-success-brd), 0 0 0 2px var(--nr-success-soft), 0 0 16px var(--nr-surface-success-ui);
}

/* Hint label: always fully visible */
#nr-bento .nr-dyn-hint,
.nr-dynbento .nr-dyn-hint {
  mix-blend-mode: normal;
  color: var(--nr-text-contrast);
  text-shadow: none;
  -webkit-text-stroke: 0;
  flex-basis: auto;
  width: auto;
  max-width: min(980px, calc(100% - 40px));
  margin-left: auto;
  margin-right: auto;
  border: 1px solid var(--nr-info-brd);
  border-radius: 14px;
  background: linear-gradient(180deg, var(--nr-surface-info-strong), var(--nr-surface-info-ui));
  box-shadow:
    inset 0 0 0 1px var(--nr-info-brd),
    0 0 0 2px var(--nr-surface-info-ui),
    0 0 18px var(--nr-info-soft);
}

/* Segmented active state */
#nr-bento .nr-seg-btn.is-active,
.nr-dynbento .nr-seg-btn.is-active {
  background: rgba(255,255,255,.20);
  border-color: rgba(255,255,255,.40);
  color: var(--nr-text-contrast);
}
#nr-bento .nr-seg-btn:not(.is-active),
.nr-dynbento .nr-seg-btn:not(.is-active) {
  color: var(--nr-text-soft-alpha);
}

/* Dynamic shell: transparent bg, no border */
.nr-dynbento .nr-dyn-shell {
  background: transparent;
  border: 0;
  box-shadow: none;
}

/* ── Toolbar separator ─────────────────── */
/* Thin vertical line between logical button groups (main menu only) */
.nr-toolbar-sep {
  width: 1px;
  min-height: 20px;
  align-self: stretch;
  background: rgba(255,255,255,.13);
  margin: 0 3px;
  flex-shrink: 0;
  border-radius: 1px;
}

/* GOTOWE: subtle left gap to visually separate from tool buttons above */
.nr-pro-row2-done,
.nr-poly-row2-done {
  margin-left: 4px;
}

/* ── Main menu: flow vs utils ──────────── */
/* OBRÓT gets a subtle separator before it (FORMA/DREWNO | OBRÓT/RESET) */
#nr-bento .nr-main-menu-btn--rotate {
  margin-left: 6px;
  position: relative;
}
#nr-bento .nr-main-menu-btn--rotate::before {
  content: '';
  position: absolute;
  left: -5px;
  top: 18%;
  height: 64%;
  width: 1px;
  background: rgba(255,255,255,.18);
  pointer-events: none;
}

/* Utils (OBRÓT, RESET): slightly lower opacity to signal secondary role */
#nr-bento .nr-main-menu-btn--rotate,
#nr-bento .nr-main-menu-btn--reset {
  opacity: .72;
}
#nr-bento .nr-main-menu-btn--rotate:hover,
#nr-bento .nr-main-menu-btn--reset:hover {
  opacity: 1;
}

/* Wood submenu: keep complete rows */
.nr-dyn-shell .nr-mode-grid.nr-mode-grid--wood {
  grid-template-columns: repeat(6, minmax(0, 1fr));
}
.nr-dyn-shell .nr-mode-grid.nr-mode-grid--wood > button {
  grid-column: span 2;
}
.nr-dyn-shell .nr-mode-grid.nr-mode-grid--wood > .nr-wood-ai-validator,
.nr-dyn-shell .nr-mode-grid.nr-mode-grid--wood > .nr-wood-ai-correction {
  grid-column: span 3;
}

/* Remove global bottom fade while dynamic toolbar is open */
#nr-scroll-root:has(.nr-dynbento)::after {
  display: none;
}

/* ═══════════════════════════════════════
   WOOD SPECIES MODULE — monochrome
   ═══════════════════════════════════════ */
.nr-layout-wood{
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background-image:
    linear-gradient(180deg, rgba(31,32,35,.94), rgba(23,24,26,.96)),
    repeating-linear-gradient(8deg,
      rgba(194,106,97,.08) 0 2px,
      transparent 2px 20px),
    repeating-linear-gradient(-14deg,
      rgba(126,196,184,.055) 0 1px,
      transparent 1px 16px);
  background-blend-mode: normal, screen, screen;
}
.nr-layout-wood .nr-wood-grain-layer{
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  border-radius:inherit;
  opacity:.58;
  background:
    linear-gradient(180deg, rgba(17,18,20,.42), rgba(14,14,16,.50)),
    url('./wood-grain-lines.svg');
  background-size:cover, cover;
  background-position:center, center;
  background-repeat:no-repeat, no-repeat;
  filter: contrast(1.16) saturate(1.08) brightness(1.08);
  mix-blend-mode:normal;
}
.nr-layout-wood > :not(.nr-wood-grain-layer){
  position:relative;
  z-index:2;
}
/* hard override against generic "flat" reset layers */
#nr-bento .nr-layout-wood .nr-wood-grain-layer{
  display:block;
  background:
    linear-gradient(180deg, rgba(17,18,20,.42), rgba(14,14,16,.50)),
    url('./wood-grain-lines.svg');
  background-size:cover, cover;
  background-position:center, center;
  background-repeat:no-repeat, no-repeat;
  opacity:.58;
}
.nr-layout-wood::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:2;
  opacity:.92;
  background:
    repeating-radial-gradient(170% 120% at -18% 26%,
      rgba(194,106,97,.12) 0 2px,
      transparent 2px 18px),
    repeating-radial-gradient(150% 110% at 116% 74%,
      rgba(126,196,184,.08) 0 1px,
      transparent 1px 14px);
  background-size: auto, auto;
  mix-blend-mode: overlay;
  filter: contrast(1.12) saturate(1.08);
  transform: translateZ(0);
}
.nr-layout-wood > *{
  position: relative;
  z-index:3;
}
@media (max-width: 820px){
  .nr-layout-wood::before{
    opacity:.78;
  }
}

/* Scrollable species grid */
.nr-wood-scroll{
  scrollbar-width: thin;
  scrollbar-color: rgba(255,255,255,.10) transparent;
}
.nr-wood-scroll::-webkit-scrollbar{ width: 4px; }
.nr-wood-scroll::-webkit-scrollbar-track{ background: transparent; }
.nr-wood-scroll::-webkit-scrollbar-thumb{
  background: rgba(255,255,255,.10);
  border-radius: 99px;
}
.nr-wood-scroll::-webkit-scrollbar-thumb:hover{
  background: rgba(255,255,255,.18);
}

/* Fade bottom of scroll list */
.nr-layout-wood .nr-wood-scroll-wrap{
  position: relative;
}
.nr-layout-wood .nr-wood-scroll-wrap::after{
  content: "";
  position: absolute;
  left: 0; right: 0; bottom: 0;
  height: 32px;
  background: linear-gradient(to bottom, transparent, var(--nr-bg-deep));
  pointer-events: none;
  z-index: 1;
}

/* ── flow strip (zacznij projekt) ── */
.nr-empty-kicker-wrap{
  text-align:center;
  margin-bottom:22px;
}
.nr-empty-kicker,
.nr-ghost-btn,
.nr-step{
  text-transform: uppercase;
}
.nr-empty-row,
.nr-steps-bar,
.nr-dropzone-icon,
.nr-ghost-btn,
.nr-step{
  display:flex;
  align-items:center;
  justify-content:center;
}
.nr-empty-kicker{
  display:inline-flex;
  align-items:center;
  gap:7px;
  background: var(--nr-surface-soft);
  border: 1px solid var(--nr-border-mid);
  border-radius:999px;
  padding:5px 14px 5px 10px;
  font-size:10px;
  font-weight:800;
  letter-spacing:.2em;
  color: var(--nr-text-dim);
}
.nr-empty-kicker-dot{
  width:5px; height:5px;
  border-radius:50%;
  background:var(--nr-accent-soft);
  flex-shrink:0;
  box-shadow:0 0 7px var(--nr-border-accent-strong);
  animation:nr-dot-pulse 2.4s ease-in-out infinite;
}
@keyframes nr-dot-pulse{
  0%,100%{ opacity:1; box-shadow:0 0 7px var(--nr-border-accent-strong); }
  50%{ opacity:.55; box-shadow:0 0 3px var(--nr-border-accent-ui); }
}

/* ── Dropzone — hero upload area ── */
.nr-dropzone{
  display:flex;
  flex-direction:column;
  gap:10px;
  width:100%;
  max-width:480px;
  margin:0 auto 14px;
  min-height:148px;
  padding:28px 24px;
  border:1.5px dashed var(--nr-border-strong-ui);
  border-radius:20px;
  background:var(--nr-surface-faint);
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease;
}
.nr-dropzone:hover{
  border-color:var(--nr-border-accent-ui);
  background:var(--nr-surface-soft-strong);
}
.nr-dropzone:hover .nr-dropzone-icon{
  background:var(--nr-surface-chip-strong);
  color:var(--nr-text-subtle-strong);
}
.nr-dropzone-icon{
  width:52px; height:52px;
  border-radius:14px;
  background:var(--nr-surface-strong);
  color:var(--nr-text-dim);
  transition:background .2s ease, color .2s ease;
}
.nr-dropzone-title{
  font-size:14px;
  font-weight:800;
  letter-spacing:.08em;
  color:var(--nr-text-soft-alpha);
  line-height:1;
}
.nr-dropzone-sub{
  font-size:12px;
  color:var(--nr-text-dim);
  font-weight:500;
  letter-spacing:.01em;
}

/* ── Ghost buttons row ── */
.nr-empty-row{
  gap:8px;
  margin:0 auto 26px;
}
.nr-ghost-btn{
  height:30px;
  padding:0 12px;
  border-radius:8px;
  border:1px solid var(--nr-border-soft-plus);
  background:transparent;
  color:var(--nr-text-dim);
  font-size:11px;
  font-weight:700;
  letter-spacing:.07em;
  display:inline-flex;
  gap:5px;
  cursor:pointer;
  transition:background .18s, border-color .18s, color .18s;
}
.nr-ghost-btn:hover{
  background:var(--nr-surface-strong);
  border-color:var(--nr-border-strong);
  color:var(--nr-text-subtle-strong);
}
.nr-ghost-btn--dim{
  color:var(--nr-text-faint);
  border-color:var(--nr-border-faint);
}
.nr-ghost-btn--dim:hover{
  color:var(--nr-text-subtle);
  border-color:var(--nr-border-strong-ui);
}
.nr-empty-sep{
  color:var(--nr-border-strong);
  font-size:16px;
  line-height:1;
  user-select:none;
}

/* ── Steps bar (lightweight inline) ── */
.nr-steps-bar{
  gap:0;
  margin:0 auto 0;
  flex-wrap:wrap;
  row-gap:6px;
}
.nr-step{
  display:inline-flex;
  gap:7px;
  font-size:12px;
  font-weight:700;
  letter-spacing:.06em;
  color:var(--nr-text-dim);
  white-space:nowrap;
  padding:4px 2px;
}
.nr-step.is-active{
  color:var(--nr-accent-soft);
}
.nr-step-arr{
  display:inline-block;
  width:24px;
  text-align:center;
  font-size:11px;
  color:var(--nr-text-faint);
  flex-shrink:0;
}
.nr-step-arr::after{ content:"→"; }

.nr-flow-strip {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
  max-width: 440px;
  margin: 0 auto;
}
@media (min-width: 600px) {
  .nr-flow-strip {
    grid-template-columns: 1fr 14px 1fr 14px 1fr 14px 1fr;
    max-width: 100%;
  }
}
.nr-flow-arrow {
  display: none;
  color: var(--nr-text-faint);
  font-size: 13px;
  font-weight: 900;
}
@media (min-width: 600px) {
  .nr-flow-arrow { display: flex; }
}
.nr-flow-step {
  background: linear-gradient(160deg, var(--nr-surface-alt), var(--nr-bg-2));
  border: 1px solid var(--nr-border-mid);
  border-radius: 13px;
  padding: 12px 13px 11px;
  box-shadow: 0 4px 20px rgba(0,0,0,.55), inset 0 1px 0 var(--nr-border-faint);
  text-align: left;
}
.nr-flow-step--active {
  border-color: var(--nr-border-accent-ui);
}

/* ── summary bar 7-card grid (responsive) ── */
.nr-sum-bar {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
}
@media (max-width: 1100px) {
  .nr-sum-bar {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .nr-sum-bar {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ── Gatunek Drewna row: mobile = vertical stack, desktop = single row ── */
.nr-wood-row {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.nr-wood-row > * {
  min-width: 0;
}
@media (min-width: 640px) {
  .nr-wood-row {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-end;
  }
  .nr-wood-row > * {
    flex: 1 1 0%;
  }
}

/* ── Dot-grid charts row (3 panels) ── */
.nr-petal-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
@media (max-width: 680px) {
  .nr-petal-row { grid-template-columns: 1fr; }
}
.nr-petal-wrap {
  display: flex;
  flex-direction: column;
  padding: 10px 16px 14px;
  border-right: 1px solid rgba(255,255,255,.07);
  min-width: 0;
}
.nr-petal-wrap:last-child { border-right: none; }
@media (max-width: 680px) {
  .nr-petal-wrap { border-right: none; border-bottom: 1px solid rgba(255,255,255,.07); }
  .nr-petal-wrap:last-child { border-bottom: none; }
}
.nr-petal-header {
  margin-bottom: 10px;
}
.nr-petal-title {
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255,255,255,.38);
  margin-bottom: 2px;
}
.nr-petal-sub {
  font-size: 9px;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: rgba(255,255,255,.20);
}

/* ===========================
   Dark Theme readability tune (subtle)
   Scope: calculator panels/cards only
   =========================== */

/* ===========================
   DropZone component (dz-*)
   =========================== */
/* ── DropZone bento ── */
.dz-root {
  background: transparent;
  border-radius: 0;
  border: 0;
  padding: 0;
  font-family: 'Sora', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}
.dz-inner {
  display: flex;
  min-height: 420px;
  width: 100%;
  border-radius: 0;
  overflow: hidden;
}

/* Left animated side */
.dz-brand {
  width: 44%;
  flex-shrink: 0;
  background: transparent;
  position: relative;
  overflow: visible;
  border-radius: 0;
}
.dz-shape { position: absolute; }
.s-purple {
  width: 130px; height: 158px; background: #7C3AED;
  border-radius: 16px; top: 48px; left: 50px;
  box-shadow: 0 10px 28px rgba(124,58,237,.32);
  animation: dz-bob0 6s ease-in-out infinite;
}
.s-orange {
  width: 158px; height: 79px; background: #EA580C;
  border-radius: 158px 158px 0 0; top: 64px; right: 52px;
  box-shadow: 0 8px 20px rgba(234,88,12,.28);
  animation: dz-bob1 6s 1s ease-in-out infinite;
}
.s-yellow {
  width: 138px; height: 138px; background: #CA8A04;
  border-radius: 50%; bottom: 48px; left: 48px;
  box-shadow: 0 8px 20px rgba(202,138,4,.26);
  animation: dz-bob2 6s .5s ease-in-out infinite;
}
.s-dark {
  width: 132px; height: 156px; background: #1e2028;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 16px; bottom: 40px; right: 54px;
  box-shadow: 0 12px 28px rgba(0,0,0,.5);
  animation: dz-bob3 6s 1.8s ease-in-out infinite;
}
@keyframes dz-bob0 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-11px)} }
@keyframes dz-bob1 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-13px)} }
@keyframes dz-bob2 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-9px)} }
@keyframes dz-bob3 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }

/* Shape faces */
.dz-face { position: absolute; width: 100%; }
.dz-eyes { display: flex; justify-content: center; }
.s-purple .dz-eyes { padding-top: 48px; gap: 18px; }
.s-orange .dz-eyes { padding-top: 20px; gap: 20px; }
.s-yellow .dz-eyes { padding-top: 40px; gap: 18px; }
.s-dark   .dz-eyes { padding-top: 48px; gap: 20px; }
.dz-eye { width: 10px; height: 10px; border-radius: 50%; background: rgba(255,255,255,.88); }
.s-yellow .dz-eye { background: rgba(0,0,0,.6); }
.dz-mouth { width: 26px; height: 11px; border-bottom: 2px solid rgba(255,255,255,.7); border-radius: 0 0 20px 20px; margin: 8px auto 0; }
.s-yellow .dz-mouth { border-color: rgba(0,0,0,.5); }
.s-dark .dz-mouth { border-bottom: none; border-top: 2px solid rgba(255,255,255,.35); border-radius: 20px 20px 0 0; margin-top: 7px; }

/* Right panel */
.dz-right {
  flex: 1;
  min-width: 0;
  background: transparent;
  border-left: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 32px 28px 24px;
}
.dz-section-title {
  font-family: 'Syne', sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  color: rgba(255,255,255,.90);
  letter-spacing: -0.01em;
  line-height: 1.15;
  margin-bottom: 3px;
}
.dz-section-sub {
  font-size: 12px;
  color: rgba(255,255,255,.35);
  margin-bottom: 14px;
  line-height: 1.5;
}

/* Drop area */
.dz-area {
  border: 1.5px dashed rgba(255,255,255,.12);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
  cursor: pointer;
  padding: 22px 16px;
  transition: border-color .18s, background .18s;
  background: rgba(255,255,255,.025);
  position: relative;
  overflow: hidden;
  margin-bottom: 16px;
  min-height: 120px;
}
.dz-area:hover, .dz-area.dz-dragover {
  border-color: rgba(255,255,255,.28);
  background: rgba(255,255,255,.045);
}
.dz-area.dz-has-file {
  border-style: solid;
  border-color: rgba(255,255,255,.08);
  padding: 0;
  cursor: default;
}
.dz-area.dz-has-file .dz-upload-icon,
.dz-area.dz-has-file .dz-area-hint { display: none; }
.dz-upload-icon {
  width: 34px; height: 34px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
}
.dz-area-hint { font-size: 11.5px; color: rgba(255,255,255,.32); text-align: center; line-height: 1.5; }
.dz-area-hint b { color: rgba(255,255,255,.65); font-weight: 700; }
.dz-preview-img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: none;
  position: absolute;
  inset: 0;
  border-radius: 9px;
}
.dz-area.dz-has-file .dz-preview-img { display: block; }
.dz-remove-btn {
  display: none;
  position: absolute;
  top: 7px; right: 7px;
  background: var(--nr-surface-overlay);
  color: var(--nr-text-soft-alpha);
  border: 1px solid var(--nr-border-strong-ui);
  border-radius: 5px;
  font-size: 10px; font-weight: 700;
  padding: 3px 8px;
  cursor: pointer;
  font-family: 'Sora', sans-serif;
}
.dz-area.dz-has-file .dz-remove-btn { display: block; }

/* Divider (refined) */
.dz-divider-row {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 12px 0 10px;
  background: transparent;
  border: 0;
  box-shadow: none;
  padding: 0;
}
.dz-divider-text {
  font-family: 'Syne', sans-serif;
  font-size: 1.35rem;
  font-weight: 800;
  letter-spacing: -0.01em;
  line-height: 1.15;
  text-transform: none;
  color: rgba(255,255,255,.90);
  padding: 0;
  border: 0;
  background: transparent;
  white-space: nowrap;
}
.dz-no-photo-sub {
  font-family: 'Sora', system-ui, sans-serif;
  font-size: 12.5px;
  font-weight: 500;
  color: rgba(224,231,244,.64);
  margin-bottom: 12px;
  line-height: 1.55;
}

/* Alt buttons */
.dz-alt-btns { display: flex; gap: 7px; }
.dz-btn {
  flex: 1;
  min-width: 0;
  padding: 10px 8px;
  border-radius: 8px;
  font-family: 'Sora', sans-serif;
  font-size: 11.5px; font-weight: 700;
  cursor: pointer; transition: all .15s;
  letter-spacing: .03em;
  display: flex; align-items: center; justify-content: center; gap: 5px;
  border: none;
}
.dz-btn-primary { background: rgba(255,255,255,.90); color: #0e0f12; }
.dz-btn-primary:hover { background: #fff; }
.dz-btn-primary:disabled { opacity: .45; cursor: default; }
.dz-btn-ghost {
  background: transparent;
  color: rgba(255,255,255,.58);
  border: 1.5px solid rgba(255,255,255,.12);
}
.dz-btn-ghost:hover {
  border-color: rgba(255,255,255,.28);
  color: rgba(255,255,255,.85);
  background: rgba(255,255,255,.04);
}

/* Step bar */
.dz-step-bar {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,.05);
}
.dz-step {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: rgba(255,255,255,.22);
  padding: 0 14px;
}
.dz-step.is-active { color: var(--nr-accent); }
.dz-step-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--nr-border-emphasis); flex-shrink: 0; }
.dz-step.is-active .dz-step-dot { background: var(--nr-accent); }
.dz-step-arrow { font-size: 9px; color: rgba(255,255,255,.12); margin: 0 2px; }

.nr-simple-shape-overlay{
  position: fixed;
  inset: 0;
  z-index: var(--nr-z-modal-top);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px;
  background: rgba(4,6,10,.62);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.nr-simple-shape-modal{
  width: min(1180px, calc(100vw - 24px));
  max-height: calc(100vh - 28px);
  overflow: auto;
  position: relative;
  z-index: 1;
}
.nr-simple-shape-close{
  width: 34px;
  height: 34px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.07);
  color: rgba(255,255,255,.9);
  font-weight: 900;
  font-size: 15px;
  line-height: 1;
  cursor: pointer;
}
.nr-simple-shape-close:hover{
  background: rgba(255,255,255,.12);
  border-color: rgba(255,255,255,.24);
}

@media (max-width: 640px) {
  .dz-root { padding: 0; border-radius: 0; }
  .dz-inner { flex-direction: column; min-height: auto; }
  .dz-brand { display: none; }
  .dz-right { border-left: none; border-radius: 0; padding: 24px 20px 20px; }
  .nr-simple-shape-overlay{
    padding: max(10px, env(safe-area-inset-top, 0px) + 10px) 10px max(10px, env(safe-area-inset-bottom, 0px) + 10px);
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }
  .nr-simple-shape-modal{
    margin-top: 0;
    width: min(100%, calc(100vw - 20px));
    max-height: min(560px, calc(100dvh - 24px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)));
    overflow: auto;
  }
}

/* Mobile peek-cards: rekomendacje żywic + wykończeń */
@media (max-width: 820px) {
  .nr-rec-section.nr-ui-rec .nr-rec-results{
    position: relative;
  }
  .nr-rec-section.nr-ui-rec .nr-rec-results::after{
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    width: 56px;
    background: linear-gradient(to right, rgba(5,8,14,0), rgba(5,8,14,.96));
    pointer-events: none;
    z-index: 3;
    border-radius: 0 16px 16px 0;
  }
  .nr-rec-section.nr-ui-rec .nr-rec-podium{
    display: flex;
    grid-template-columns: none;
    gap: 10px;
    overflow-x: auto;
    overflow-y: visible;
    padding: 2px 54px 8px 2px;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .nr-rec-section.nr-ui-rec .nr-rec-podium::-webkit-scrollbar{
    display: none;
  }
  .nr-rec-section.nr-ui-rec .nr-rec-podium .nr-finish-col,
  .nr-rec-section.nr-ui-rec .nr-rec-podium > .nr-rec-card{
    flex: 0 0 86%;
    min-width: 86%;
    scroll-snap-align: start;
  }
  .nr-rec-section.nr-ui-rec .nr-rec-podium .nr-finish-col .nr-rec-card{
    height: 100%;
  }
}
/* === NR APP CORE CSS: END === */

:root {
  color-scheme: dark;

  /* Brand / theme */
  --nr-brand-accent: #c26a61;
  --nr-brand-accent-strong: #d4847c;
  --nr-brand-accent-soft: #d68a7f;
  --nr-brand-accent-dim: rgba(194, 106, 97, 0.14);
  --nr-brand-teal: #7ec4b8;
  --nr-brand-teal-strong: #5da89c;
  --nr-brand-teal-dim: rgba(126, 196, 184, 0.15);
  --nr-brand-gold: #c7a977;
  --nr-brand-amber: #f59e0b;
  --nr-brand-green: #4ade80;
  --nr-brand-success: #3ddc84;
  --nr-brand-danger: #d07a72;
  --nr-brand-offline: #e05c5c;
  --nr-brand-warning: #e0a050;
  --nr-brand-purple: #7c5cbf;
  --nr-accent: var(--nr-brand-accent);
  --nr-accent-soft: var(--nr-brand-accent-soft);
  --nr-accent-dim: var(--nr-brand-accent-dim);
  --nr-teal: var(--nr-brand-teal);
  --nr-gold: var(--nr-brand-gold);
  --nr-success: var(--nr-brand-success);
  --nr-warning: var(--nr-brand-warning);
  --nr-danger: var(--nr-brand-danger);

  /* Surfaces */
  --nr-bg: #171719;
  --nr-bg-2: #1b1c1f;
  --nr-bg-3: #202124;
  --nr-bg-deep: #111214;
  --nr-bg-strong: #0f1012;
  --nr-surface: #1d1e21;
  --nr-surface-2: #232427;
  --nr-surface-3: #292a2e;
  --nr-surface-alt: #202124;
  --nr-surface-elevated: #2a2b2f;
  --nr-surface-card: rgba(255, 255, 255, 0.045);
  --nr-surface-card-strong: #121214;
  --nr-surface-soft: rgba(255, 255, 255, 0.035);
  --nr-surface-strong: rgba(255, 255, 255, 0.06);

  /* Text */
  --nr-text: #f3f2ef;
  --nr-text-soft: #d2d0ca;
  --nr-text-mid: #9698a1;
  --nr-muted: #9a9aa0;
  --nr-text-dim: rgba(255, 255, 255, 0.42);
  --nr-text-faint: rgba(255, 255, 255, 0.22);
  --nr-text-hi: #d4d4d4;
  --nr-text-mid-alt: #888;
  --nr-text-lo: #555;

  /* Borders / effects */
  --nr-border: rgba(255, 255, 255, 0.12);
  --nr-border-soft: rgba(255, 255, 255, 0.06);
  --nr-border-strong: rgba(255, 255, 255, 0.18);
  --nr-line: #2a2a2d;
  --nr-shadow: 0 30px 80px rgba(0, 0, 0, 0.42);
  --nr-shadow-soft: 0 18px 42px rgba(0, 0, 0, 0.18);

  /* Paper */
  --nr-paper: #ffffff;
  --nr-paper-ink: #141414;
  --nr-paper-line: rgba(16, 18, 24, 0.12);

  /* Radius / layout */
  --nr-radius-xl: 28px;
  --nr-radius-lg: 20px;
  --nr-radius-md: 14px;
  --nr-radius-sm: 10px;
  --nr-shell-max: 1520px;
  --nr-col: min(700px, 90vw);
  --nr-sidebar-w: 560px;
  --nr-gap-1: 8px;
  --nr-gap-2: 12px;
  --nr-gap-3: 16px;
  --nr-gap-4: 24px;
  --nr-gap-5: 32px;
  --nr-gap-6: 48px;

  /* Fonts */
  --nr-font-sans: "Sora", "Inter", system-ui, sans-serif;
  --nr-font-ui: "Inter", system-ui, sans-serif;
  --nr-font-mono: "Syne Mono", monospace;
  --nr-font-serif: "Instrument Serif", "DM Serif Display", Georgia, serif;

  /* Legacy aliases */
  --bg: var(--nr-bg);
  --bg-deep: var(--nr-bg-deep);
  --bg-2: var(--nr-bg-2);
  --bg-3: var(--nr-bg-3);
  --bg-strong: var(--nr-bg-strong);
  --surface: var(--nr-surface);
  --surface2: var(--nr-surface-2);
  --surface-alt: var(--nr-surface-alt);
  --surface-elevated: var(--nr-surface-elevated);
  --surface-2: var(--nr-surface-2);
  --surface-3: var(--nr-surface-3);
  --card: var(--nr-surface-card);
  --border: var(--nr-border);
  --border2: var(--nr-border-strong);
  --border-strong: var(--nr-border-strong);
  --border-soft: var(--nr-border-soft);
  --line: var(--nr-line);
  --text: var(--nr-text);
  --text-soft: var(--nr-text-soft);
  --text-hi: var(--nr-text-hi);
  --text-mid: var(--nr-text-mid-alt);
  --text-lo: var(--nr-text-lo);
  --text-muted: var(--nr-text-subtle-strong);
  --text-dim: var(--nr-text-subtle);
  --text2: var(--nr-text-soft);
  --muted: var(--nr-text-mid);
  --mid: var(--nr-text-mid);
  --dim: var(--nr-text-dim);
  --faint: var(--nr-text-faint);
  --accent: var(--nr-brand-accent);
  --accent2: var(--nr-brand-accent-strong);
  --accent-soft: var(--nr-brand-accent-soft);
  --accent-dim: var(--nr-brand-accent-dim);
  --coral: var(--nr-brand-accent);
  --coral-dim: var(--nr-brand-accent-dim);
  --red: var(--nr-brand-accent);
  --red-dim: var(--nr-brand-accent-dim);
  --teal: var(--nr-brand-teal);
  --teal2: var(--nr-brand-teal-strong);
  --teal-dim: var(--nr-brand-teal-dim);
  --gold: var(--nr-brand-gold);
  --amber: var(--nr-brand-amber);
  --green: var(--nr-brand-green);
  --purple: var(--nr-brand-purple);
  --online: var(--nr-brand-success);
  --offline: var(--nr-brand-offline);
  --warn: var(--nr-brand-warning);
  --paper: var(--nr-paper);
  --paper-ink: var(--nr-paper-ink);
  --paper-line: var(--nr-paper-line);
  --paper-border: var(--nr-paper-border-ui);
  --paper-copy: var(--nr-paper-text-soft);
  --paper-muted: var(--nr-paper-text-dim);
  --shadow: var(--nr-shadow);
  --radius-xl: var(--nr-radius-xl);
  --radius-lg: var(--nr-radius-lg);
  --radius-md: var(--nr-radius-md);
  --sidebar-w: var(--nr-sidebar-w);
  --col: var(--nr-col);
  --sans: var(--nr-font-sans);
  --mono: var(--nr-font-mono);
  --serif: var(--nr-font-serif);
}

body.nr-contract-page {
  --nr-sidebar-w: 520px;
  --sidebar-w: 520px;
}

html.nr-booting #hero-main-header,
html.nr-booting #hero-nav-overlay,
html.nr-booting #hero-top,
html.nr-booting #root,
html.nr-booting #nr-modal-root {
  visibility: hidden;
}

body.nr-home-page {
  overflow-x: hidden;
}

body.nr-home-page #nr-initial-loader {
  position: fixed;
  inset: 0;
  z-index: 12000;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 18px;
  padding: clamp(22px, 3vw, 34px);
  background: var(--nr-gradient-loader);
  color: var(--nr-text);
  text-align: center;
  overflow: hidden;
}

body.nr-home-page #nrl-title {
  position: relative;
  z-index: 2;
  margin-top: clamp(18px, 2vw, 28px);
}

body.nr-home-page .nrl-big {
  margin: 0;
  color: var(--nr-text-strong-alpha);
  font-family: "Sora", "Inter", system-ui, sans-serif;
  font-size: clamp(2.2rem, 6vw, 5.4rem);
  font-weight: 800;
  line-height: 0.92;
  letter-spacing: -0.065em;
}

body.nr-home-page .nrl-sub {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 10px;
  color: var(--nr-text-muted-alpha);
  font-family: "Syne Mono", monospace;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.34em;
  text-transform: uppercase;
}

body.nr-home-page .nrl-sub::before,
body.nr-home-page .nrl-sub::after {
  content: "";
  width: 54px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.18), transparent);
}

body.nr-home-page #nrl-checklist {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 16px;
  margin-top: 8px;
  padding: 12px 18px;
  border: 1px solid var(--nr-border-soft-plus);
  border-radius: 999px;
  background: var(--nr-surface-overlay-soft);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.24);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}

body.nr-home-page .nrl-item {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: rgba(238, 236, 232, 0.86);
  font-family: "Inter", system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 600;
  white-space: nowrap;
}

body.nr-home-page .nrl-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.05);
}

body.nr-home-page .nrl-dot,
body.nr-home-page .nrl-check,
body.nr-home-page .nrl-x {
  position: absolute;
}

body.nr-home-page .nrl-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.72);
}

body.nr-home-page .nrl-check,
body.nr-home-page .nrl-x {
  opacity: 0;
}

body.nr-home-page .nrl-spin {
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, 0.14);
  border-top-color: rgba(255, 255, 255, 0.72);
  border-radius: 999px;
  animation: nrLoaderSpin 1s linear infinite;
  opacity: 0;
}

body.nr-home-page .nrl-sep {
  width: 1px;
  height: 22px;
  background: rgba(255, 255, 255, 0.08);
}

body.nr-home-page .nrl-item.active .nrl-spin {
  opacity: 1;
}

body.nr-home-page .nrl-item.active .nrl-dot {
  opacity: 0;
}

body.nr-home-page .nrl-item.done .nrl-check {
  opacity: 1;
}

body.nr-home-page .nrl-item.done .nrl-dot,
body.nr-home-page .nrl-item.done .nrl-spin {
  opacity: 0;
}

body.nr-home-page .nrl-item.fail .nrl-x {
  opacity: 1;
  font-size: 11px;
  line-height: 1;
}

body.nr-home-page .nrl-item.fail .nrl-dot,
body.nr-home-page .nrl-item.fail .nrl-spin {
  opacity: 0;
}

body.nr-home-page #nrl-blob {
  position: absolute;
  left: 50%;
  bottom: -4vw;
  z-index: 1;
  width: min(1380px, 118vw);
  transform: translateX(-50%);
  pointer-events: none;
}

body.nr-home-page #nrl-blob svg {
  width: 100%;
  height: auto;
  display: block;
}

@keyframes nrLoaderSpin {
  to { transform: rotate(360deg); }
}

@media (max-width: 900px) {
  body.nr-home-page #nrl-checklist {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    min-width: min(320px, calc(100vw - 32px));
    border-radius: 22px;
  }

  body.nr-home-page .nrl-sep {
    width: 100%;
    height: 1px;
  }

  body.nr-home-page .nrl-item {
    justify-content: center;
  }

  body.nr-home-page #nrl-blob {
    width: min(980px, 180vw);
    bottom: -10vw;
  }
}

:is(body.nr-resins-page, body.nr-lacquers-page) .skip-to-main {
  position: absolute;
  left: 18px;
  top: 14px;
  z-index: 30;
  color: rgba(255, 255, 255, 0.68);
  font-size: 0.82rem;
  text-decoration: none;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .skip-to-main:focus-visible {
  outline: 2px solid rgba(194, 106, 97, 0.65);
  outline-offset: 4px;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .container {
  width: min(1480px, calc(100% - 48px));
  margin: 0 auto;
  padding: 132px 0 88px;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .page-header {
  display: grid;
  justify-items: center;
  gap: 18px;
  margin-bottom: 44px;
  text-align: center;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .page-back {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1px solid var(--nr-border-strong-ui);
  background: var(--nr-surface-control-idle);
  color: var(--nr-text-subtle-strong);
  font-family: "Syne Mono", monospace;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-decoration: none;
  transition: border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .page-back:hover {
  border-color: var(--nr-border-emphasis);
  background: var(--nr-surface-hover);
  color: var(--nr-text);
  text-decoration: none;
  transform: translateY(-1px);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .page-tag {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  color: rgba(228, 225, 219, 0.72);
  font-family: "Syne Mono", monospace;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.3em;
  text-transform: uppercase;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .page-tag-line {
  width: 56px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.16), transparent);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .page-title {
  margin: 0;
  color: rgba(244, 242, 238, 0.96);
  font-family: "Sora", "Inter", system-ui, sans-serif;
  font-size: clamp(2.8rem, 6vw, 5rem);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.06em;
  text-wrap: balance;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .page-sub {
  margin: 0;
  max-width: 72ch;
  color: rgba(228, 225, 219, 0.68);
  font-size: clamp(1rem, 1.8vw, 1.28rem);
  line-height: 1.7;
  text-wrap: balance;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .coral {
  color: var(--nr-brand-accent-soft);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .table-wrap {
  overflow-x: auto;
  border: 1px solid var(--nr-page-panel-border);
  border-radius: 26px;
  background: var(--nr-page-panel-bg);
  box-shadow: var(--nr-page-panel-shadow);
}

:is(body.nr-resins-page, body.nr-lacquers-page) table {
  width: 100%;
  min-width: 1080px;
  border-collapse: separate;
  border-spacing: 0;
}

:is(body.nr-resins-page, body.nr-lacquers-page) thead th {
  padding: 18px 22px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  color: rgba(228, 225, 219, 0.46);
  font-family: "Syne Mono", monospace;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-align: left;
  white-space: nowrap;
  background: rgba(255, 255, 255, 0.03);
}

:is(body.nr-resins-page, body.nr-lacquers-page) thead th + th,
:is(body.nr-resins-page, body.nr-lacquers-page) tbody td + td {
  border-left: 1px solid rgba(255, 255, 255, 0.08);
}

:is(body.nr-resins-page, body.nr-lacquers-page) thead th:first-child {
  border-top-left-radius: 26px;
}

:is(body.nr-resins-page, body.nr-lacquers-page) thead th:last-child {
  border-top-right-radius: 26px;
}

:is(body.nr-resins-page, body.nr-lacquers-page) tbody td {
  padding: 18px 22px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  color: rgba(242, 239, 233, 0.86);
  vertical-align: top;
  line-height: 1.55;
}

:is(body.nr-resins-page, body.nr-lacquers-page) tbody tr:hover td {
  background: rgba(255, 255, 255, 0.03);
}

:is(body.nr-resins-page, body.nr-lacquers-page) tbody strong {
  font-weight: 700;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .muted {
  color: rgba(228, 225, 219, 0.56);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(244, 242, 238, 0.84);
  font-family: "Syne Mono", monospace;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  white-space: nowrap;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .badge--art,
:is(body.nr-resins-page, body.nr-lacquers-page) .b-art {
  border-color: rgba(126, 196, 184, 0.22);
  background: rgba(126, 196, 184, 0.08);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .badge--table,
:is(body.nr-resins-page, body.nr-lacquers-page) .b-table {
  border-color: rgba(194, 106, 97, 0.24);
  background: rgba(194, 106, 97, 0.09);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .badge--deep,
:is(body.nr-resins-page, body.nr-lacquers-page) .b-deep {
  border-color: rgba(199, 169, 119, 0.24);
  background: rgba(199, 169, 119, 0.08);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .badge--uv,
:is(body.nr-resins-page, body.nr-lacquers-page) .b-uv {
  border-color: rgba(122, 92, 191, 0.24);
  background: rgba(122, 92, 191, 0.08);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .b-compat-ok {
  border-color: rgba(74, 222, 128, 0.3);
  background: rgba(74, 222, 128, 0.1);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .b-compat-wood {
  border-color: rgba(245, 158, 11, 0.3);
  background: rgba(245, 158, 11, 0.1);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .tds-legend {
  margin-top: 18px;
  padding: 22px 24px;
  border: 1px solid var(--nr-page-card-border);
  border-radius: 22px;
  background: var(--nr-page-card-bg);
}

:is(body.nr-resins-page, body.nr-lacquers-page) .tds-legend-title {
  margin-bottom: 16px;
  color: var(--nr-subpage-text);
  font-family: var(--nr-subpage-mono-font);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .tds-legend-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px 18px;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .tds-legend-item {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--nr-subpage-text-dim);
  line-height: 1.5;
}

:is(body.nr-resins-page, body.nr-lacquers-page) .card-list {
  display: none;
}

@media (max-width: 900px) {
  :is(body.nr-resins-page, body.nr-lacquers-page) .container {
    width: min(calc(100% - 24px), 1480px);
    padding: 108px 0 72px;
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .page-header {
    justify-items: start;
    text-align: left;
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .page-tag {
    letter-spacing: 0.2em;
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .page-tag-line {
    width: 36px;
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .table-wrap,
  :is(body.nr-resins-page, body.nr-lacquers-page) .tds-legend {
    display: none;
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .card-list {
    display: grid;
    gap: 14px;
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .l-card,
  :is(body.nr-resins-page, body.nr-lacquers-page) .r-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: start;
    padding: 18px;
    border: 1px solid var(--nr-page-card-border);
    border-radius: 20px;
    background: var(--nr-page-card-bg);
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .lc-name,
  :is(body.nr-resins-page, body.nr-lacquers-page) .rc-name {
    color: rgba(244, 242, 238, 0.94);
    font-size: 1.08rem;
    font-weight: 700;
    line-height: 1.25;
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .lc-brand,
  :is(body.nr-resins-page, body.nr-lacquers-page) .rc-brand {
    margin-top: 4px;
    color: rgba(228, 225, 219, 0.58);
    font-family: "Syne Mono", monospace;
    font-size: 0.7rem;
    letter-spacing: 0.16em;
    text-transform: uppercase;
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .lc-badges,
  :is(body.nr-resins-page, body.nr-lacquers-page) .rc-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
  }
}

@media (max-width: 640px) {
  body.nr-home-page #nr-initial-loader {
    padding: 18px 16px;
  }

  body.nr-home-page #nrl-title {
    margin-top: 8px;
  }

  body.nr-home-page .nrl-big {
    font-size: clamp(1.8rem, 12vw, 3.6rem);
  }

  body.nr-home-page .nrl-sub {
    font-size: 0.68rem;
    letter-spacing: 0.24em;
  }

  :is(body.nr-resins-page, body.nr-lacquers-page) .page-back {
    font-size: 0.66rem;
    letter-spacing: 0.1em;
  }
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  background: var(--bg);
}

body.nr-page {
  margin: 0;
  min-height: 100vh;
  color: var(--nr-subpage-text);
  font-family: var(--nr-subpage-font);
  background: var(--nr-subpage-bg);
  background-color: var(--bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a {
  color: inherit;
}

img {
  display: block;
  max-width: 100%;
}

button,
input,
textarea,
select {
  font: inherit;
}

::selection {
  background: rgba(194, 106, 97, 0.25);
  color: #fff;
}

.nr-shell {
  width: min(calc(100% - 32px), var(--nr-shell-max));
  margin: 0 auto;
}

.nr-stack {
  display: grid;
  gap: var(--nr-gap-4);
}

.nr-bento {
  display: grid;
  gap: var(--nr-gap-4);
  grid-template-columns: repeat(12, minmax(0, 1fr));
}

.nr-bento > * {
  min-width: 0;
}

.nr-span-4 {
  grid-column: span 4;
}

.nr-span-6 {
  grid-column: span 6;
}

.nr-span-8 {
  grid-column: span 8;
}

.nr-span-12 {
  grid-column: span 12;
}

.nr-card {
  border-radius: var(--nr-radius-xl);
  border: 1px solid var(--nr-subpage-bento-border);
  background: var(--nr-subpage-bento-bg);
  box-shadow: var(--nr-subpage-bento-shadow);
}

.nr-card--soft {
  background: var(--nr-subpage-bento-bg-soft);
}

.nr-card--accent {
  border-color: var(--nr-page-accent-border, var(--nr-border-accent-ui));
  background: var(--nr-page-accent-bg, var(--nr-surface-accent));
}

.nr-card__body {
  padding: clamp(18px, 3vw, 30px);
}

.nr-eyebrow {
  margin: 0 0 10px;
  color: var(--accent-soft);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.nr-heading {
  margin: 0;
  font-family: var(--sans);
  font-size: clamp(1.5rem, 2.8vw, 3.2rem);
  font-weight: 800;
  line-height: 0.96;
  letter-spacing: -0.05em;
}

.nr-lead,
.nr-copy {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.75;
}

.nr-chip {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(242, 239, 233, 0.82);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.nr-btn,
.nr-input,
.nr-select {
  min-height: 48px;
  border-radius: 14px;
  border: 1px solid var(--nr-border);
  background: rgba(255, 255, 255, 0.04);
  color: var(--text);
}

.nr-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 0 18px;
  text-decoration: none;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.nr-btn--primary {
  border-color: transparent;
  background: var(--nr-gradient-accent-cta);
  color: var(--nr-text-contrast);
}

.nr-btn--ghost {
  background: rgba(255, 255, 255, 0.03);
}

.nr-input,
.nr-select {
  width: 100%;
  padding: 12px 14px;
  outline: none;
}

.nr-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--muted);
}

.nr-form-grid {
  display: grid;
  gap: 14px;
}

.nr-grid-2,
.nr-grid-3 {
  display: grid;
  gap: 12px;
}

.nr-grid-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.nr-grid-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.nr-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}

.nr-kpi {
  min-height: 120px;
  padding: 18px;
  border-radius: 18px;
  border: 1px solid var(--nr-border);
  background: rgba(255, 255, 255, 0.03);
}

.nr-kpi__label {
  display: block;
  margin-bottom: 8px;
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.nr-kpi__value {
  display: block;
  color: var(--text);
  font-size: clamp(1.2rem, 2.2vw, 1.8rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.03em;
}

.nr-kpi__note {
  display: block;
  margin-top: 8px;
  color: var(--text-soft);
  font-size: 0.92rem;
  line-height: 1.6;
}

.nr-prose p,
.nr-prose li {
  color: var(--text-soft);
  line-height: 1.78;
}

.nr-prose ul,
.nr-prose ol {
  padding-left: 1.2rem;
}

/* Shared legal / docs shell (migration from shared.css) */
.page-wrap {
  max-width: 860px;
  margin: 0 auto;
  padding: 5rem 2rem 8rem;
}

.doc-header {
  border-bottom: 1px solid var(--border);
  padding-bottom: 2.5rem;
  margin-bottom: 3.5rem;
}

.doc-tag {
  display: inline-block;
  font-family: var(--mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-muted);
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--border);
  padding: 0.3rem 0.75rem;
  border-radius: 999px;
  margin-bottom: 1.5rem;
}

.doc-title {
  font-size: clamp(1.8rem, 4vw, 2.8rem);
  font-weight: 600;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: 1rem;
}

.doc-meta {
  font-size: 0.82rem;
  color: var(--text-dim);
  font-family: var(--mono);
}

.toc {
  margin: 0 0 2rem;
  padding: 1.25rem 1.5rem;
  border-radius: 18px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.03);
}

.toc-title {
  margin-bottom: 0.9rem;
  color: var(--text);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.toc ol,
.toc ul {
  padding-left: 1.15rem;
}

.toc li,
.toc a {
  color: var(--text-muted);
}

.doc-content h2 {
  font-size: 1.1rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  color: var(--text-muted);
  margin-top: 3.5rem;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border);
}

.doc-content h3 {
  font-size: 1rem;
  font-weight: 600;
  margin-top: 2rem;
  margin-bottom: 0.6rem;
  color: var(--accent);
}

.doc-content p {
  color: var(--text-muted);
  margin-bottom: 1rem;
  font-size: 0.95rem;
}

.doc-content ul,
.doc-content ol {
  padding-left: 1.5rem;
  margin-bottom: 1rem;
}

.doc-content li {
  color: var(--text-muted);
  font-size: 0.93rem;
  margin-bottom: 0.4rem;
}

.doc-content strong {
  color: var(--text);
  font-weight: 600;
}

.info-box {
  background: var(--bg-2);
  border: 1px solid var(--border);
  border-left: 3px solid rgba(255, 255, 255, 0.3);
  padding: 1.25rem 1.5rem;
  margin: 2rem 0;
  border-radius: 0 12px 12px 0;
}

.info-box p {
  margin: 0;
  color: var(--text-dim);
  font-size: 0.88rem;
}

.doc-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: 0.87rem;
}

.doc-table th {
  text-align: left;
  padding: 0.6rem 1rem;
  background: var(--bg-3);
  color: var(--text-muted);
  font-family: var(--mono);
  font-size: 0.75rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border: 1px solid var(--border);
}

.doc-table td {
  padding: 0.7rem 1rem;
  border: 1px solid var(--border);
  color: var(--text-muted);
  vertical-align: top;
}

footer {
  border-top: 1px solid var(--border);
  padding: 2rem;
  text-align: center;
  color: var(--text-dim);
}

footer a {
  color: var(--text-muted);
  text-decoration: none;
}

footer a:hover {
  color: var(--text);
}

/* Shared subpage shell (migration from subpage-shell.css) */
body.subpage-shell-body {
  color: var(--text);
  font-family: var(--sans);
}

.subpage-shell {
  width: min(1480px, calc(100% - 48px));
  margin: 0 auto;
  padding: 132px 0 88px;
}

.subpage-shell__stack {
  display: grid;
  gap: 26px;
}

.subpage-shell__hero {
  position: relative;
  overflow: clip;
  padding: clamp(28px, 4vw, 48px);
  border-radius: 32px;
  border: 1px solid var(--nr-page-panel-border);
  background:
    radial-gradient(900px 420px at 100% 0%, rgba(194, 106, 97, 0.13), transparent 60%),
    radial-gradient(620px 360px at 0% 100%, rgba(126, 196, 184, 0.05), transparent 58%),
    var(--nr-page-panel-bg);
  box-shadow: var(--nr-page-panel-shadow);
}

.subpage-shell__hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, 0.75fr);
  gap: 28px;
  align-items: end;
}

.subpage-shell__eyebrow,
.subpage-panel__eyebrow {
  margin: 0 0 14px;
  color: var(--accent-soft);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.subpage-shell__title,
.subpage-panel__title {
  margin: 0;
  color: var(--text);
  font-family: var(--sans);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.055em;
}

.subpage-shell__title {
  max-width: 12ch;
  font-size: clamp(2.6rem, 5.4vw, 5rem);
}

.subpage-panel__title {
  font-size: clamp(1.35rem, 2vw, 1.8rem);
  line-height: 1.12;
}

.subpage-shell__lead,
.subpage-panel__copy,
.subpage-prose p,
.subpage-callout__copy {
  color: var(--text-soft);
  line-height: 1.78;
}

.subpage-shell__lead {
  margin: 22px 0 0;
  max-width: 62ch;
  font-size: clamp(1rem, 1.7vw, 1.18rem);
}

.subpage-shell__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 28px;
}

.subpage-chip {
  display: inline-flex;
  align-items: center;
  min-height: 38px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(242, 239, 233, 0.82);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.subpage-shell__meta,
.subpage-shell__layout,
.subpage-kpi-grid {
  display: grid;
  gap: 14px;
}

.subpage-shell__layout {
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
  gap: 24px;
  align-items: start;
}

.subpage-meta-card,
.subpage-panel,
.subpage-kpi,
.subpage-callout {
  border-radius: 18px;
  border: 1px solid var(--nr-page-card-border);
}

.subpage-meta-card,
.subpage-kpi {
  padding: 18px;
  background: rgba(255, 255, 255, 0.035);
}

.subpage-panel {
  padding: clamp(22px, 3vw, 30px);
  background: var(--nr-page-panel-bg);
  box-shadow: var(--nr-page-panel-shadow);
}

.subpage-panel--soft {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.02));
}

.subpage-panel--accent {
  border-color: rgba(194, 106, 97, 0.22);
  background: linear-gradient(180deg, rgba(194, 106, 97, 0.08), rgba(194, 106, 97, 0.03));
}

.subpage-meta-label,
.subpage-kpi__label {
  display: block;
  margin-bottom: 8px;
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.subpage-meta-value,
.subpage-kpi__value {
  display: block;
  color: var(--text);
  font-size: clamp(1.2rem, 2.2vw, 1.8rem);
  font-weight: 800;
  line-height: 1.1;
  letter-spacing: -0.03em;
}

.subpage-kpi-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 20px;
}

.subpage-kpi__note {
  display: block;
  margin-top: 10px;
  color: var(--text-soft);
  font-size: 0.92rem;
  line-height: 1.65;
}

.subpage-divider {
  height: 1px;
  margin: 22px 0 0;
  border: 0;
  background: rgba(255, 255, 255, 0.10);
}

.subpage-list {
  display: grid;
  gap: 12px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.subpage-list li {
  position: relative;
  padding-left: 18px;
  color: var(--text-soft);
  line-height: 1.7;
}

.subpage-list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--accent);
  box-shadow: 0 0 0 4px rgba(194, 106, 97, 0.12);
}

.subpage-callout {
  display: grid;
  gap: 8px;
  margin-top: 18px;
  padding: 16px;
  background: rgba(255, 255, 255, 0.03);
}

.subpage-callout__title {
  color: var(--text);
}

@media (max-width: 1100px) {
  .nr-bento,
  .subpage-shell__hero-grid,
  .subpage-shell__layout {
    grid-template-columns: 1fr;
  }

  .nr-span-4,
  .nr-span-6,
  .nr-span-8,
  .nr-span-12 {
    grid-column: span 12;
  }
}

@media (max-width: 720px) {
  .nr-shell,
  .subpage-shell {
    width: min(calc(100% - 24px), var(--nr-shell-max));
  }

  .nr-grid-2,
  .nr-grid-3,
  .nr-kpi-grid,
  .subpage-kpi-grid {
    grid-template-columns: 1fr;
  }

  .page-wrap {
    padding-left: 1.2rem;
    padding-right: 1.2rem;
  }
}

/* Project brief / karta projektu */
body.nr-project-brief-page .subpage-shell__title {
  max-width: 11ch;
}

body.nr-project-brief-page .subpage-shell__lead {
  max-width: 60ch;
}

body.nr-project-brief-page .subpage-shell__layout {
  grid-template-columns: minmax(0, 1.02fr) minmax(460px, 0.98fr);
  gap: 22px;
}

body.nr-project-brief-page .nr-brief-main {
  display: grid;
  gap: 24px;
}

body.nr-project-brief-page .nr-brief-builder {
  display: grid;
  gap: 24px;
}

body.nr-project-brief-page .nr-brief-builder-head {
  display: grid;
  gap: 12px;
}

body.nr-project-brief-page .nr-brief-form {
  display: grid;
  gap: 20px;
}

body.nr-project-brief-page .nr-brief-section {
  display: grid;
  gap: 16px;
  padding: 22px;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  background: rgba(255, 255, 255, 0.028);
}

body.nr-project-brief-page .nr-brief-section__head {
  display: grid;
  gap: 6px;
}

body.nr-project-brief-page .nr-brief-section__title {
  margin: 0;
  color: var(--text);
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: -0.02em;
}

body.nr-project-brief-page .nr-brief-section__copy {
  margin: 0;
  color: var(--text-soft);
  font-size: 0.95rem;
  line-height: 1.65;
}

body.nr-project-brief-page .nr-brief-grid {
  display: grid;
  gap: 14px;
}

body.nr-project-brief-page .nr-brief-grid--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.nr-project-brief-page .nr-brief-grid--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.nr-project-brief-page .nr-brief-field {
  display: grid;
  gap: 10px;
}

body.nr-project-brief-page .nr-brief-label {
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.nr-project-brief-page .nr-brief-input,
body.nr-project-brief-page .nr-brief-select,
body.nr-project-brief-page .nr-brief-textarea {
  width: 100%;
  min-height: 52px;
  padding: 0 16px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 16px;
  background: rgba(8, 11, 15, 0.55);
  color: var(--text);
  font: inherit;
  box-sizing: border-box;
  transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

body.nr-project-brief-page .nr-brief-textarea {
  min-height: 120px;
  padding: 14px 16px;
  resize: vertical;
}

body.nr-project-brief-page .nr-brief-input::placeholder,
body.nr-project-brief-page .nr-brief-textarea::placeholder {
  color: rgba(240, 235, 225, 0.36);
}

body.nr-project-brief-page .nr-brief-input:focus,
body.nr-project-brief-page .nr-brief-select:focus,
body.nr-project-brief-page .nr-brief-textarea:focus {
  outline: none;
  border-color: rgba(194, 106, 97, 0.54);
  background: rgba(10, 13, 18, 0.84);
  transform: translateY(-1px);
}

body.nr-project-brief-page .nr-brief-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

body.nr-project-brief-page .nr-brief-check {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 14px;
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.024);
  color: var(--text-soft);
}

body.nr-project-brief-page .nr-brief-check input {
  margin: 0;
  accent-color: var(--accent);
}

body.nr-project-brief-page .nr-brief-media-shell {
  display: grid;
  gap: 14px;
}

body.nr-project-brief-page .nr-brief-media-switch,
body.nr-project-brief-page .nr-brief-sketch-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

body.nr-project-brief-page .nr-brief-tool {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 14px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: rgba(255, 255, 255, 0.035);
  color: var(--text-soft);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, transform .18s ease, color .18s ease;
}

body.nr-project-brief-page .nr-brief-tool:hover {
  transform: translateY(-1px);
  border-color: rgba(194, 106, 97, 0.36);
}

body.nr-project-brief-page .nr-brief-tool.is-active {
  border-color: rgba(194, 106, 97, 0.38);
  background: rgba(194, 106, 97, 0.14);
  color: var(--text);
}

body.nr-project-brief-page .nr-brief-media-panel {
  display: grid;
  gap: 14px;
}

body.nr-project-brief-page .nr-brief-upload-card {
  position: relative;
  display: grid;
  gap: 8px;
  padding: 18px;
  border: 1px dashed rgba(255, 255, 255, 0.18);
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.02);
  cursor: pointer;
}

body.nr-project-brief-page .nr-brief-upload-input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}

body.nr-project-brief-page .nr-brief-upload-title {
  color: var(--text);
  font-weight: 700;
}

body.nr-project-brief-page .nr-brief-upload-copy {
  color: var(--text-soft);
  line-height: 1.65;
}

body.nr-project-brief-page .nr-brief-upload-preview-wrap {
  display: grid;
  gap: 12px;
}

body.nr-project-brief-page .nr-brief-upload-preview-wrap[hidden] {
  display: none;
}

body.nr-project-brief-page .nr-brief-upload-preview {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 20px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  object-fit: contain;
}

body.nr-project-brief-page .nr-brief-sketch-stage {
  position: relative;
  overflow: hidden;
  border-radius: 22px;
  border: 1px solid rgba(255, 255, 255, 0.10);
  background: #f7f1e7;
}

body.nr-project-brief-page .nr-brief-sketch-canvas {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  touch-action: none;
}

body.nr-project-brief-page .nr-brief-sketch-hint {
  position: absolute;
  inset: auto 16px 16px 16px;
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(22, 17, 13, 0.08);
  color: rgba(22, 17, 13, 0.72);
  font-size: 0.92rem;
  line-height: 1.55;
  pointer-events: none;
}

body.nr-project-brief-page .nr-brief-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

body.nr-project-brief-page .nr-brief-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(255, 255, 255, 0.04);
  color: var(--text);
  font: inherit;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}

body.nr-project-brief-page .nr-brief-button:hover {
  transform: translateY(-1px);
  border-color: rgba(194, 106, 97, 0.38);
  background: rgba(194, 106, 97, 0.08);
}

body.nr-project-brief-page .nr-brief-button--primary {
  border-color: rgba(194, 106, 97, 0.36);
  background: linear-gradient(180deg, rgba(194, 106, 97, 0.22), rgba(194, 106, 97, 0.12));
}

body.nr-project-brief-page .nr-brief-workflow {
  display: grid;
  gap: 14px;
}

body.nr-project-brief-page .nr-brief-steps {
  display: grid;
  gap: 12px;
}

body.nr-project-brief-page .nr-brief-step {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
}

body.nr-project-brief-page .nr-brief-step__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: rgba(194, 106, 97, 0.12);
  color: var(--accent-soft);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.16em;
}

body.nr-project-brief-page .nr-brief-step__title {
  display: block;
  color: var(--text);
  font-weight: 700;
}

body.nr-project-brief-page .nr-brief-step__copy {
  display: block;
  margin-top: 6px;
  color: var(--text-soft);
  line-height: 1.66;
}

body.nr-project-brief-page .nr-brief-aside {
  display: grid;
  gap: 18px;
}

body.nr-project-brief-page .nr-brief-preview-panel {
  position: sticky;
  top: 108px;
  display: grid;
  gap: 18px;
}

body.nr-project-brief-page .nr-brief-preview-head {
  display: grid;
  gap: 8px;
}

body.nr-project-brief-page .nr-brief-preview-note {
  margin: 0;
  color: var(--text-dim);
  font-size: 0.92rem;
  line-height: 1.65;
}

body.nr-project-brief-page .nr-brief-sheet {
  display: grid;
  gap: 24px;
  padding: clamp(22px, 2.4vw, 30px);
  border-radius: 28px;
  border: 1px solid rgba(32, 25, 22, 0.08);
  background:
    linear-gradient(180deg, rgba(255, 252, 247, 1), rgba(245, 238, 226, 0.98));
  color: #16110d;
  box-shadow: 0 28px 80px rgba(0, 0, 0, 0.26);
}

body.nr-project-brief-page .nr-brief-sheet__top {
  display: grid;
  gap: 18px;
}

body.nr-project-brief-page .nr-brief-sheet__eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

body.nr-project-brief-page .nr-brief-sheet__tag,
body.nr-project-brief-page .nr-brief-sheet__stamp {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.nr-project-brief-page .nr-brief-sheet__tag {
  background: rgba(22, 17, 13, 0.06);
  color: rgba(22, 17, 13, 0.8);
}

body.nr-project-brief-page .nr-brief-sheet__stamp {
  margin-left: auto;
  background: rgba(194, 106, 97, 0.14);
  color: #8f4238;
}

body.nr-project-brief-page .nr-brief-sheet__title {
  margin: 0;
  color: #15110d;
  font-size: clamp(1.8rem, 2vw, 2.4rem);
  font-weight: 800;
  line-height: 0.96;
  letter-spacing: -0.05em;
}

body.nr-project-brief-page .nr-brief-sheet__lead {
  margin: 0;
  color: rgba(22, 17, 13, 0.78);
  line-height: 1.7;
}

body.nr-project-brief-page .nr-brief-sheet__hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
}

body.nr-project-brief-page .nr-brief-sheet__cluster {
  display: grid;
  gap: 6px;
}

body.nr-project-brief-page .nr-brief-sheet__label {
  color: rgba(22, 17, 13, 0.56);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body.nr-project-brief-page .nr-brief-sheet__value {
  color: #15110d;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.45;
}

body.nr-project-brief-page .nr-brief-sheet__value[data-empty="true"] {
  color: rgba(22, 17, 13, 0.44);
  font-weight: 500;
}

body.nr-project-brief-page .nr-brief-sheet__meta {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

body.nr-project-brief-page .nr-brief-sheet__meta-card {
  display: grid;
  gap: 8px;
  padding: 16px;
  border-radius: 18px;
  background: rgba(22, 17, 13, 0.045);
}

body.nr-project-brief-page .nr-brief-sheet__section--visual {
  gap: 16px;
}

body.nr-project-brief-page .nr-brief-sheet__visual-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

body.nr-project-brief-page .nr-brief-sheet__visual-frame {
  position: relative;
  overflow: hidden;
  display: grid;
  place-items: center;
  min-height: 260px;
  border-radius: 24px;
  border: 1px solid rgba(22, 17, 13, 0.08);
  background: rgba(22, 17, 13, 0.045);
}

body.nr-project-brief-page .nr-brief-sheet__visual-frame[data-empty="true"] {
  border-style: dashed;
}

body.nr-project-brief-page .nr-brief-sheet__visual-image {
  display: block;
  width: 100%;
  max-height: 420px;
  object-fit: contain;
}

body.nr-project-brief-page .nr-brief-sheet__visual-placeholder {
  max-width: 42ch;
  padding: 24px;
  color: rgba(22, 17, 13, 0.52);
  text-align: center;
  line-height: 1.7;
}

body.nr-project-brief-page .nr-brief-sheet__section {
  display: grid;
  gap: 14px;
  padding-top: 18px;
  border-top: 1px solid rgba(22, 17, 13, 0.08);
}

body.nr-project-brief-page .nr-brief-sheet__section-title {
  margin: 0;
  color: #15110d;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

body.nr-project-brief-page .nr-brief-sheet__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 18px;
}

body.nr-project-brief-page .nr-brief-sheet__list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.nr-project-brief-page .nr-brief-sheet__list li {
  position: relative;
  padding-left: 16px;
  color: #15110d;
  line-height: 1.58;
}

body.nr-project-brief-page .nr-brief-sheet__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.72em;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: #c26a61;
}

body.nr-project-brief-page .nr-brief-sheet__list li[data-empty="true"] {
  color: rgba(22, 17, 13, 0.44);
}

body.nr-project-brief-page .nr-brief-sheet__notes {
  min-height: 96px;
  padding: 16px 18px;
  border-radius: 20px;
  background: rgba(22, 17, 13, 0.045);
  color: #15110d;
  line-height: 1.7;
  white-space: pre-line;
}

body.nr-project-brief-page .nr-brief-sheet__notes[data-empty="true"] {
  color: rgba(22, 17, 13, 0.44);
}

body.nr-project-brief-page .nr-brief-sheet__footer {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: center;
  padding-top: 18px;
  border-top: 1px solid rgba(22, 17, 13, 0.08);
}

body.nr-project-brief-page .nr-brief-sheet__footnote {
  color: rgba(22, 17, 13, 0.58);
  font-size: 0.88rem;
  line-height: 1.6;
}

body.nr-project-brief-page .nr-brief-sheet__domain {
  color: #15110d;
  font-family: var(--mono);
  font-size: 0.8rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

@media (max-width: 980px) {
  body.nr-project-brief-page .subpage-shell__layout,
  body.nr-project-brief-page .nr-brief-grid--2,
  body.nr-project-brief-page .nr-brief-grid--3,
  body.nr-project-brief-page .nr-brief-checklist,
  body.nr-project-brief-page .nr-brief-sheet__meta,
  body.nr-project-brief-page .nr-brief-sheet__grid {
    grid-template-columns: 1fr;
  }

  body.nr-project-brief-page .nr-brief-preview-panel {
    position: static;
  }

  body.nr-project-brief-page .nr-brief-sheet__visual-head {
    align-items: start;
    flex-direction: column;
  }

  body.nr-project-brief-page .nr-brief-sheet__hero {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  body.nr-project-brief-page .subpage-shell {
    padding-top: 118px;
  }

  body.nr-project-brief-page .nr-brief-section,
  body.nr-project-brief-page .nr-brief-sheet {
    padding-left: 18px;
    padding-right: 18px;
  }

  body.nr-project-brief-page .nr-brief-actions,
  body.nr-project-brief-page .nr-brief-sheet__footer {
    flex-direction: column;
    align-items: stretch;
  }

  body.nr-project-brief-page .nr-brief-media-switch,
  body.nr-project-brief-page .nr-brief-sketch-toolbar {
    flex-direction: column;
  }

  body.nr-project-brief-page .nr-brief-button {
    width: 100%;
  }
}

@media print {
  body.nr-project-brief-page {
    background: #ffffff;
    color: #111111;
  }

  body.nr-project-brief-page #global-site-header,
  body.nr-project-brief-page #nr-footer-v4,
  body.nr-project-brief-page .subpage-shell__hero,
  body.nr-project-brief-page .nr-brief-builder,
  body.nr-project-brief-page .nr-brief-workflow,
  body.nr-project-brief-page .nr-brief-preview-head,
  body.nr-project-brief-page .nr-brief-preview-note,
  body.nr-project-brief-page .nr-brief-actions {
    display: none;
  }

  body.nr-project-brief-page .subpage-shell {
    width: 100%;
    padding: 0;
  }

  body.nr-project-brief-page .subpage-shell__layout,
  body.nr-project-brief-page .nr-brief-main,
  body.nr-project-brief-page .nr-brief-aside {
    display: block;
  }

  body.nr-project-brief-page .subpage-panel {
    padding: 0;
    border: 0;
    background: transparent;
    box-shadow: none;
  }

  body.nr-project-brief-page .nr-brief-sheet {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: #ffffff;
    box-shadow: none;
  }

  body.nr-project-brief-page .nr-brief-sheet__stamp {
    background: rgba(194, 106, 97, 0.18);
  }

  @page {
    size: A4;
    margin: 12mm;
  }
}

/* === NR MERGED EXTERNAL CSS: START === */
/* --- colors.css --- */
/*
 * NeuroResin Studio — Color Design Tokens
 * Zawiera też overrides hardkodowanych kolorów z legacy app core
 * (sekcja na dole pliku).
 * ========================================
 * Jedyne i kanoniczne miejsce dla wszystkich tokenów kolorystycznych.
 * Sekcja colors jest ładowana po NR APP CORE CSS — nadpisuje jej tokeny przez kolejność w pliku.
 *
 * Edytuj TUTAJ albo w site.css. assets/app.styles.css nie jest już aktywnym źródłem runtime.
 *
 * Grupy:
 *   1. Tła (bg)
 *   2. Powierzchnie (surface)
 *   3. Obramowania (border)
 *   4. Tekst (text)
 *   5. Akcent / marka (accent)
 *   6. Teal / info
 *   7. Statusy (success / warning / danger)
 *   8. Misc (glass, overlay, input, toolbar)
 */

/* ═══════════════════════════════════════════
   TRYB CIEMNY (domyślny)
   ═══════════════════════════════════════════ */
:root {
  color-scheme: dark;

  /* ── 1. Tła ─────────────────────────────── */
  --nr-bg:            #171719;   /* tło strony */
  --nr-bg-2:          #1b1c1f;   /* łagodne przejścia tła */
  --nr-bg-3:          #202124;   /* jaśniejsze tło modułów */
  --nr-bg-deep:       #111214;   /* najciemniejsze wgłębienia */
  --nr-bg-strong:     #0f1012;   /* mocny grafit pod overlaye */

  /* ── 2. Powierzchnie ────────────────────── */
  --nr-surface:          #1d1e21;   /* karty, panele */
  --nr-surface-alt:      #202124;   /* naprzemienne wiersze, sekcje */
  --nr-surface-elevated: #2a2b2f;   /* modale, dropdowny ↑ rozjaśnione */

  /* ── 3. Obramowania ─────────────────────── */
  --nr-border:       rgba(255,255,255,.12);  /* ↑ +4% (było .08) */
  --nr-border-solid: #38383c;               /* ↑ jaśniejszy separator */

  /* ── 4. Tekst ───────────────────────────── */
  --nr-text:     #f0f0ee;   /* tekst główny */
  --nr-text-sec: #c4c4c0;   /* tekst drugorzędny */
  --nr-muted:    #9a9aa0;   /* ↑ etykiety/placeholdery (było #85858a, kontrast ~5:1) */

  /* ── 5. Akcent / marka ──────────────────── */
  --nr-accent:      #c26a61;
  --nr-accent-soft: #d68a7f;
  --nr-accent-dim:  rgba(194,106,97,.12);
  --nr-accent-brd:  rgba(194,106,97,.25);

  /* ── 6. Teal (legacy) / info (warm sand) ─── */
  --nr-teal:      #7ec4b8;
  --nr-teal-dim:  rgba(126,196,184,.12);
  --nr-info:      #c9a773;
  --nr-info-soft: rgba(201,167,115,.14);
  --nr-info-brd:  rgba(201,167,115,.28);

  /* ── 7. Statusy ─────────────────────────── */
  --nr-success:      #7a9882;
  --nr-success-soft: rgba(122,152,130,.14);
  --nr-success-brd:  rgba(122,152,130,.24);

  --nr-warning:      #c88a52;
  --nr-warning-soft: rgba(200,138,82,.15);
  --nr-warning-brd:  rgba(200,138,82,.24);

  --nr-danger:      #d07a72;
  --nr-danger-soft: rgba(208,122,114,.15);
  --nr-danger-brd:  rgba(208,122,114,.24);

  /* ── 8. Misc ────────────────────────────── */
  --nr-glass:        linear-gradient(180deg, rgba(78,81,89,.85), rgba(62,65,73,.80));
  --nr-glass-border: rgba(255,255,255,.1);
  --nr-glass-shadow: 0 12px 40px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.08);
  --nr-overlay:      rgba(0,0,0,.75);
  --nr-input-bg:     rgba(255,255,255,.06);
  --nr-toolbar-bg:   linear-gradient(180deg, rgba(78,81,88,.95), rgba(68,71,78,.92));

  /* ── 9. Semantic UI roles ───────────────── */
  --nr-surface-faint: rgba(255,255,255,.02);
  --nr-surface-soft: rgba(255,255,255,.03);
  --nr-surface-soft-strong: rgba(255,255,255,.04);
  --nr-surface-chip: rgba(255,255,255,.05);
  --nr-surface-chip-strong: rgba(255,255,255,.08);
  --nr-surface-overlay: rgba(18,18,20,.86);
  --nr-surface-overlay-strong: rgba(23,23,25,.98);
  --nr-surface-overlay-soft: rgba(22,22,24,.50);
  --nr-surface-mask: rgba(14,14,16,.95);
  --nr-surface-skip: rgba(18,18,20,.96);

  --nr-border-faint: rgba(255,255,255,.06);
  --nr-border-soft-ui: rgba(255,255,255,.08);
  --nr-border-soft-plus: rgba(255,255,255,.09);
  --nr-border-mid: rgba(255,255,255,.10);
  --nr-border-strong-ui: rgba(255,255,255,.12);
  --nr-border-stronger: rgba(255,255,255,.14);
  --nr-border-accent-soft: rgba(194,106,97,.18);
  --nr-border-accent-ui: rgba(194,106,97,.24);
  --nr-border-accent-strong: rgba(194,106,97,.58);
  --nr-border-info-ui: rgba(126,196,184,.18);
  --nr-border-warning-ui: rgba(199,169,119,.24);

  --nr-text-strong-alpha: rgba(244,242,238,.88);
  --nr-text-soft-alpha: rgba(244,242,238,.86);
  --nr-text-muted-alpha: rgba(244,242,238,.74);
  --nr-text-subtle: rgba(255,255,255,.58);
  --nr-text-subtle-strong: rgba(255,255,255,.72);
  --nr-text-contrast: #fff;

  --nr-surface-accent: rgba(194,106,97,.08);
  --nr-surface-accent-strong: rgba(194,106,97,.10);
  --nr-surface-accent-cta: rgba(194,106,97,.14);
  --nr-surface-info-ui: rgba(126,196,184,.06);
  --nr-surface-info-strong: rgba(126,196,184,.10);
  --nr-surface-warning-ui: rgba(199,169,119,.08);
  --nr-surface-warning-strong: rgba(199,169,119,.10);
  --nr-surface-success-ui: rgba(74,222,128,.16);
  --nr-surface-hover-faint: rgba(255,255,255,.05);
  --nr-surface-hover: rgba(255,255,255,.10);
  --nr-surface-hover-strong: rgba(255,255,255,.15);
  --nr-surface-hover-brd: rgba(255,255,255,.20);
  --nr-surface-control-idle: rgba(255,255,255,.07);
  --nr-surface-control-active: rgba(255,255,255,.12);
  --nr-surface-abyss: rgba(15,15,17,.66);
  --nr-surface-darkest: rgba(12,12,14,.95);
  --nr-scrim-soft: rgba(0,0,0,.35);
  --nr-scrim-mid: rgba(0,0,0,.50);
  --nr-scrim-strong: rgba(0,0,0,.70);
  --nr-border-emphasis: rgba(255,255,255,.18);
  --nr-border-emphasis-strong: rgba(255,255,255,.30);
  --nr-border-control-active: rgba(255,255,255,.28);
  --nr-control-bg-deep: #141414;
  --nr-control-bg-dark: #1b1b1b;
  --nr-control-bg-strong: #202020;
  --nr-control-bg-elevated: #242424;
  --nr-control-bg-active: #292929;
  --nr-control-border-dark: #3a3a3a;
  --nr-control-border-soft: #3b3b3b;
  --nr-control-border-strong: #414141;
  --nr-control-border-contrast: #4f4f4f;
  --nr-control-text: #f5f5f5;
  --nr-control-text-soft: #ececec;
  --nr-control-text-mid: #e6e6e6;
  --nr-control-text-dim: #d0d0d0;
  --nr-control-text-faint: #acacac;

  --nr-paper-bg: #faf7f1;
  --nr-paper-surface: rgba(255,255,255,.96);
  --nr-paper-surface-muted: #f2eee7;
  --nr-paper-text: #171717;
  --nr-paper-text-soft: rgba(23,23,23,.74);
  --nr-paper-text-dim: rgba(23,23,23,.56);
  --nr-paper-border-ui: rgba(23,23,23,.08);
  --nr-paper-border-strong: rgba(23,23,23,.22);

  --nr-gradient-page:
    radial-gradient(1400px 920px at 50% 10%, rgba(30,31,34,.92), rgba(23,23,25,0) 66%),
    radial-gradient(1200px 800px at 18% 14%, rgba(194,106,97,.08), transparent 55%),
    radial-gradient(900px 700px at 82% 22%, rgba(194,106,97,.04), transparent 55%),
    linear-gradient(180deg, #202124 0%, #1b1c1f 26%, #17181a 48%, #171719 66%, #171719 100%);
  --nr-gradient-loader:
    radial-gradient(1200px 820px at 18% 10%, rgba(194,106,97,.12), transparent 46%),
    radial-gradient(880px 700px at 84% 18%, rgba(126,196,184,.06), transparent 54%),
    linear-gradient(180deg, #202124 0%, #1b1c1f 36%, #171719 100%);
  --nr-gradient-panel: linear-gradient(180deg, rgba(31,32,35,.96), rgba(23,24,26,.94));
  --nr-gradient-accent-cta: linear-gradient(180deg, rgba(194,106,97,.96), rgba(178,89,81,.94));
  --nr-gradient-viz:
    radial-gradient(1000px 560px at 50% 50%, rgba(255,255,255,.04), transparent 58%),
    #18191b;

  /* ── 10. Globalny skin podstron ──────────────
     Edytuj ten blok, gdy chcesz zmienić tło, fonty albo bento na stronach:
     blog, dokumentacja, kontakt, baza żywic/lakierów, status i zaproponuj markę. */
  --nr-subpage-bg: var(--nr-gradient-page);
  --nr-subpage-font: var(--nr-font-ui);
  --nr-subpage-heading-font: var(--nr-font-sans);
  --nr-subpage-mono-font: var(--nr-font-mono);
  --nr-subpage-text: var(--nr-text);
  --nr-subpage-text-soft: var(--nr-text-soft);
  --nr-subpage-text-muted: var(--nr-text-subtle-strong);
  --nr-subpage-text-dim: var(--nr-text-subtle);
  --nr-subpage-bento-bg: var(--nr-surface-overlay-soft);
  --nr-subpage-bento-bg-soft: var(--nr-surface-soft);
  --nr-subpage-bento-bg-strong: var(--nr-surface-soft-strong);
  --nr-subpage-bento-border: var(--nr-border-soft-plus);
  --nr-subpage-bento-border-soft: var(--nr-border-soft-ui);
  --nr-subpage-bento-shadow: var(--nr-shadow-panel);
  --nr-subpage-chip-bg: var(--nr-surface-soft-strong);
  --nr-subpage-chip-bg-strong: var(--nr-surface-chip-strong);
  --nr-subpage-chip-text: var(--nr-text-soft-alpha);
  --nr-subpage-divider: var(--nr-border-faint);

  --nr-shadow-header: 0 1px 0 rgba(194,106,97,.15), 0 20px 40px rgba(0,0,0,.4);
  --nr-shadow-dropdown: 0 16px 36px rgba(0,0,0,.42);
  --nr-shadow-mobile-panel: 0 28px 70px rgba(0,0,0,.52);
  --nr-shadow-panel: 0 24px 72px rgba(0,0,0,.22);
  --nr-shadow-panel-lg: 0 30px 80px rgba(0,0,0,.28);
  --nr-shadow-inset-ui: inset 0 1px 0 rgba(255,255,255,.08);
  --nr-shadow-utility-lg: 0 8px 24px rgba(0,0,0,.35);
  --nr-shadow-utility-xl: 0 12px 32px rgba(0,0,0,.40);
  --nr-shadow-utility-2xl: 0 16px 48px rgba(0,0,0,.50);
  --nr-shadow-alert: 0 0 0 1px var(--nr-border-mid), 0 18px 70px rgba(0,0,0,.45);
  --nr-shadow-alert-hot: 0 0 0 1px var(--nr-border-accent-ui), 0 18px 80px rgba(194,106,97,.15);
  --nr-shadow-accent-cta: 0 18px 40px rgba(194,106,97,.18);
  --nr-shadow-paper: 0 26px 64px rgba(0,0,0,.28);
  --nr-shadow-ring-warning: 0 0 0 6px rgba(199,169,119,.08);
  --nr-shadow-status-online: 0 0 6px rgba(61,220,132,.5);
  --nr-shadow-status-offline: 0 0 6px rgba(224,92,92,.45);
  --nr-shadow-status-checking: 0 0 6px rgba(224,160,80,.45);
}

/* ═══════════════════════════════════════════
   TRYB JASNY  [data-theme="light"]
   ═══════════════════════════════════════════ */
[data-theme="light"] {
  color-scheme: light;

  /* ── 1. Tła ─────────────────────────────── */
  --nr-bg:      #e8e6e1;
  --nr-bg-deep: #dfddd8;

  /* ── 2. Powierzchnie ────────────────────── */
  --nr-surface:          #f2f0ec;
  --nr-surface-alt:      #eae8e3;
  --nr-surface-elevated: #ffffff;

  /* ── 3. Obramowania ─────────────────────── */
  --nr-border:       rgba(0,0,0,.09);   /* ↑ lekko mocniejszy */
  --nr-border-solid: #c8c5be;

  /* ── 4. Tekst ───────────────────────────── */
  --nr-text:     #1e1e1c;
  --nr-text-sec: #4a4a46;
  --nr-muted:    #8a8a86;

  /* ── 5. Akcent / marka ──────────────────── */
  --nr-accent:      #c75c4a;
  --nr-accent-soft: #d97f6f;
  --nr-accent-dim:  rgba(199,92,74,.08);
  --nr-accent-brd:  rgba(199,92,74,.2);

  /* ── 6. Teal (legacy) / info (warm sand) ─── */
  --nr-teal:      #2d7a6f;
  --nr-teal-dim:  rgba(45,122,111,.08);
  --nr-info:      #8c6f37;
  --nr-info-soft: rgba(140,111,55,.09);
  --nr-info-brd:  rgba(140,111,55,.22);

  /* ── 7. Statusy ─────────────────────────── */
  --nr-success:      #55745f;
  --nr-success-soft: rgba(85,116,95,.10);
  --nr-success-brd:  rgba(85,116,95,.18);

  --nr-warning:      #b0713b;
  --nr-warning-soft: rgba(176,113,59,.10);
  --nr-warning-brd:  rgba(176,113,59,.18);

  --nr-danger:      #bf665d;
  --nr-danger-soft: rgba(191,102,93,.10);
  --nr-danger-brd:  rgba(191,102,93,.18);

  /* ── 8. Misc ────────────────────────────── */
  --nr-glass:        linear-gradient(180deg, rgba(255,255,255,.92), rgba(248,246,242,.88));
  --nr-glass-border: rgba(0,0,0,.06);
  --nr-glass-shadow: 0 8px 30px rgba(0,0,0,.06), inset 0 1px 0 rgba(255,255,255,.6);
  --nr-overlay:      rgba(240,238,233,.85);
  --nr-input-bg:     rgba(0,0,0,.04);
  --nr-toolbar-bg:   linear-gradient(180deg, rgba(242,240,236,.97), rgba(234,232,227,.95));

  /* ── 9. Semantic UI roles ───────────────── */
  --nr-surface-faint: rgba(0,0,0,.02);
  --nr-surface-soft: rgba(0,0,0,.03);
  --nr-surface-soft-strong: rgba(0,0,0,.04);
  --nr-surface-chip: rgba(0,0,0,.05);
  --nr-surface-chip-strong: rgba(0,0,0,.08);
  --nr-surface-overlay: rgba(255,255,255,.86);
  --nr-surface-overlay-strong: rgba(255,255,255,.98);
  --nr-surface-overlay-soft: rgba(255,255,255,.78);
  --nr-surface-mask: rgba(244,241,235,.96);
  --nr-surface-skip: rgba(255,255,255,.96);

  --nr-border-faint: rgba(0,0,0,.06);
  --nr-border-soft-ui: rgba(0,0,0,.08);
  --nr-border-soft-plus: rgba(0,0,0,.09);
  --nr-border-mid: rgba(0,0,0,.10);
  --nr-border-strong-ui: rgba(0,0,0,.12);
  --nr-border-stronger: rgba(0,0,0,.14);
  --nr-border-accent-soft: rgba(199,92,74,.18);
  --nr-border-accent-ui: rgba(199,92,74,.24);
  --nr-border-accent-strong: rgba(199,92,74,.42);
  --nr-border-info-ui: rgba(45,122,111,.18);
  --nr-border-warning-ui: rgba(176,113,59,.24);

  --nr-text-strong-alpha: rgba(30,30,28,.88);
  --nr-text-soft-alpha: rgba(30,30,28,.82);
  --nr-text-muted-alpha: rgba(30,30,28,.68);
  --nr-text-subtle: rgba(0,0,0,.56);
  --nr-text-subtle-strong: rgba(0,0,0,.72);
  --nr-text-contrast: #1e1e1c;

  --nr-surface-accent: rgba(199,92,74,.08);
  --nr-surface-accent-strong: rgba(199,92,74,.12);
  --nr-surface-accent-cta: rgba(199,92,74,.16);
  --nr-surface-info-ui: rgba(45,122,111,.06);
  --nr-surface-info-strong: rgba(45,122,111,.10);
  --nr-surface-warning-ui: rgba(176,113,59,.08);
  --nr-surface-warning-strong: rgba(176,113,59,.10);
  --nr-surface-success-ui: rgba(85,116,95,.12);
  --nr-surface-hover-faint: rgba(0,0,0,.03);
  --nr-surface-hover: rgba(0,0,0,.06);
  --nr-surface-hover-strong: rgba(0,0,0,.08);
  --nr-surface-hover-brd: rgba(0,0,0,.10);
  --nr-surface-control-idle: rgba(0,0,0,.05);
  --nr-surface-control-active: rgba(0,0,0,.08);
  --nr-surface-abyss: rgba(10,10,13,.62);
  --nr-surface-darkest: rgba(8,11,17,.95);
  --nr-scrim-soft: rgba(0,0,0,.35);
  --nr-scrim-mid: rgba(0,0,0,.50);
  --nr-scrim-strong: rgba(0,0,0,.70);
  --nr-border-emphasis: rgba(0,0,0,.12);
  --nr-border-emphasis-strong: rgba(0,0,0,.18);
  --nr-border-control-active: rgba(0,0,0,.18);
  --nr-control-bg-deep: #f2f0ec;
  --nr-control-bg-dark: #f6f4ef;
  --nr-control-bg-strong: #faf8f4;
  --nr-control-bg-elevated: #ffffff;
  --nr-control-bg-active: #ebe6df;
  --nr-control-border-dark: rgba(0,0,0,.12);
  --nr-control-border-soft: rgba(0,0,0,.10);
  --nr-control-border-strong: rgba(0,0,0,.16);
  --nr-control-border-contrast: rgba(0,0,0,.18);
  --nr-control-text: #1e1e1c;
  --nr-control-text-soft: #242420;
  --nr-control-text-mid: #3a3a34;
  --nr-control-text-dim: #5b5b56;
  --nr-control-text-faint: #7a7a74;

  --nr-paper-bg: #faf7f1;
  --nr-paper-surface: rgba(255,255,255,.96);
  --nr-paper-surface-muted: #f2eee7;
  --nr-paper-text: #171717;
  --nr-paper-text-soft: rgba(23,23,23,.74);
  --nr-paper-text-dim: rgba(23,23,23,.56);
  --nr-paper-border-ui: rgba(23,23,23,.08);
  --nr-paper-border-strong: rgba(23,23,23,.22);

  --nr-gradient-page:
    radial-gradient(1400px 920px at 50% 10%, rgba(255,255,255,.56), rgba(255,255,255,0) 66%),
    radial-gradient(1200px 800px at 18% 14%, rgba(199,92,74,.08), transparent 55%),
    radial-gradient(900px 700px at 82% 22%, rgba(45,122,111,.04), transparent 55%),
    linear-gradient(180deg, #f3f1ec 0%, #ebe9e3 42%, #e8e6e1 100%);
  --nr-gradient-loader:
    radial-gradient(1200px 820px at 18% 10%, rgba(199,92,74,.10), transparent 46%),
    radial-gradient(880px 700px at 84% 18%, rgba(45,122,111,.05), transparent 54%),
    linear-gradient(180deg, #f3f1ec 0%, #ebe9e3 36%, #e8e6e1 100%);
  --nr-gradient-panel: linear-gradient(180deg, rgba(255,255,255,.96), rgba(247,245,241,.94));
  --nr-gradient-accent-cta: linear-gradient(180deg, rgba(199,92,74,.96), rgba(184,83,66,.92));
  --nr-gradient-viz:
    radial-gradient(1000px 560px at 50% 50%, rgba(0,0,0,.03), transparent 58%),
    #eef0f4;

  --nr-shadow-header: 0 1px 0 rgba(199,92,74,.10), 0 20px 40px rgba(0,0,0,.08);
  --nr-shadow-dropdown: 0 16px 36px rgba(0,0,0,.12);
  --nr-shadow-mobile-panel: 0 28px 70px rgba(0,0,0,.16);
  --nr-shadow-panel: 0 24px 72px rgba(0,0,0,.10);
  --nr-shadow-panel-lg: 0 30px 80px rgba(0,0,0,.12);
  --nr-shadow-inset-ui: inset 0 1px 0 rgba(255,255,255,.55);
  --nr-shadow-utility-lg: 0 8px 24px rgba(0,0,0,.10);
  --nr-shadow-utility-xl: 0 12px 32px rgba(0,0,0,.12);
  --nr-shadow-utility-2xl: 0 16px 48px rgba(0,0,0,.16);
  --nr-shadow-alert: 0 0 0 1px var(--nr-border-mid), 0 18px 70px rgba(0,0,0,.10);
  --nr-shadow-alert-hot: 0 0 0 1px var(--nr-border-accent-ui), 0 18px 80px rgba(199,92,74,.12);
  --nr-shadow-accent-cta: 0 18px 40px rgba(199,92,74,.16);
  --nr-shadow-paper: 0 26px 64px rgba(0,0,0,.16);
  --nr-shadow-ring-warning: 0 0 0 6px rgba(176,113,59,.08);
  --nr-shadow-status-online: 0 0 6px rgba(85,116,95,.36);
  --nr-shadow-status-offline: 0 0 6px rgba(191,102,93,.32);
  --nr-shadow-status-checking: 0 0 6px rgba(176,113,59,.32);
}

/* ═══════════════════════════════════════════
   OVERRIDES — hardkodowane kolory w legacy app core
   (nie używają zmiennych CSS, więc trzeba nadpisać wprost)
   ═══════════════════════════════════════════ */

/* Tło body — gradient z hardkodowanymi wartościami */
html, body {
  background-color: var(--nr-bg);
}
body {
  background-color: var(--nr-bg);
  background-image: var(--nr-gradient-page);
}

/* Klasa na <body> — hardkodowana zamiast var() */
.bg-\[\#18181b\] { background-color: var(--nr-bg); }


/* ── Marginesy boczne — desktop ─────────────
   Zwiększone z 32px → 56px na ekranach ≥ 981px  */
@media (min-width: 981px) {
  #nr-scroll-root {
    padding-left:  56px;
    padding-right: 56px;
  }
}

/* ── Lista żywic: liczba widocznych wierszy ──
   Desktop: 8 wierszy × 52px = 416px
   Mobile:  5 wierszy × 74px = 370px          */
.nr-layout-resin .nr-resin-rows {
  max-height: 416px;
}
@media (max-width: 980px) {
  .nr-layout-resin .nr-resin-rows {
    max-height: 370px;
  }
}

/* ── Uproszczenie kart barwników — chowamy nadmiarowe elementy ── */

/* Rząd flag (Głębokość / Utwardzanie / Opada / Warstwy) — za dużo danych naraz */
.nr-pig-card-flags { display: none; }

/* nr-page-shell::after — tworzy widoczną linię odcięcia */
.nr-page-shell::after {
  display: none;
}

/* ── Ujednolicenie border-radius z resztą strony (8px) ── */
/* Wewnętrzny panel sekcji wsparcia — był 28px */
.nr-support-cta__inner {
  border-radius: 8px;
}
/* Przyciski CTA w boksach reklamowych — były 12px */
.nr-cta-btn {
  border-radius: 8px;
}
/* Przyciski eksportu — były 22px */
.nr-export-btn {
  border-radius: 8px;
}

/* ═══════════════════════════════════════════
   BUTTON TONE OVERRIDES
   Specyficzność #root button (0,1,1) jest wyższa niż nasze klasy (0,1,0).
   Musimy użyć #root button.nr-* żeby wygrać.
   ═══════════════════════════════════════════ */

#root button.nr-btn-active,
#nr-modal-root button.nr-btn-active,
.nr-btn-active {
  background: var(--nr-surface-control-active);
  border-color: var(--nr-border-control-active);
  color: var(--nr-text);
}

#root button.nr-btn-idle,
#nr-modal-root button.nr-btn-idle,
.nr-btn-idle {
  background: var(--nr-surface-control-idle);
  border-color: var(--nr-border-soft-plus);
  color: var(--nr-text-sec);
}
#root button.nr-btn-idle:hover,
#nr-modal-root button.nr-btn-idle:hover,
.nr-btn-idle:hover {
  background: var(--nr-surface-control-active);
}

#root button.nr-btn-hint-lime,
#nr-modal-root button.nr-btn-hint-lime,
.nr-btn-hint-lime {
  background: var(--nr-surface-success-ui);
  border-color: var(--nr-success-brd);
  color: var(--nr-success);
}

#root button.nr-btn-accent-active,
#nr-modal-root button.nr-btn-accent-active,
.nr-btn-accent-active {
  background: var(--nr-surface-accent-cta);
  border-color: var(--nr-border-accent-strong);
  color: var(--nr-text-contrast);
}

/* Hover overrides for action buttons */
#root button.nr-hover-faint:hover,
.nr-hover-faint:hover {
  background: var(--nr-surface-hover-faint);
}
#root button.nr-hover-subtle:hover,
.nr-hover-subtle:hover {
  background: var(--nr-surface-hover);
}
#root button.nr-hover-mid:hover,
.nr-hover-mid:hover {
  background: var(--nr-surface-hover-strong);
}
#root button.nr-hover-brd:hover,
.nr-hover-brd:hover {
  background: var(--nr-surface-hover-brd);
}
#root button.nr-hover-accent:hover,
.nr-hover-accent:hover {
  background: var(--nr-surface-accent-cta);
  border-color: var(--nr-border-accent-strong);
}
#root button.nr-hover-success:hover,
#root button.nr-hover-emerald:hover,
#root button.nr-hover-lime:hover,
.nr-hover-success:hover,
.nr-hover-emerald:hover,
.nr-hover-lime:hover {
  background: var(--nr-surface-success-ui);
  border-color: var(--nr-success-brd);
}
#root button.nr-hover-amber:hover,
.nr-hover-amber:hover,
.nr-hover-amber-faint:hover {
  background: var(--nr-warning-soft);
  border-color: var(--nr-warning-brd);
}
#root button.nr-hover-sky:hover,
.nr-hover-sky:hover {
  background: var(--nr-info-soft);
  border-color: var(--nr-info-brd);
}

/* Disabled buttons */
#root button.nr-disabled-dim:disabled { opacity: 0.35; }
#root button.nr-disabled-60:disabled  { opacity: 0.60; }
#root button.nr-disabled-na:disabled  { cursor: not-allowed; }

/* ═══════════════════════════════════════════
   RISK ALERT PANEL LEVELS
   ═══════════════════════════════════════════ */
.nr-risk-critical {
  background: radial-gradient(120% 150% at 0% 0%, var(--nr-danger-soft) 0%, var(--nr-surface-accent-strong) 42%, var(--nr-surface-mask) 100%);
  border-color: var(--nr-danger-brd);
}
.nr-risk-warning {
  background: linear-gradient(to right, var(--nr-surface-warning-strong), var(--nr-surface-mask), var(--nr-surface-overlay-soft));
  border-color: var(--nr-warning-brd);
}
.nr-risk-info {
  background: linear-gradient(to right, var(--nr-surface-info-strong), var(--nr-surface-mask), var(--nr-surface-overlay-soft));
  border-color: var(--nr-info-brd);
}
.nr-risk-none {
  background: linear-gradient(to right, var(--nr-surface-overlay-soft), var(--nr-surface-mask), var(--nr-surface-overlay-soft));
  border-color: var(--nr-border-mid);
}

/* --- nr-utils.css --- */
/*
 * NeuroResin Studio — nr-* Utility Classes
 * Lokalny zestaw utility klas projektu.
 * Ładowane PO colors.css — korzysta z tokenów --nr-*.
 *
 * Grupy:
 *   1. Layout (display, position, flex, grid)
 *   2. Sizing (w, h, min, max)
 *   3. Spacing (p, m, gap, space-y)
 *   4. Typography (font, text, tracking, leading)
 *   5. Colors — tekst
 *   6. Backgrounds
 *   7. Borders
 *   8. States (hover, disabled, active)
 *   9. Button tones (toolbar)
 *  10. Misc (opacity, z-index, positioning, overflow, cursor, etc.)
 */

/* ═══════════════════════════════════════════
   1. LAYOUT
   ═══════════════════════════════════════════ */

/* Display */
.nr-flex        { display: flex }
.nr-inline-flex { display: inline-flex }
.nr-flex-col    { flex-direction: column }
.nr-flex-row    { flex-direction: row }
.nr-flex-wrap   { flex-wrap: wrap }
.nr-flex-nowrap { flex-wrap: nowrap }
.nr-flex-1      { flex: 1 1 0%; min-width: 0 }
.nr-shrink-0    { flex-shrink: 0 }
.nr-min-w-0     { min-width: 0 }

.nr-grid          { display: grid }
.nr-grid-cols-1   { grid-template-columns: repeat(1, minmax(0, 1fr)) }
.nr-grid-cols-2   { grid-template-columns: repeat(2, minmax(0, 1fr)) }
.nr-grid-cols-3   { grid-template-columns: repeat(3, minmax(0, 1fr)) }
.nr-grid-cols-12  { grid-template-columns: repeat(12, minmax(0, 1fr)) }

.nr-col-span-12 { grid-column: span 12 / span 12 }
.nr-col-span-2  { grid-column: span 2 / span 2 }

.nr-block        { display: block }
.nr-inline-block { display: inline-block }
.nr-hidden       { display: none }

/* Position */
.nr-relative    { position: relative }
.nr-absolute    { position: absolute }
.nr-fixed       { position: fixed }
.nr-inset-0     { inset: 0 }
.nr-top-0       { top: 0 }
.nr-top-3       { top: 12px }
.nr-top-4       { top: 16px }
.nr-right-0     { right: 0 }
.nr-right-3     { right: 12px }
.nr-right-4     { right: 16px }
.nr-left-0      { left: 0 }

/* Justify / Align */
.nr-justify-between { justify-content: space-between }
.nr-justify-center  { justify-content: center }
.nr-justify-start   { justify-content: flex-start }
.nr-items-center    { align-items: center }
.nr-items-start     { align-items: flex-start }
.nr-items-end       { align-items: flex-end }

/* App shell */
.nr-app-shell {
  min-height: 100svh;
  background-color: var(--nr-bg);
  color: var(--nr-text);
  font-family: system-ui, -apple-system, sans-serif;
}

/* (nr-flex-1 defined above — no duplicate) */

/* Scroll areas */
.nr-overflow-hidden   { overflow: hidden }
.nr-overflow-visible  { overflow: visible }
.nr-overflow-y-auto   { overflow-y: auto }
.nr-overflow-x-auto   { overflow-x: auto }

/* ═══════════════════════════════════════════
   2. SIZING
   ═══════════════════════════════════════════ */

.nr-w-full  { width: 100% }
.nr-w-auto  { width: auto }
.nr-w-0     { width: 0 }
.nr-w-px    { width: 2px }
.nr-w-8     { width: 32px }
.nr-w-9     { width: 36px }
.nr-w-14    { width: 56px }
.nr-w-24    { width: 96px }

.nr-h-full  { height: 100% }
.nr-h-auto  { height: auto }
.nr-h-px2   { height: 2px }
.nr-h-1     { height: 4px }
.nr-h-2     { height: 8px }
.nr-h-7     { height: 28px }
.nr-h-8     { height: 32px }
.nr-h-9     { height: 36px }
.nr-h-10    { height: 40px }
.nr-h-11    { height: 44px }
.nr-h-12    { height: 48px }
.nr-h-40    { height: 160px }
.nr-min-h-0 { min-height: 0 }

.nr-min-w-84  { min-width: 84px }
.nr-min-w-28  { min-width: 28px }
.nr-min-w-200 { min-width: 200px }

.nr-max-w-full { max-width: 100% }
.nr-max-w-6xl  { max-width: 72rem }
.nr-max-w-620  { max-width: 620px }
.nr-max-w-980  { max-width: 980px }
.nr-max-h-180  { max-height: 180px }
.nr-max-h-full { max-height: 100% }
.nr-w-12       { width: 48px }

/* ═══════════════════════════════════════════
   3. SPACING
   ═══════════════════════════════════════════ */

/* Gap */
.nr-gap-1 { gap: 4px }
.nr-gap-2 { gap: 8px }
.nr-gap-3 { gap: 12px }
.nr-gap-4 { gap: 16px }
.nr-gap-6 { gap: 24px }

/* Padding */
.nr-p-0  { padding: 0 }
.nr-p-2  { padding: 8px }
.nr-p-3  { padding: 12px }
.nr-p-4  { padding: 16px }
.nr-p-5  { padding: 20px }
.nr-p-6  { padding: 24px }
.nr-p-8  { padding: 32px }

.nr-px-1 { padding-left: 4px;  padding-right: 4px }
.nr-px-2 { padding-left: 8px;  padding-right: 8px }
.nr-px-3 { padding-left: 12px; padding-right: 12px }
.nr-px-4 { padding-left: 16px; padding-right: 16px }
.nr-px-5 { padding-left: 20px; padding-right: 20px }
.nr-px-6 { padding-left: 24px; padding-right: 24px }
.nr-px-8 { padding-left: 32px; padding-right: 32px }

.nr-py-1 { padding-top: 4px;  padding-bottom: 4px }
.nr-py-2 { padding-top: 8px;  padding-bottom: 8px }
.nr-py-3 { padding-top: 12px; padding-bottom: 12px }
.nr-py-4 { padding-top: 16px; padding-bottom: 16px }

.nr-pt-2  { padding-top: 8px }
.nr-pt-3  { padding-top: 12px }
.nr-pt-4  { padding-top: 16px }
.nr-pt-12 { padding-top: 48px }

.nr-pb-4  { padding-bottom: 16px }
.nr-pb-20 { padding-bottom: 80px }

.nr-pl-1  { padding-left: 4px }
.nr-pl-5  { padding-left: 20px }
.nr-pr-14 { padding-right: 56px }

/* Margin */
.nr-mt-1  { margin-top: 4px }
.nr-mt-2  { margin-top: 8px }
.nr-mt-3  { margin-top: 12px }
.nr-mt-4  { margin-top: 16px }
.nr-mt-5  { margin-top: 20px }
.nr-mt-6  { margin-top: 24px }

.nr-mb-1  { margin-bottom: 4px }
.nr-mb-2  { margin-bottom: 8px }
.nr-mb-3  { margin-bottom: 12px }
.nr-mb-4  { margin-bottom: 16px }
.nr-mb-5  { margin-bottom: 20px }
.nr-mb-6  { margin-bottom: 24px }

.nr-mx-auto { margin-left: auto; margin-right: auto }
.nr-mx-1    { margin-left: 4px;  margin-right: 4px }
.nr-ml-2    { margin-left: 8px }
.nr-mr-1    { margin-right: 4px }

/* Space-y (gap between children using margin) */
.nr-space-y-1 > * + * { margin-top: 4px }
.nr-space-y-2 > * + * { margin-top: 8px }
.nr-space-y-3 > * + * { margin-top: 12px }
.nr-space-y-4 > * + * { margin-top: 16px }
.nr-space-y-6 > * + * { margin-top: 24px }

/* ═══════════════════════════════════════════
   4. TYPOGRAPHY
   ═══════════════════════════════════════════ */

/* Font sizes */
.nr-text-3xs { font-size: 9px }
.nr-text-2xs { font-size: 10px }
.nr-text-xs  { font-size: 11px }
.nr-text-sm  { font-size: 12px }
.nr-text-md  { font-size: 13px }
.nr-text-base{ font-size: 14px }
.nr-text-lg  { font-size: 15px }
.nr-text-xl  { font-size: 18px }
.nr-text-2xl { font-size: 22px }
.nr-text-3xl { font-size: 28px }
.nr-text-huge{ font-size: 120px }

/* Font weights */
.nr-fw-500 { font-weight: 500 }
.nr-fw-600 { font-weight: 600 }
.nr-fw-700 { font-weight: 700 }
.nr-fw-900 { font-weight: 900 }

/* Text transform / case */
.nr-uppercase   { text-transform: uppercase }
.nr-normal-case { text-transform: none }
.nr-italic      { font-style: italic }
.nr-font-mono   { font-family: ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, monospace }

/* Letter spacing */
.nr-tracking-tighter { letter-spacing: -0.05em }
.nr-tracking-tight   { letter-spacing: -0.025em }
.nr-tracking-xs      { letter-spacing: 0.03em }
.nr-tracking-sm      { letter-spacing: 0.06em }
.nr-tracking-md      { letter-spacing: 0.09em }
.nr-tracking-lg      { letter-spacing: 0.12em }
.nr-tracking-xl      { letter-spacing: 0.16em }
.nr-tracking-2xl     { letter-spacing: 0.22em }

/* Line height */
.nr-leading-none  { line-height: 1 }
.nr-leading-tight { line-height: 1.25 }
.nr-leading-loose { line-height: 1.7 }

/* Text align */
.nr-text-center { text-align: center }

/* Text overflow */
.nr-truncate       { overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
.nr-text-ellipsis  { text-overflow: ellipsis }
.nr-nowrap         { white-space: nowrap }
.nr-break-words    { word-break: break-word }
.nr-break-all      { word-break: break-all }

/* ═══════════════════════════════════════════
   5. TEXT COLORS
   ═══════════════════════════════════════════ */

.nr-col-text    { color: var(--nr-text) }
.nr-col-sec     { color: var(--nr-text-sec) }
.nr-col-muted   { color: var(--nr-muted) }
.nr-col-accent  { color: var(--nr-accent) }
.nr-col-inverse { color: var(--nr-bg) }

/* Accent shades */
.nr-col-accent-lt   { color: #ffd8d4 }
.nr-col-accent-soft { color: var(--nr-accent-soft) }

/* Status */
.nr-col-success  { color: var(--nr-success) }
.nr-col-danger   { color: var(--nr-danger) }
.nr-col-warn     { color: var(--nr-warning) }

/* Palette aliases mapped back to global roles */
.nr-col-light   { color: var(--nr-text-soft-alpha) }
.nr-col-green,
.nr-col-emerald,
.nr-col-lime    { color: var(--nr-success) }
.nr-col-yellow,
.nr-col-yellow-dk,
.nr-col-amber,
.nr-col-amber-lt{ color: var(--nr-warning) }
.nr-col-sky     { color: var(--nr-info) }
.nr-col-rose,
.nr-col-rose-lt { color: var(--nr-danger) }
.nr-col-rose-dk { color: var(--nr-danger) }
.nr-col-dark,
.nr-col-zinc    { color: var(--nr-text-sec) }

/* ═══════════════════════════════════════════
   6. BACKGROUNDS
   ═══════════════════════════════════════════ */

.nr-bg-subtle       { background: var(--nr-input-bg) }
.nr-bg-hover        { background: var(--nr-surface-chip-strong) }
.nr-bg-active       { background: var(--nr-surface-control-active) }
.nr-bg-black        { background: #000 }
.nr-bg-white        { background: #fff }
.nr-bg-abyss        { background: var(--nr-surface-abyss) }
.nr-bg-darkest      { background: var(--nr-surface-darkest) }
.nr-bg-scrim        { background: var(--nr-scrim-strong) }
.nr-bg-scrim-sm     { background: var(--nr-scrim-soft) }
.nr-bg-scrim-md     { background: var(--nr-scrim-mid) }
.nr-bg-grad-b       { background-image: linear-gradient(to bottom, var(--from,transparent), var(--to,transparent)) }
.nr-bg-grad-r       { background-image: linear-gradient(to right, var(--from,transparent), var(--to,transparent)) }

/* Accent */
.nr-bg-accent-solid { background: var(--nr-accent) }
.nr-bg-accent-dim   { background: var(--nr-accent-dim) }
.nr-bg-accent-faint { background: var(--nr-surface-accent-strong) }
.nr-bg-danger-dim   { background: var(--nr-danger-soft) }
.nr-bg-danger-faint { background: var(--nr-danger-soft) }
.nr-bg-danger-grad  { background: linear-gradient(180deg, var(--nr-danger-soft), var(--nr-surface-mask)) }

/* Success / Emerald */
.nr-bg-success-solid,
.nr-bg-emerald,
.nr-bg-lime          { background: var(--nr-success) }
.nr-bg-success-faint,
.nr-bg-emerald-dim   { background: var(--nr-success-soft) }

/* Amber / Sky */
.nr-bg-amber-dim,
.nr-bg-amber-faint   { background: var(--nr-warning-soft) }
.nr-bg-sky-dim       { background: var(--nr-info-soft) }

/* ═══════════════════════════════════════════
   7. BORDERS
   ═══════════════════════════════════════════ */

/* Standalone border utility — adds box border */
.nr-brd-box  { border: 1px solid var(--nr-border) }
.nr-brd      { border-color: var(--nr-border) }
.nr-brd-mid  { border-color: var(--nr-border-emphasis) }
.nr-brd-strong { border-color: var(--nr-border-emphasis-strong) }
.nr-brd-faint  { border-color: var(--nr-border-faint) }

/* Directional */
.nr-border-t { border-top: 1px solid var(--nr-border) }
.nr-border-b { border-bottom: 1px solid var(--nr-border) }

/* Colored borders */
.nr-border-success,
.nr-border-emerald,
.nr-border-lime         { border-color: var(--nr-success-brd) }
.nr-border-success-dim  { border-color: var(--nr-success-soft) }
.nr-border-amber,
.nr-border-amber-md,
.nr-border-yellow,
.nr-border-yellow-md    { border-color: var(--nr-warning-brd) }
.nr-border-sky          { border-color: var(--nr-info-brd) }
.nr-border-teal         { border-color: var(--nr-info-brd) }
.nr-border-rose,
.nr-border-danger       { border-color: var(--nr-danger-brd) }
.nr-border-zinc         { border-color: var(--nr-border-solid) }
.nr-border-accent       { border-color: var(--nr-border-accent-soft) }
.nr-border-accent-md    { border-color: var(--nr-border-accent-ui) }
.nr-border-accent-dk    { border-color: var(--nr-border-accent-ui) }
.nr-border-accent-strong{ border-color: var(--nr-border-accent-strong) }

/* Radius */
.nr-radius-sm   { border-radius: 8px }
.nr-radius-md   { border-radius: 10px }
.nr-radius-lg   { border-radius: 14px }
.nr-radius-xl   { border-radius: 22px }
.nr-radius-2xl  { border-radius: 28px }
.nr-radius-full { border-radius: 9999px }

/* ═══════════════════════════════════════════
   8. STATES — hover / disabled / active
   ═══════════════════════════════════════════ */

/* Hover backgrounds */
.nr-hover-zinc:hover     { background: #e4e4e7 }

/* Disabled */
.nr-disabled-dim:disabled { opacity: 0.35 }
.nr-disabled-60:disabled  { opacity: 0.60 }
.nr-disabled-na:disabled  { cursor: not-allowed }

/* Active press effect */
.nr-active-press:active    { transform: scale(0.99) }
.nr-active-press-sm:active { transform: scale(0.98) }

/* ═══════════════════════════════════════════
   9. TOOLBAR BUTTON TONES
   ═══════════════════════════════════════════ */

/* Active / idle / hint / accent states are defined once above with shared root-button selectors. */

/* ═══════════════════════════════════════════
   10. MISC
   ═══════════════════════════════════════════ */

/* Opacity */
.nr-opacity-faint { opacity: 0.04 }
.nr-opacity-35    { opacity: 0.35 }
.nr-opacity-50    { opacity: 0.50 }
.nr-opacity-60    { opacity: 0.60 }

/* Z-index */
.nr-z-20       { z-index: 20 }
.nr-z-30       { z-index: 30 }
.nr-z-dropdown { z-index: 200 }
.nr-z-modal    { z-index: 9998 }
.nr-z-max      { z-index: 9999 }

/* Shadows */
.nr-shadow-inset { box-shadow: var(--nr-shadow-inset-ui) }
.nr-shadow-lg    { box-shadow: var(--nr-shadow-utility-lg) }
.nr-shadow-xl    { box-shadow: var(--nr-shadow-utility-xl) }
.nr-shadow-2xl   { box-shadow: var(--nr-shadow-utility-2xl) }
.nr-shadow-yellow{ box-shadow: 0 4px 16px var(--nr-warning-soft) }

/* Cursor */
.nr-cursor-pointer   { cursor: pointer }
.nr-cursor-default   { cursor: default }
.nr-cursor-na        { cursor: not-allowed }
.nr-cursor-crosshair { cursor: crosshair }
.nr-touch-none       { touch-action: none }
.nr-cursor-default   { cursor: default }

/* Pointer events */
.nr-pointer-none  { pointer-events: none }
.nr-pointer-auto  { pointer-events: auto }

/* Misc */
.nr-select-none   { user-select: none }
.nr-resize-none   { resize: none }
.nr-outline-none  { outline: none }
.nr-transition    { transition: background .15s, color .15s, border-color .15s, opacity .15s }
.nr-duration-500  { transition-duration: 500ms }
.nr-rotate-12     { transform: rotate(12deg) }

/* Overflow visible helper */
.nr-overflow-visible { overflow: visible }

/* Typography extras */
.nr-tabular-nums { font-variant-numeric: tabular-nums }
.nr-leading-snug { line-height: 1.375 }

/* Extra text sizes */
.nr-text-3xl { font-size: 28px }

/* ═══════════════════════════════════════════
   11. RESPONSIVE UTILITIES
   (breakpoint: 768px = md, 640px = sm, 1024px = lg)
   ═══════════════════════════════════════════ */

@media (min-width: 640px) {
  .nr-sm-grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)) }
}

@media (min-width: 768px) {
  .nr-md-flex-row      { flex-direction: row }
  .nr-md-items-center  { align-items: center }
  .nr-md-items-start   { align-items: flex-start }
  .nr-md-items-end     { align-items: flex-end }
  .nr-md-justify-between { justify-content: space-between }
  .nr-md-justify-end   { justify-content: flex-end }
  .nr-md-grid-cols-2   { grid-template-columns: repeat(2, minmax(0, 1fr)) }
  .nr-md-grid-cols-3   { grid-template-columns: repeat(3, minmax(0, 1fr)) }
  .nr-md-h-90vh        { height: 90svh }
}

@media (min-width: 1024px) {
  .nr-lg-col-span-4  { grid-column: span 4 / span 4 }
  .nr-lg-col-span-6  { grid-column: span 6 / span 6 }
}

/* --- global-site-nav.css --- */
/* Unified header for subpages - aligned with index hero header style */

#global-site-header{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  padding: 1.5rem 3rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  z-index: 4000;
  transition: transform .24s ease, opacity .24s ease, padding .24s ease, background .24s ease;
  border-bottom: 1px solid transparent;
  background: var(--nr-surface-overlay);
  backdrop-filter: blur(15px);
  -webkit-backdrop-filter: blur(15px);
  border-bottom: 1px solid var(--nr-border-faint);
  box-shadow: var(--nr-shadow-header);
}

#global-site-header.scrolled{
  padding: 1rem 3rem;
}

#global-site-header.is-hidden{
  transform: translateY(calc(-100% - 12px));
  opacity: 0;
}

#global-site-header .gsn-brand{
  display: inline-flex;
  align-items: center;
  gap: .75rem;
  color: var(--nr-text-contrast);
  text-decoration: none;
  font-family: 'Inter',sans-serif;
  background: none;
}

#global-site-header .gsn-brand-icon{
  color: var(--nr-accent);
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

#global-site-header .gsn-brand-lines{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1;
}

#global-site-header .gsn-brand-main{
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

#global-site-header .gsn-brand-beta-soft{
  margin-top: 3px;
  font-size: .56rem;
  font-weight: 800;
  letter-spacing: .18em;
  text-transform: uppercase;
  line-height: 1;
  background: linear-gradient(90deg, var(--nr-accent), var(--nr-accent-soft));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  opacity: .72;
}

#global-site-header .gsn-brand-sub{
  display: flex;
  justify-content: space-between;
  width: 100%;
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--nr-text-subtle);
  margin-top: 2px;
  text-transform: uppercase;
}

#global-site-header .gsn-desktop-nav{
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-radius: 14px;
  border: 1px solid var(--nr-border-mid);
  background: var(--nr-surface-overlay);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  box-shadow: var(--nr-shadow-dropdown);
  overflow: visible;
}

#global-site-header .gsn-link,
#global-site-header .gsn-help-trigger{
  color: var(--nr-text-subtle-strong);
  text-decoration: none;
  border: 0;
  outline: 0;
  cursor: pointer;
  background: transparent;
  font-family: 'Sora','Inter',sans-serif;
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
  padding: 8px 10px;
  border-radius: 8px;
  transition: background .18s ease, color .18s ease;
  white-space: nowrap;
}

#global-site-header .gsn-link:hover,
#global-site-header .gsn-link.is-active,
#global-site-header .gsn-help-trigger:hover,
#global-site-header .gsn-help-wrap:focus-within .gsn-help-trigger{
  background: var(--nr-surface-chip);
  color: var(--nr-text-contrast);
}

#global-site-header .gsn-help-wrap{
  position: relative;
}

#global-site-header .gsn-docs-wrap{
  position: relative;
  display: inline-flex;
  align-items: center;
}
#global-site-header .gsn-docs-wrap::after{
  content:'';
  position:absolute;
  left:0;
  top:100%;
  width:100%;
  height:12px;
}

#global-site-header .gsn-docs-menu{
  position: absolute;
  top: calc(100% + 2px);
  left: 0;
  min-width: 200px;
  padding: 8px;
  border-radius: 12px;
  border: 1px solid var(--nr-border-stronger);
  background: var(--nr-surface-overlay-strong);
  box-shadow: var(--nr-shadow-dropdown);
  display: none;
  z-index: 4100;
}

#global-site-header .gsn-docs-wrap:hover .gsn-docs-menu,
#global-site-header .gsn-docs-wrap:focus-within .gsn-docs-menu,
#global-site-header .gsn-docs-wrap.is-open .gsn-docs-menu{
  display: block;
}

#global-site-header .gsn-docs-item{
  display: block;
  width: 100%;
  border: 0;
  text-align: left;
  text-decoration: none;
  background: transparent;
  color: var(--nr-text-soft-alpha);
  font-family: 'Inter',sans-serif;
  font-size: 12px;
  font-weight: 700;
  padding: 8px 10px;
  border-radius: 8px;
}

#global-site-header .gsn-docs-item:hover,
#global-site-header .gsn-docs-item.is-active{
  background: var(--nr-surface-chip-strong);
  color: var(--nr-text-contrast);
}

#global-site-header .gsn-help-menu{
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 220px;
  padding: 8px;
  border-radius: 12px;
  border: 1px solid var(--nr-border-stronger);
  background: var(--nr-surface-overlay-strong);
  box-shadow: var(--nr-shadow-dropdown);
  display: none;
  z-index: 4100;
}

#global-site-header .gsn-help-wrap:hover .gsn-help-menu,
#global-site-header .gsn-help-wrap:focus-within .gsn-help-menu{
  display: block;
}

#global-site-header .gsn-help-item{
  display: block;
  width: 100%;
  border: 0;
  cursor: pointer;
  text-align: left;
  text-decoration: none;
  background: transparent;
  color: var(--nr-text-soft-alpha);
  font-family: 'Inter',sans-serif;
  font-size: 12px;
  font-weight: 700;
  padding: 8px 10px;
  border-radius: 8px;
}

#global-site-header .gsn-help-item:hover{
  background: var(--nr-surface-chip-strong);
}

#global-site-header .gsn-toggle{
  display: none;
  cursor: pointer;
  width: 46px;
  height: 46px;
  align-items: center;
  justify-content: center;
  color: var(--nr-text-contrast);
  background: var(--nr-surface-overlay-soft);
  border: 1px solid var(--nr-border-stronger);
  border-radius: 14px;
  box-shadow: var(--nr-shadow-dropdown);
  backdrop-filter: blur(10px);
}

#global-site-header .gsn-toggle svg{
  width: 28px;
  height: 28px;
}

#global-site-header .gsn-mobile-panel{
  position: absolute;
  top: calc(100% + 10px);
  right: 1rem;
  width: min(420px, calc(100% - 2rem));
  display: block;
  opacity: 0;
  transform: translateY(-8px);
  pointer-events: none;
  transition: opacity .2s ease, transform .2s ease;
  padding: .9rem;
  border-radius: 24px;
  border: 1px solid var(--nr-border-stronger);
  background: var(--nr-surface-mask);
  box-shadow: var(--nr-shadow-mobile-panel);
  z-index: 4200;
}

#global-site-header.is-open .gsn-mobile-panel{
  opacity: 1;
  transform: translateY(0);
  pointer-events: all;
}

#global-site-header .gsn-mobile-links{
  display: grid;
  gap: .18rem;
}

#global-site-header .gsn-mobile-link{
  display: flex;
  align-items: center;
  justify-content: space-between;
  text-decoration: none;
  color: var(--nr-text-soft-alpha);
  font-size: clamp(1rem,2.1vw,1.22rem);
  font-weight: 650;
  line-height: 1.15;
  padding: .62rem .14rem;
  border: 1px solid var(--nr-border-strong-ui);
  border-radius: 14px;
}

#global-site-header .gsn-mobile-link.is-active{
  color: var(--nr-accent);
  border-color: var(--nr-border-accent-strong);
}

#global-site-header .gsn-mobile-dot{
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--nr-accent);
  opacity: .35;
}

#global-site-header .gsn-mobile-link.is-active .gsn-mobile-dot{
  opacity: 1;
}

.has-global-nav{
  padding-top: 96px;
}

/* docs sticky sidebar compensation */
.has-global-nav .docs-sidebar{
  top: 96px;
  height: calc(100vh - 96px);
}

@media (max-width: 1200px){
  #global-site-header{
    padding: 1.2rem 1.6rem;
  }
  #global-site-header.scrolled{
    padding: .9rem 1.6rem;
  }
  #global-site-header .gsn-desktop-nav{
    gap: 6px;
    padding: 8px 10px;
  }
  #global-site-header .gsn-link,
  #global-site-header .gsn-help-trigger{
    font-size: 11px;
    letter-spacing: .08em;
    padding: 8px 8px;
  }
}

@media (max-width: 980px){
  #global-site-header{
    padding: 1rem;
  }
  #global-site-header.scrolled{
    padding: .8rem 1rem;
  }
  #global-site-header .gsn-desktop-nav{
    display: none;
  }
  #global-site-header .gsn-toggle{
    display: inline-flex;
  }
  #global-site-header .gsn-brand-main{
    font-size: .88rem;
  }
  #global-site-header .gsn-brand-sub{
    font-size: .54rem;
  }
  .has-global-nav{
    padding-top: 84px;
  }
  .has-global-nav .docs-sidebar{
    top: 84px;
    height: calc(100vh - 84px);
  }
}

/* --- site-footer.css (editorial grid layout) --- */
#nr-footer-v4,
#nr-footer-v4 *{
  box-sizing:border-box;
  margin:0;
  padding:0;
}

#nr-footer-v4{
  --ft-paper:var(--nr-bg-deep);
  --ft-panel:var(--nr-gradient-panel);
  --ft-panel-soft:var(--nr-surface-soft);
  --ft-panel-strong:var(--nr-surface-chip);
  --ft-ink:var(--nr-text);
  --ft-muted:var(--nr-text-subtle);
  --ft-muted-strong:var(--nr-text-subtle-strong);
  --ft-line:var(--nr-border-soft-plus);
  --ft-line-strong:var(--nr-border-stronger);
  --ft-accent:var(--nr-accent-soft);
  margin-top:48px;
  width:100%;
  color:var(--ft-ink);
  background:
    radial-gradient(900px 360px at 18% 0%, var(--nr-surface-accent), transparent 62%),
    linear-gradient(180deg, var(--nr-bg-strong), var(--nr-bg-deep));
  border-top:1px solid var(--ft-line);
  border-bottom:1px solid var(--ft-line);
  font-family:"Sora","Inter",system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  overflow:hidden;
  container-type:inline-size;
  box-shadow:0 -18px 70px rgba(0,0,0,.22), inset 0 1px 0 var(--nr-border-faint);
}

#nr-footer-v4 a{
  color:inherit;
  text-decoration:none;
}

#nr-footer-v4 .ft-tools{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-bottom:1px solid var(--ft-line);
}

#nr-footer-v4 .ft-tool{
  min-height:150px;
  padding:13px 16px 14px;
  border-right:1px solid var(--ft-line);
  background:linear-gradient(180deg, rgba(255,255,255,.035), rgba(255,255,255,.015));
  display:grid;
  grid-template-rows:auto minmax(46px,1fr) auto;
  align-items:center;
  gap:7px;
  text-align:center;
}

#nr-footer-v4 .ft-tool:last-child{
  border-right:0;
}

#nr-footer-v4 .ft-tool-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  width:100%;
  align-self:start;
  text-align:left;
  font-family:"JetBrains Mono","IBM Plex Mono","Syne Mono",monospace;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--ft-muted-strong);
}

#nr-footer-v4 .ft-tool-icon{
  width:44px;
  height:44px;
  margin:4px auto 2px;
  display:grid;
  place-items:center;
  color:var(--nr-text-muted-alpha);
}

#nr-footer-v4 .ft-tool-icon svg{
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}

#nr-footer-v4 .ft-tool p{
  max-width:26ch;
  margin:0 auto;
  color:var(--ft-muted);
  font-size:10.5px;
  line-height:1.42;
  letter-spacing:0;
  text-align:center;
}

#nr-footer-v4 .ft-bottom-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
}

#nr-footer-v4 .ft-info,
#nr-footer-v4 .ft-system{
  min-height:198px;
  padding:16px;
  background:var(--ft-panel-soft);
}

#nr-footer-v4 .ft-info{
  border-right:1px solid var(--ft-line);
}

#nr-footer-v4 .ft-info h3,
#nr-footer-v4 .ft-system h3{
  font-size:16px;
  font-weight:650;
  letter-spacing:0;
  line-height:1.15;
}

#nr-footer-v4 .ft-meta{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:9px;
  margin:11px 0 12px;
  font-family:"JetBrains Mono","IBM Plex Mono","Syne Mono",monospace;
  font-size:9px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ft-accent);
}

#nr-footer-v4 .ft-info p{
  margin-bottom:8px;
  color:var(--ft-muted);
  font-size:10.5px;
  line-height:1.45;
  text-align:left;
}

#nr-footer-v4 .ft-legal-links{
  margin-top:10px;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  font-family:"JetBrains Mono","IBM Plex Mono","Syne Mono",monospace;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

#nr-footer-v4 .ft-legal-links a,
#nr-footer-v4 .ft-pill{
  border:1px solid var(--nr-border-accent-ui);
  border-radius:8px;
  padding:6px 8px;
  color:var(--ft-accent);
  background:var(--nr-surface-accent);
}

#nr-footer-v4 .ft-system{
  display:flex;
  flex-direction:column;
  gap:10px;
}

#nr-footer-v4 .ft-system-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
}

#nr-footer-v4 .ft-system-top span{
  color:var(--ft-muted-strong);
  font-family:"JetBrains Mono","IBM Plex Mono","Syne Mono",monospace;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

#nr-footer-v4 .ft-status-panel{
  display:grid;
  gap:7px;
  padding:10px;
  border:1px solid var(--ft-line-strong);
  border-radius:8px;
  background:var(--ft-panel-strong);
}

#nr-footer-v4 .ft-status-label{
  color:var(--ft-muted);
  font-family:"JetBrains Mono","IBM Plex Mono","Syne Mono",monospace;
  font-size:8px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
}

#nr-footer-v4 .ft-badges,
#nr-footer-v4 .ft-security-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

#nr-footer-v4 .badge{
  min-height:25px;
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:5px 8px;
  border-radius:8px;
  border:1px solid var(--ft-line-strong);
  background:rgba(255,255,255,.035);
  color:var(--ft-muted-strong);
  font-family:"JetBrains Mono","IBM Plex Mono","Syne Mono",monospace;
  font-size:8.5px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  white-space:nowrap;
}

#nr-footer-v4 .ft-disclaimer{
  border-top:1px solid var(--ft-line);
  display:grid;
  grid-template-columns:1.35fr repeat(3,minmax(0,1fr));
  gap:0;
  background:rgba(255,255,255,.018);
}

#nr-footer-v4 .ft-disclaimer p{
  min-width:0;
  padding:9px 12px;
  border-right:1px solid var(--ft-line);
  color:var(--ft-muted);
  font-family:"Sora","Inter",system-ui,sans-serif;
  font-size:9.5px;
  font-weight:550;
  letter-spacing:0;
  line-height:1.4;
  text-transform:none;
}

#nr-footer-v4 .ft-disclaimer p:last-child{
  border-right:0;
}

#nr-footer-v4 .ft-disclaimer span{
  color:var(--ft-ink);
  display:block;
  margin:0 0 4px;
  font-family:"JetBrains Mono","IBM Plex Mono","Syne Mono",monospace;
  font-size:8px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

#nr-footer-v4 .badge-dot{
  width:6px;
  height:6px;
  border-radius:50%;
  flex:0 0 auto;
  background:currentColor;
}

#nr-footer-v4 .badge--online{
  border-color:var(--nr-success-brd);
  background:var(--nr-success-soft);
  color:var(--nr-success);
}

#nr-footer-v4 .badge--online .badge-dot{
  box-shadow:0 0 0 3px var(--nr-success-soft);
  animation:nrFooterBlink 3s ease infinite;
}

#nr-footer-v4 .badge--offline{
  border-color:var(--nr-danger-brd);
  background:var(--nr-danger-soft);
  color:var(--nr-danger);
}

#nr-footer-v4 .badge--checking{
  border-color:var(--nr-warning-brd);
  background:var(--nr-warning-soft);
  color:var(--nr-warning);
}

#nr-footer-v4 .badge--checking .badge-dot{
  box-shadow:0 0 0 3px var(--nr-warning-soft);
  animation:nrFooterBlink 2.2s ease infinite;
}

@keyframes nrFooterBlink{
  0%,100%{opacity:1}
  50%{opacity:.35}
}

#nr-footer-v4 .ft-showcase{
  margin-top:auto;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
}

#nr-footer-v4 .ft-big{
  font-family:"Times New Roman",Times,serif;
  font-size:clamp(2.2rem,4.2vw,3.5rem);
  font-weight:900;
  letter-spacing:0;
  line-height:.82;
  transform:scaleY(1.22) scaleX(.94);
  transform-origin:left bottom;
}

#nr-footer-v4 .ft-stack{
  min-width:128px;
  display:grid;
  gap:6px;
  justify-items:end;
  text-align:right;
  font-family:"JetBrains Mono","IBM Plex Mono","Syne Mono",monospace;
  font-size:9px;
  font-weight:900;
  letter-spacing:.1em;
  line-height:1.45;
  text-transform:uppercase;
}

#nr-footer-v4 .ft-baseline{
  min-height:30px;
  padding:6px clamp(14px,3vw,32px);
  border-top:1px solid var(--ft-line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  color:var(--ft-muted);
  font-family:"JetBrains Mono","IBM Plex Mono","Syne Mono",monospace;
  font-size:9px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

@media (max-width:950px){
  #nr-footer-v4 .ft-tools{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #nr-footer-v4 .ft-tool:nth-child(1),
  #nr-footer-v4 .ft-tool:nth-child(2){
    border-bottom:1px solid var(--ft-line);
  }
  #nr-footer-v4 .ft-tool:nth-child(2),
  #nr-footer-v4 .ft-tool:nth-child(4){
    border-right:0;
  }
  #nr-footer-v4 .ft-bottom-grid{
    grid-template-columns:1fr;
  }
  #nr-footer-v4 .ft-info{
    border-right:0;
    border-bottom:1px solid var(--ft-line);
  }
}

@media (max-width:620px){
  #nr-footer-v4 .ft-tools{
    grid-template-columns:1fr;
  }
  #nr-footer-v4 .ft-tool{
    min-height:140px;
    border-right:0;
    border-bottom:1px solid var(--ft-line);
  }
  #nr-footer-v4 .ft-tool:last-child{
    border-bottom:0;
  }
  #nr-footer-v4 .ft-meta{
    grid-template-columns:1fr;
  }
  #nr-footer-v4 .ft-showcase{
    align-items:flex-start;
    flex-direction:column;
  }
  #nr-footer-v4 .ft-stack{
    justify-items:start;
    text-align:left;
  }
  #nr-footer-v4 .ft-baseline{
    align-items:flex-start;
    flex-direction:column;
  }
  #nr-footer-v4 .ft-disclaimer p{
    font-size:9px;
  }
  #nr-footer-v4 .ft-disclaimer{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  #nr-footer-v4 .ft-disclaimer p:nth-child(2n){
    border-right:0;
  }
  #nr-footer-v4 .ft-disclaimer p:nth-child(-n+2){
    border-bottom:1px solid var(--ft-line);
  }
}

@media (max-width:420px){
  #nr-footer-v4 .badge{
    width:100%;
    justify-content:flex-start;
  }
  #nr-footer-v4 .ft-disclaimer{
    grid-template-columns:1fr;
  }
  #nr-footer-v4 .ft-disclaimer p{
    border-right:0;
    border-bottom:1px solid var(--ft-line);
  }
  #nr-footer-v4 .ft-disclaimer p:last-child{
    border-bottom:0;
  }
}

/* --- site-consent.css --- */
.nr-site-cookie {
  position: fixed;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 2147483200;
  display: none;
  pointer-events: none;
}

.nr-site-cookie.is-visible {
  display: block;
}

.nr-site-cookie__box {
  pointer-events: auto;
  max-width: 860px;
  margin: 0 auto;
  border: 1px solid var(--nr-border-strong-ui);
  border-radius: 24px;
  background:
    radial-gradient(120% 140% at 85% 0%, var(--nr-surface-accent-cta), transparent 44%),
    linear-gradient(180deg, var(--nr-surface-overlay-strong), var(--nr-surface-mask));
  box-shadow: var(--nr-shadow-dropdown);
  padding: 22px 24px 20px;
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.nr-site-cookie__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: end;
}

.nr-site-cookie__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
  font-family: 'Syne Mono', monospace;
  font-size: 11px;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--nr-text-soft-alpha);
}

.nr-site-cookie__dot {
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--nr-accent);
  box-shadow: 0 0 12px var(--nr-border-accent-strong);
}

.nr-site-cookie__title {
  margin: 0 0 8px;
  color: var(--nr-text);
  font-family: 'Sora', 'Inter', system-ui, sans-serif;
  font-size: clamp(1.1rem, 2vw, 1.4rem);
  font-weight: 700;
  line-height: 1.08;
}

.nr-site-cookie__text {
  margin: 0;
  max-width: 64ch;
  color: var(--nr-text-soft-alpha);
  font-size: .96rem;
  line-height: 1.58;
}

.nr-site-cookie__text a {
  color: var(--nr-text);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.nr-site-cookie__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.nr-site-cookie__btn {
  min-width: 150px;
  min-height: 48px;
  padding: 0 18px;
  border-radius: 14px;
  border: 1px solid var(--nr-border-stronger);
  font-family: 'Sora', 'Inter', system-ui, sans-serif;
  font-size: .92rem;
  font-weight: 700;
  letter-spacing: .01em;
  cursor: pointer;
  transition: transform .18s ease, border-color .18s ease, background .18s ease, color .18s ease;
}

.nr-site-cookie__btn:hover {
  transform: translateY(-1px);
}

.nr-site-cookie__btn--ghost {
  background: var(--nr-surface-soft-strong);
  color: var(--nr-text-soft-alpha);
}

.nr-site-cookie__btn--ghost:hover {
  border-color: var(--nr-border-emphasis);
  background: var(--nr-surface-chip-strong);
}

.nr-site-cookie__btn--primary {
  border-color: var(--nr-border-accent-ui);
  background: var(--nr-gradient-accent-cta);
  color: var(--nr-text-contrast);
  box-shadow: var(--nr-shadow-accent-cta);
}

.nr-site-cookie__btn--primary:hover {
  border-color: var(--nr-border-accent-strong);
  box-shadow: var(--nr-shadow-accent-cta);
}

@media (max-width: 860px) {
  .nr-site-cookie {
    left: 12px;
    right: 12px;
    bottom: max(12px, env(safe-area-inset-bottom));
  }

  .nr-site-cookie__box {
    padding: 18px 18px 16px;
    border-radius: 20px;
  }

  .nr-site-cookie__row {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .nr-site-cookie__actions {
    justify-content: stretch;
  }

  .nr-site-cookie__btn {
    width: 100%;
  }
}

/* --- support-cta.css --- */
/* Support CTA — only component-specific rules; layout via nr-* utilities */
.nr-support-cta{
  display:grid;
  grid-template-columns:minmax(300px, .72fr) minmax(0, 1.28fr);
  gap:14px;
  align-items:stretch;
}

.nr-support-cta .nr-card{
  min-height:210px;
}

.nr-support-donate{
  justify-content:center;
}

.nr-support-ad{
  position:relative;
  overflow:hidden;
  min-height:210px;
  border-radius:8px;
  border:1px solid var(--nr-border-soft-plus);
  background:var(--nr-gradient-panel);
  padding:32px 42px;
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(220px, 330px);
  gap:22px;
  align-items:center;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

.nr-support-ad__chart{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity:.82;
}

.nr-support-ad__line{
  filter:drop-shadow(0 0 7px rgba(194,106,97,.22));
}

.nr-support-ad__copy,
.nr-support-ad__actions{
  position:relative;
  z-index:1;
}

.nr-support-ad__kicker{
  display:block;
  margin-bottom:12px;
  color:var(--nr-accent-soft);
  font-family:"Syne Mono", monospace;
  font-size:13px;
  font-weight:900;
  letter-spacing:0;
  text-transform:uppercase;
}

.nr-support-ad__title{
  margin:0 0 8px;
  color:var(--nr-text);
  font-size:30px;
  line-height:1.12;
  font-weight:900;
  letter-spacing:0;
}

.nr-support-ad__text{
  margin:0;
  max-width:720px;
  color:var(--nr-text-subtle);
  font-size:18px;
  line-height:1.45;
  font-weight:650;
}

.nr-support-ad__actions{
  display:grid;
  gap:20px;
}

.nr-support-ad__btn{
  width:100%;
  min-height:78px;
  border-radius:8px;
  font-size:14px;
  letter-spacing:0;
}

@media (max-width: 768px){
  .nr-support-cta .nr-card{
    padding: 20px 16px;
  }

  .nr-support-cta{
    grid-template-columns:1fr;
  }

  .nr-support-ad{
    min-height:0;
    padding:26px 18px;
    grid-template-columns:1fr;
    text-align:left;
  }

  .nr-support-ad__title{
    font-size:24px;
  }

  .nr-support-ad__text{
    font-size:15px;
  }

  .nr-support-ad__btn{
    min-height:54px;
    font-size:12px;
    letter-spacing:0;
  }
}

/* --- pigments-guide.css --- */
.nr-pigments-guide{
  margin-bottom:0;
}

/* ── Typo hero (compact) ────────────────────────────────────────────── */

.nr-pig-hero{
  background:var(--nr-gradient-panel);
  border:1px solid var(--nr-border-accent-soft);
  border-radius:22px;
  padding:24px 28px 22px;
  overflow:hidden;
  box-shadow:var(--nr-shadow-inset-ui);
  margin-bottom:12px;
}

.nr-pig-hero-main{
  display:grid;
  grid-template-columns:minmax(0,1fr) 280px;
  gap:24px;
  align-items:end;
}

.nr-pig-hero-words{
  display:grid;
  gap:4px;
}

.nr-pig-hero-row{
  display:flex;
  align-items:flex-end;
  gap:14px;
  flex-wrap:nowrap;
}

.nr-pig-hero-word{
  font-family:Impact, Haettenschweiler, "Arial Narrow Bold", sans-serif;
  font-size:clamp(52px,8vw,112px);
  line-height:.84;
  letter-spacing:-.07em;
  text-transform:uppercase;
  color:var(--nr-text-soft-alpha);
  font-weight:900;
  white-space:nowrap;
}

.nr-pig-hero-word--sm{
  font-size:clamp(32px,5vw,64px);
  color:var(--nr-text-muted-alpha);
}

.nr-pig-hero-dash{
  flex:1 1 auto;
  height:12px;
  min-width:60px;
  max-width:200px;
  border-radius:999px;
  background:var(--nr-text-soft-alpha);
  transform:translateY(-14px);
}

.nr-pig-hero-aside{
  display:grid;
  gap:12px;
  align-self:end;
  padding-bottom:8px;
}

.nr-pig-hero-copy{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:var(--nr-text-subtle);
  font-weight:700;
  max-width:260px;
}

/* ── Filter bar ────────────────────────────────────────────────────── */

.nr-pig-filterbar{
  display:flex;
  align-items:center;
  gap:8px;
  margin-bottom:12px;
}

.nr-pig-chips{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  justify-content:flex-end;
}

/* ── Filters (reuse existing styles) ─────────────────────────────── */

.nr-pigments-chip,
.nr-pigments-filter,
.nr-pigments-pill {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  text-transform: uppercase;
}

.nr-pigments-chip{
  min-height:22px;
  padding:0 8px;
  border:1px solid var(--nr-border-soft-ui);
  background:var(--nr-surface-soft);
  color:var(--nr-text-soft-alpha);
  font-size:10px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:800;
}

.nr-pigments-filters{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}

.nr-pigments-filter{
  min-height:28px;
  padding:0 10px;
  border:1px solid var(--nr-border-mid);
  background:var(--nr-surface-soft);
  color:var(--nr-text-muted-alpha);
  font-size:10px;
  letter-spacing:.06em;
  text-transform:uppercase;
  font-weight:900;
  cursor:pointer;
  transition:border-color .15s, background .15s, color .15s;
}

.nr-pigments-filter.is-active{
  color:var(--nr-text);
  box-shadow:0 0 0 1px var(--nr-surface-faint) inset;
}
.nr-pigments-filter.is-all.is-active{border-color:var(--nr-info-brd);background:var(--nr-info-soft);color:var(--nr-info)}
.nr-pigments-filter.is-ok.is-active{border-color:var(--nr-success-brd);background:var(--nr-success-soft);color:var(--nr-success)}
.nr-pigments-filter.is-warn.is-active{border-color:var(--nr-warning-brd);background:var(--nr-warning-soft);color:var(--nr-warning)}
.nr-pigments-filter.is-risk.is-active{border-color:var(--nr-danger-brd);background:var(--nr-danger-soft);color:var(--nr-danger)}

/* ── Card grid ──────────────────────────────────────────────────── */

.nr-pig-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
}

.nr-pig-card{
  display:flex;
  flex-direction:column;
  gap:0;
  padding:0;
  border-radius:16px;
  border:1px solid var(--nr-border-soft-ui);
  background:var(--nr-surface-soft);
  overflow:hidden;
  transition:border-color .15s, background .15s;
}

.nr-pig-card:hover{background:var(--nr-surface-chip);border-color:var(--nr-border-strong-ui)}

/* colored top accent strip */
.nr-pig-card::before{
  content:"";
  display:block;
  height:2px;
  width:100%;
}
.nr-pig-card.is-ok::before{background:linear-gradient(90deg,var(--nr-success-brd),transparent)}
.nr-pig-card.is-warn::before{background:linear-gradient(90deg,var(--nr-warning-brd),transparent)}
.nr-pig-card.is-risk::before{background:linear-gradient(90deg,var(--nr-danger-brd),transparent)}

/* ── Dark SVG visual panel ─────────────────────────────────────── */

.nr-pig-visual{
  background:var(--nr-surface-faint);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
  height:68px;
  padding:10px 12px;
  border-bottom:1px solid var(--nr-border-faint);
  flex-shrink:0;
}

.nr-pig-visual svg{
  width:100%;
  height:48px;
  display:block;
}

.nr-pig-visual svg g{
  stroke:var(--nr-text-subtle);
}

/* ── Card inner ─────────────────────────────────────────────────── */

.nr-pig-card-inner{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:12px 14px 14px;
  flex:1;
}

.nr-pig-card-top{
  display:flex;
  align-items:center;
  gap:8px;
}

/* ── Score (number + bar) ──────────────────────────────────────── */

.nr-pig-card-compat-wrap{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:4px;
  margin-left:auto;
  flex-shrink:0;
}

.nr-pig-card-compat-num{
  font-size:13px;
  font-weight:900;
  letter-spacing:-.02em;
  color:var(--nr-text-soft-alpha);
  line-height:1;
}

/* ── Compat bar ────────────────────────────────────────────────── */

.nr-pig-card-compat-track{
  width:36px;
  height:3px;
  border-radius:999px;
  background:var(--nr-surface-chip-strong);
  overflow:hidden;
}

.nr-pig-card-compat-fill{
  height:100%;
  border-radius:999px;
  transition:width .3s ease;
}

/* ── Layer warning ─────────────────────────────────────────────── */

.nr-pig-card-layer-warn{
  display:flex;
  align-items:flex-start;
  gap:6px;
  padding:8px 10px;
  border-radius:10px;
  background:var(--nr-warning-soft);
  border:1px solid var(--nr-warning-brd);
  font-size:11px;
  font-weight:700;
  line-height:1.4;
  color:var(--nr-warning);
}

.nr-pig-card-layer-icon{
  flex-shrink:0;
  font-size:12px;
}

.nr-pig-card-name{
  font-size:14px;
  font-weight:800;
  letter-spacing:-.02em;
  color:var(--nr-text);
}

/* ── Pill badges (reuse) ────────────────────────────────────────── */

.nr-pigments-pill{
  height:20px;
  padding:0 8px;
  font-size:9px;
  letter-spacing:.1em;
  font-weight:900;
  white-space:nowrap;
  border:1px solid var(--nr-border-strong-ui);
  background:var(--nr-surface-chip);
  color:var(--nr-text-soft-alpha);
  flex-shrink:0;
}

/* ── Card use ───────────────────────────────────────────────────── */

.nr-pig-card-use{
  margin:0;
  font-size:11px;
  line-height:1.5;
  color:var(--nr-text-subtle);
  font-weight:700;
}

/* ── Card hint (project-specific) ───────────────────────────────── */

.nr-pig-card-hint{
  padding:6px 10px;
  border-radius:0 6px 6px 0;
  font-size:11px;
  line-height:1.45;
  color:var(--nr-text-muted-alpha);
  font-weight:700;
  border-left:2px solid var(--nr-border-emphasis);
  background:var(--nr-surface-faint);
}

.nr-pig-card-hint b{
  font-size:9px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:900;
  margin-right:4px;
  color:var(--nr-text-subtle);
}

/* ── Card flags row ─────────────────────────────────────────────── */

.nr-pig-card-flags{
  display:flex;
  flex-wrap:wrap;
  gap:4px 12px;
  padding-top:2px;
}

.nr-pigments-flag{
  display:inline-flex;
  align-items:center;
  gap:4px;
  font-size:10px;
  font-weight:800;
  white-space:nowrap;
  color:var(--nr-text-muted-alpha);
}

.nr-pigments-flag .dot{
  width:5px;
  height:5px;
  border-radius:50%;
  flex-shrink:0;
  background:var(--nr-border-emphasis);
}

.nr-pigments-flag.is-ok .dot{background:var(--nr-border-emphasis)}
.nr-pigments-flag.is-warn,
.nr-pigments-flag.is-risk{color:var(--nr-danger)}
.nr-pigments-flag.is-warn .dot,
.nr-pigments-flag.is-risk .dot{background:var(--nr-danger)}

/* ── Empty state ────────────────────────────────────────────────── */

.nr-pigments-empty{
  margin-top:12px;
  padding:14px 16px;
  border:1px solid var(--nr-border-soft-ui);
  border-radius:14px;
  color:var(--nr-text-subtle-strong);
  font-size:12px;
  font-weight:700;
  background:var(--nr-surface-faint);
}

/* ── Responsive ─────────────────────────────────────────────────── */

@media (max-width:1100px){
  .nr-pig-grid{grid-template-columns:repeat(2, 1fr)}
  .nr-pig-hero-main{grid-template-columns:1fr}
  .nr-pig-hero-aside{padding-bottom:0;max-width:400px}
}

@media (max-width:760px){
  .nr-pig-hero{
    padding:16px 18px 18px;
    border-radius:18px;
  }
  .nr-pig-hero-main{grid-template-columns:1fr;gap:14px}
  .nr-pig-hero-word{
    font-size:clamp(40px,13vw,64px);
  }
  .nr-pig-hero-dash{
    height:8px;
    min-width:50px;
    transform:translateY(-10px);
  }
  .nr-pig-grid{
    grid-template-columns:1fr;
    gap:8px;
  }
  .nr-pig-visual{
    height:56px;
  }
}
/* === NR MERGED EXTERNAL CSS: END === */

/* === NR MIGRATED PAGE CSS: START === */

/* Shared recovery layer for migrated pages after CSS merge */

body.has-global-nav .skip-to-main {
  position: absolute;
  left: 18px;
  top: 16px;
  z-index: 4201;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid var(--nr-border-strong-ui);
  background: var(--nr-surface-skip);
  color: var(--nr-text-soft-alpha);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  transform: translateY(-160%);
  opacity: 0;
  transition: transform .18s ease, opacity .18s ease;
}

body.has-global-nav .skip-to-main:focus-visible {
  transform: translateY(0);
  opacity: 1;
  outline: 2px solid var(--nr-border-accent-strong);
  outline-offset: 4px;
}

body:is(.nr-blog-page, .nr-docs-page, .nr-status-page, .nr-changelog-page, .nr-brand-suggest-page, .nr-neural-page, .nr-contract-page, .nr-offer-page, .nr-faq-page, .nr-guide-page, .nr-resins-page, .nr-lacquers-page, .nr-subpage-page, .contact-page-body) {
  color: var(--nr-subpage-text);
  font-family: var(--nr-subpage-font);
  --nr-page-panel-border: var(--nr-subpage-bento-border);
  --nr-page-panel-bg: var(--nr-subpage-bento-bg);
  --nr-page-panel-shadow: var(--nr-subpage-bento-shadow);
  --nr-page-card-border: var(--nr-subpage-bento-border-soft);
  --nr-page-card-bg: var(--nr-subpage-bento-bg-soft);
  --nr-page-card-bg-strong: var(--nr-subpage-bento-bg-strong);
  --nr-page-chip-border: var(--nr-subpage-bento-border);
  --nr-page-chip-bg: var(--nr-subpage-chip-bg);
  --nr-page-chip-bg-strong: var(--nr-subpage-chip-bg-strong);
  --nr-page-chip-text: var(--nr-subpage-chip-text);
  --nr-page-divider: var(--nr-subpage-divider);
  --nr-page-accent-bg: var(--nr-surface-accent);
  --nr-page-accent-bg-strong: var(--nr-surface-accent-strong);
  --nr-page-accent-border: var(--nr-border-accent-ui);
  --nr-page-info-bg: var(--nr-surface-info-ui);
  --nr-page-info-bg-strong: var(--nr-surface-info-strong);
  --nr-page-info-border: var(--nr-border-info-ui);
  --nr-page-warning-bg: var(--nr-surface-warning-ui);
  --nr-page-warning-bg-strong: var(--nr-surface-warning-strong);
  --nr-page-warning-border: var(--nr-border-warning-ui);
  --nr-page-accent-cta: var(--nr-gradient-accent-cta);
  --nr-page-accent-shadow: var(--nr-shadow-accent-cta);
}

body:is(.nr-blog-page, .nr-docs-page, .nr-status-page, .nr-changelog-page, .nr-brand-suggest-page, .nr-neural-page, .nr-contract-page, .nr-offer-page, .nr-faq-page, .nr-guide-page, .nr-resins-page, .nr-lacquers-page, .nr-subpage-page, .contact-page-body) :where(h1, h2, h3, .page-title, .docs-title, .hero-title, .section-title, .contact-header__title, .contact-form__title, .contact-cta__text) {
  font-family: var(--nr-subpage-heading-font);
}

body:is(.nr-blog-page, .nr-docs-page, .nr-status-page, .nr-changelog-page, .nr-brand-suggest-page, .nr-neural-page, .nr-contract-page, .nr-offer-page, .nr-faq-page, .nr-guide-page, .nr-resins-page, .nr-lacquers-page, .nr-subpage-page, .contact-page-body) :where(.nr-ui-label, .hero-kicker, .kicker, .docs-badge, .section-eyebrow, .page-tag, .label-mini, .contact-header__nav, .contact-info__label) {
  font-family: var(--nr-subpage-mono-font);
}

:where(
  .nr-ui-label,
  body.nr-blog-page .hero-kicker,
  body.nr-status-page .hero-label,
  body.nr-status-page .section-head-label,
  body.nr-brand-suggest-page .kicker,
  body.nr-docs-page .docs-badge,
  body.nr-docs-page .section-eyebrow,
  body.nr-docs-page .label-mini,
  body.nr-docs-page .flow-step-num,
  body.nr-offer-page .offer-intro-eyebrow,
  body.nr-offer-page .offer-intro-list-label,
  body.nr-contract-page .section-tag,
  body.nr-offer-page .section-tag,
  body.nr-contract-page .label-mini,
  body.nr-offer-page .label-mini,
  body.nr-neural-page .hero-kicker,
  body.nr-neural-page .label
) {
  color: var(--accent-soft);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

:where(
  .nr-ui-pill,
  body.nr-blog-page .hero-meta span,
  body.nr-blog-page .step-badge,
  body.nr-status-page .hero-overall,
  body.nr-status-page .svc-badge,
  body.nr-status-page .badge,
  body.nr-changelog-page .version-number,
  body.nr-changelog-page .version-badge,
  body.nr-changelog-page .feature-label,
  body.nr-guide-page .step-num,
  body.nr-guide-page .shortcut-key,
  body.nr-guide-page .badge-ai,
  body.nr-guide-page .badge-pro,
  body.nr-neural-page .chip,
  body.nr-neural-page .hero-link,
  body.nr-neural-page .legend-item,
  body.nr-brand-suggest-page .mail-btn,
  body.nr-offer-page .offer-intro-chip
) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 0 12px;
  border-radius: 999px;
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
}

:where(
  .nr-ui-pill-soft,
  body.nr-blog-page .hero-meta span,
  body.nr-blog-page .step-badge,
  body.nr-status-page .hero-overall,
  body.nr-status-page .svc-badge,
  body.nr-status-page .badge,
  body.nr-neural-page .chip,
  body.nr-neural-page .hero-link,
  body.nr-neural-page .legend-item
) {
  border: 1px solid var(--nr-page-chip-border);
  background: var(--nr-page-chip-bg);
  color: var(--nr-page-chip-text);
}

:where(
  .nr-ui-card,
  body.nr-blog-page .demo,
  body.nr-blog-page .micro-tip,
  body.nr-blog-page .fcard,
  body.nr-status-page .metric,
  body.nr-status-page .tech-cell,
  body.nr-changelog-page .feature-item,
  body.nr-brand-suggest-page .block,
  body.nr-brand-suggest-page .footer-col,
  body.nr-docs-page .docs-meta-item,
  body.nr-docs-page .card,
  body.nr-docs-page .tool-card-link,
  body.nr-docs-page .docs-section,
  body.nr-faq-page .faq-item,
  body.nr-guide-page .step-grid,
  body.nr-guide-page .tip-box,
  body.nr-neural-page .meta-card,
  body.nr-neural-page .legend-card,
  body.nr-neural-page .tip,
  body.nr-neural-page .node-modal
) {
  border: 1px solid var(--nr-page-card-border);
  background: var(--nr-page-card-bg);
}

:where(
  .nr-ui-card-strong,
  body.nr-neural-page .meta-card,
  body.nr-neural-page .legend-card,
  body.nr-neural-page .tip,
  body.nr-neural-page .node-modal
) {
  background: var(--nr-page-card-bg-strong);
}

body:is(.nr-blog-page, .nr-status-page, .nr-changelog-page, .nr-brand-suggest-page, .nr-neural-page, .nr-contract-page, .nr-offer-page) .hero,
body .nr-ui-panel,
body.nr-docs-page .docs-header,
body.nr-brand-suggest-page .mail-card,
body.nr-status-page .services,
body.nr-status-page .metrics,
body.nr-status-page .tech-row,
body.nr-changelog-page .version,
body.nr-contract-page .side-card,
body.nr-offer-page .side-card,
body.nr-faq-page .search-wrap,
body.nr-guide-page .module-card {
  border: 1px solid var(--nr-page-panel-border);
  border-radius: 24px;
  background: var(--nr-page-panel-bg);
  box-shadow: var(--nr-page-panel-shadow);
}

body.nr-blog-page .hero,
body.nr-status-page main,
body.nr-brand-suggest-page .container,
body.nr-changelog-page .container,
body.nr-neural-page .page-shell,
body.nr-contract-page .contract-shell,
body.nr-offer-page .offer-intro,
body.nr-offer-page .offer-app {
  width: min(1480px, calc(100% - 48px));
  margin: 0 auto;
}

body.nr-blog-page .hero {
  margin-top: 28px;
  padding: 34px clamp(22px, 4vw, 42px);
}

body.nr-blog-page article {
  width: min(860px, calc(100% - 48px));
  margin: 0 auto;
  padding: 34px 0 88px;
}

body.nr-blog-page .hero-kicker {
  margin: 0 0 14px;
  letter-spacing: 0.22em;
}

body.nr-blog-page .hero h1 {
  margin: 0;
  color: var(--text);
  font-size: clamp(2.6rem, 5vw, 4.8rem);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.06em;
  text-wrap: balance;
}

body.nr-blog-page .hero-sub {
  max-width: 66ch;
  margin: 18px 0 0;
  color: var(--text-soft);
  font-size: clamp(1rem, 1.6vw, 1.16rem);
  line-height: 1.8;
}

body.nr-blog-page .hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
}

body.nr-blog-page .hero-meta span,
body.nr-blog-page .step-badge {
  letter-spacing: 0.1em;
}

body.nr-blog-page article p,
body.nr-blog-page article li {
  color: var(--text-soft);
  font-size: 1rem;
  line-height: 1.82;
}

body.nr-blog-page article h2 {
  margin: 56px 0 18px;
  color: var(--text);
  font-size: clamp(1.5rem, 2.6vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.03em;
}

body.nr-blog-page article h3 {
  margin: 34px 0 14px;
  color: var(--accent-soft);
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: -0.01em;
}

body.nr-blog-page .lead {
  color: var(--text);
  font-size: clamp(1.08rem, 1.8vw, 1.28rem);
  line-height: 1.84;
}

body.nr-blog-page .demo,
body.nr-blog-page .callout,
body.nr-blog-page .micro-tip {
  margin: 24px 0;
  padding: 20px;
  border-radius: 22px;
}

body.nr-blog-page .demo canvas {
  width: 100%;
  border-radius: 16px;
  border: 1px solid var(--nr-page-card-border);
  background: linear-gradient(180deg, var(--nr-page-card-bg-strong), var(--nr-surface-faint));
}

body.nr-blog-page .demo-label {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 12px;
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.nr-blog-page .dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--nr-page-chip-bg-strong);
  flex: 0 0 auto;
}

body.nr-blog-page .dot.coral { background: var(--accent); }
body.nr-blog-page .dot.teal { background: var(--teal); }
body.nr-blog-page .dot.amber { background: var(--amber); }

body.nr-blog-page .callout {
  border-color: var(--nr-page-info-border);
  background: var(--nr-page-info-bg);
}

body.nr-blog-page .callout.amber {
  border-color: var(--nr-page-warning-border);
  background: var(--nr-page-warning-bg);
}

body.nr-blog-page .features-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 24px;
}

body.nr-blog-page .fcard {
  padding: 18px;
  border-radius: 20px;
}

body.nr-blog-page .fcard-icon {
  margin-bottom: 10px;
  font-size: 1.35rem;
}

body.nr-blog-page .fcard-title {
  color: var(--text);
  font-weight: 700;
}

body.nr-blog-page .fcard-desc {
  margin-top: 8px;
  color: var(--text-soft);
  line-height: 1.65;
}

body.nr-blog-page .toc-sep {
  height: 1px;
  margin: 16px 0;
  border: 0;
  background: var(--nr-page-divider);
}

body.nr-status-page main {
  padding: 26px 0 96px;
}

body.nr-status-page .hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 24px;
  align-items: end;
  margin-top: 10px;
  padding: 30px clamp(20px, 3.6vw, 38px);
}

body.nr-status-page .hero-label,
body.nr-status-page .section-head-label {
  letter-spacing: 0.22em;
}

body.nr-status-page .hero-title {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px;
  margin-top: 12px;
  color: var(--text);
  font-size: clamp(2.4rem, 5vw, 4.8rem);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.06em;
}

body.nr-status-page .hero-title em {
  color: var(--accent-soft);
  font-style: normal;
}

body.nr-status-page .hero-right {
  display: grid;
  justify-items: end;
  gap: 12px;
}

body.nr-status-page .hero-ts {
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.nr-status-page .hero-overall,
body.nr-status-page .svc-badge,
body.nr-status-page .badge {
  gap: 8px;
  min-height: 36px;
  letter-spacing: 0.08em;
}

body.nr-status-page .hero-overall-dot,
body.nr-status-page .svc-badge-dot,
body.nr-status-page .badge-dot {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--amber);
  box-shadow: var(--nr-shadow-ring-warning);
}

body.nr-status-page .section-head {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: center;
  margin: 34px 0 16px;
}

body.nr-status-page .section-head-line {
  height: 1px;
  background: var(--nr-page-divider);
}

body.nr-status-page .services,
body.nr-status-page .metrics,
body.nr-status-page .tech-row {
  padding: 18px;
}

body.nr-status-page .service-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 110px 110px auto;
  gap: 14px;
  align-items: center;
  padding: 16px 4px;
  border-top: 1px solid var(--nr-page-divider);
}

body.nr-status-page .service-row:first-child {
  border-top: 0;
}

body.nr-status-page .svc-name {
  color: var(--text);
  font-weight: 700;
}

body.nr-status-page .svc-desc,
body.nr-status-page .svc-latency,
body.nr-status-page .svc-uptime,
body.nr-status-page .metric-sub,
body.nr-status-page .tech-key {
  color: var(--text-dim);
}

body.nr-status-page .metrics {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

body.nr-status-page .metric {
  padding: 18px;
  border-radius: 18px;
}

body.nr-status-page .metric-label {
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.nr-status-page .metric-value {
  margin-top: 10px;
  color: var(--text);
  font-size: clamp(1.4rem, 2.2vw, 2rem);
  font-weight: 800;
  letter-spacing: -0.04em;
}

body.nr-status-page .tech-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

body.nr-status-page .tech-cell {
  padding: 14px 16px;
  border-radius: 16px;
}

body.nr-status-page .tech-val {
  display: block;
  margin-top: 10px;
  color: var(--text-soft);
}

body.nr-status-page footer {
  margin-top: 42px;
  border: 0;
  padding: 0;
  text-align: left;
}

body.nr-status-page .ft-tagline-strip,
body.nr-status-page .ft-body,
body.nr-status-page .ft-bottom {
  padding-left: 0;
  padding-right: 0;
}

body.nr-changelog-page .container {
  padding: 132px 0 96px;
}

body.nr-changelog-page header {
  margin-bottom: 28px;
}

body.nr-changelog-page header h1 {
  margin: 0;
  color: var(--text);
  font-size: clamp(2.2rem, 5vw, 4rem);
  font-weight: 800;
  letter-spacing: -0.05em;
}

body.nr-changelog-page .subtitle {
  margin: 10px 0 0;
  color: var(--text-soft);
}

body.nr-changelog-page .version {
  margin-top: 20px;
  padding: 24px;
}

body.nr-changelog-page .version-header {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 18px;
}

body.nr-changelog-page .version-number,
body.nr-changelog-page .version-badge,
body.nr-changelog-page .feature-label {
  letter-spacing: 0.12em;
}

body.nr-changelog-page .version-number {
  color: var(--text);
  background: var(--nr-page-chip-bg-strong);
}

body.nr-changelog-page .version-badge {
  color: var(--accent-soft);
  border: 1px solid var(--nr-page-accent-border);
  background: var(--nr-page-accent-bg);
}

body.nr-changelog-page .version-date {
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.nr-changelog-page .category {
  margin-top: 20px;
  padding-top: 20px;
  border-top: 1px solid var(--nr-page-divider);
}

body.nr-changelog-page .category:first-of-type {
  border-top: 0;
  padding-top: 0;
}

body.nr-changelog-page .category-title {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 12px;
  color: var(--text);
}

body.nr-changelog-page .feature-list {
  display: grid;
  gap: 12px;
  margin: 0;
  padding: 0;
  list-style: none;
}

body.nr-changelog-page .feature-item {
  padding: 16px;
  border-radius: 18px;
}

body.nr-changelog-page .feature-title,
body.nr-changelog-page .feature-description {
  color: var(--text-soft);
}

body.nr-changelog-page .feature-title {
  color: var(--text);
  font-weight: 700;
}

body.nr-changelog-page .label-added,
body.nr-changelog-page .feature-item.added .feature-label {
  color: var(--nr-info);
  background: var(--nr-page-info-bg-strong);
}

body.nr-changelog-page .label-changed,
body.nr-changelog-page .feature-item.changed .feature-label {
  color: var(--gold);
  background: var(--nr-page-warning-bg-strong);
}

body.nr-changelog-page .label-fixed,
body.nr-changelog-page .feature-item.fixed .feature-label {
  color: var(--accent-soft);
  background: var(--nr-page-accent-bg-strong);
}

body.nr-brand-suggest-page .container {
  padding: 132px 0 88px;
}

body.nr-brand-suggest-page main,
body.nr-brand-suggest-page footer {
  width: 100%;
}

body.nr-brand-suggest-page .hero {
  padding: 30px clamp(20px, 3.6vw, 38px);
}

body.nr-brand-suggest-page .kicker {
  margin: 0 0 12px;
  letter-spacing: 0.2em;
}

body.nr-brand-suggest-page .hero h1 {
  margin: 0;
  color: var(--text);
  font-size: clamp(2.4rem, 4.6vw, 4.2rem);
  font-weight: 800;
  letter-spacing: -0.05em;
}

body.nr-brand-suggest-page .lead {
  max-width: 62ch;
  margin-top: 18px;
  color: var(--text-soft);
  line-height: 1.8;
}

body.nr-brand-suggest-page .content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: 20px;
  margin-top: 24px;
}

body.nr-brand-suggest-page .block,
body.nr-brand-suggest-page .mail-card,
body.nr-brand-suggest-page .footer-col {
  padding: 22px;
  border-radius: 22px;
}

body.nr-brand-suggest-page .block h2,
body.nr-brand-suggest-page .mail-card h3,
body.nr-brand-suggest-page .footer-col h4 {
  margin: 0 0 12px;
  color: var(--text);
}

body.nr-brand-suggest-page .list,
body.nr-brand-suggest-page .footer-col p {
  margin: 0;
  color: var(--text-soft);
  line-height: 1.74;
}

body.nr-brand-suggest-page .mail-btn {
  justify-content: center;
  min-height: 46px;
  margin-top: 16px;
  padding: 0 18px;
  background: var(--nr-page-accent-cta);
  color: var(--nr-text-contrast);
  letter-spacing: 0.12em;
  text-decoration: none;
  box-shadow: var(--nr-page-accent-shadow);
}

body.nr-brand-suggest-page footer {
  margin-top: 28px;
  border: 0;
  padding: 0;
}

body.nr-brand-suggest-page .footer-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

body.nr-brand-suggest-page .footer-bottom {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  margin-top: 16px;
  padding: 18px 4px 0;
  border-top: 1px solid var(--nr-page-divider);
}

body.nr-brand-suggest-page .footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

body.contact-page-body .contact-page {
  width: min(1480px, calc(100% - 40px));
  max-width: none;
  margin: 0 auto;
  padding: 112px 0 96px;
  color: var(--nr-subpage-text);
}

body.contact-page-body .contact-header {
  border-bottom: 1px solid var(--nr-page-divider);
}

body.contact-page-body .contact-header__title,
body.contact-page-body .contact-form__title,
body.contact-page-body .contact-cta__text,
body.contact-page-body .contact-bottom__title {
  color: var(--nr-subpage-text);
  letter-spacing: -0.04em;
}

body.contact-page-body .contact-header__nav,
body.contact-page-body .contact-intro,
body.contact-page-body .contact-info__label,
body.contact-page-body .contact-info__section p,
body.contact-page-body .contact-form .form-row label,
body.contact-page-body .contact-form .form-checkbox-item,
body.contact-page-body .contact-form .form-consent,
body.contact-page-body .contact-form .form-consent label,
body.contact-page-body .contact-bottom {
  color: var(--nr-subpage-text-dim);
}

body.contact-page-body .contact-header__nav a:hover,
body.contact-page-body .contact-info__section a,
body.contact-page-body .contact-form .form-consent a,
body.contact-page-body .contact-bottom a:hover {
  color: var(--accent-soft);
}

body.contact-page-body .contact-body {
  gap: 20px;
  border-bottom: 0;
}

body.contact-page-body .contact-intro,
body.contact-page-body .contact-info,
body.contact-page-body .contact-body > div:last-child,
body.contact-page-body .contact-cta,
body.contact-page-body .contact-bottom {
  border: 1px solid var(--nr-page-panel-border);
  border-radius: 24px;
  background: var(--nr-page-panel-bg);
  box-shadow: var(--nr-page-panel-shadow);
  padding: clamp(20px, 3vw, 30px);
}

body.contact-page-body .contact-intro {
  max-width: 720px;
  margin: 24px 0 0 auto;
  border-bottom: 1px solid var(--nr-page-panel-border);
}

body.contact-page-body .contact-info__label {
  border-bottom: 1px solid var(--nr-page-divider);
}

body.contact-page-body .contact-info__section-title {
  color: var(--nr-subpage-text);
}

body.contact-page-body .contact-form .form-row input,
body.contact-page-body .contact-form .form-row select,
body.contact-page-body .contact-form .form-row textarea {
  border: 1px solid var(--nr-page-card-border);
  background: var(--nr-surface-control-idle);
  color: var(--nr-subpage-text);
}

body.contact-page-body .contact-form .form-row input:focus,
body.contact-page-body .contact-form .form-row select:focus,
body.contact-page-body .contact-form .form-row textarea:focus {
  border-color: var(--nr-page-accent-border);
}

body.contact-page-body .contact-form .form-checkbox-item input[type="checkbox"],
body.contact-page-body .contact-form .form-consent input[type="checkbox"] {
  accent-color: var(--accent);
}

body.contact-page-body .contact-form .form-submit-btn {
  border-radius: 8px;
  background: var(--nr-page-accent-cta);
  box-shadow: var(--nr-page-accent-shadow);
}

body.contact-page-body .contact-form .form-submit-btn:hover {
  background: var(--nr-surface-accent-cta);
}

body.contact-page-body .contact-form .form-status.is-success {
  background: var(--nr-success-soft);
  color: var(--nr-success);
}

body.contact-page-body .contact-form .form-status.is-error {
  background: var(--nr-danger-soft);
  color: var(--nr-danger);
}

body.contact-page-body .contact-cta {
  margin-top: 20px;
  border-bottom: 1px solid var(--nr-page-panel-border);
}

body.contact-page-body .contact-cta__arrow {
  border-color: var(--nr-page-accent-border);
  color: var(--accent-soft);
}

body.contact-page-body .contact-bottom {
  margin-top: 20px;
}

body.nr-docs-page .docs-wrap {
  width: min(1480px, calc(100% - 40px));
  margin: 0 auto;
  padding: 112px 0 96px;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  gap: 28px;
  align-items: start;
}

body.nr-docs-page .docs-sidebar {
  position: sticky;
  top: 112px;
  display: grid;
  gap: 18px;
  align-self: start;
  padding: 20px;
  border-radius: 24px;
  border: 1px solid var(--nr-page-card-border);
  background: var(--nr-page-panel-bg);
  box-shadow: var(--nr-page-panel-shadow);
}

body.nr-docs-page .sidebar-logo a,
body.nr-docs-page .tool-card-link {
  text-decoration: none;
}

body.nr-docs-page .sidebar-logo a {
  display: flex;
  align-items: center;
  gap: 12px;
}

body.nr-docs-page .logo-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 14px;
  background: var(--nr-surface-accent-cta);
  color: var(--accent-soft);
  font-weight: 800;
}

body.nr-docs-page .logo-name {
  color: var(--text);
  font-weight: 800;
  letter-spacing: -0.03em;
}

body.nr-docs-page .logo-sub,
body.nr-docs-page .sidebar-group-label,
body.nr-docs-page .num {
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.nr-docs-page .sidebar-group {
  display: grid;
  gap: 8px;
}

body.nr-docs-page .sidebar-link {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 42px;
  padding: 0 12px;
  border-radius: 14px;
  border: 1px solid var(--nr-page-card-border);
  background: var(--nr-surface-faint);
  color: var(--text-soft);
  text-decoration: none;
}

body.nr-docs-page .docs-main {
  display: grid;
  gap: 26px;
}

body.nr-docs-page .docs-header {
  padding: 28px clamp(20px, 3vw, 34px);
}

body.nr-docs-page .docs-badge,
body.nr-docs-page .section-eyebrow,
body.nr-docs-page .label-mini {
  letter-spacing: 0.18em;
}

body.nr-docs-page .docs-title {
  margin: 16px 0 0;
  color: var(--text);
  font-size: clamp(2.6rem, 5vw, 4.8rem);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.06em;
}

body.nr-docs-page .docs-title span {
  color: var(--accent-soft);
}

body.nr-docs-page .docs-subtitle,
body.nr-docs-page .section-desc,
body.nr-docs-page .card-body,
body.nr-docs-page .callout-text {
  color: var(--text-soft);
  line-height: 1.78;
}

body.nr-docs-page .docs-meta,
body.nr-docs-page .tool-grid,
body.nr-docs-page .grid-3,
body.nr-docs-page .flow-strip {
  display: grid;
  gap: 14px;
}

body.nr-docs-page .docs-meta {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 18px;
}

body.nr-docs-page .docs-meta-item,
body.nr-docs-page .card,
body.nr-docs-page .flow-step,
body.nr-docs-page .tool-card-link,
body.nr-docs-page .docs-section {
  padding: 18px;
  border-radius: 20px;
}

body.nr-docs-page .docs-meta-item span {
  display: block;
  margin-top: 8px;
  color: var(--text);
  font-size: 1rem;
  font-weight: 700;
}

body.nr-docs-page .tool-grid,
body.nr-docs-page .grid-3 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 22px;
}

body.nr-docs-page .tool-meta,
body.nr-docs-page .tool-arrow {
  color: var(--text-dim);
  letter-spacing: 0.12em;
}

body.nr-docs-page .tool-title,
body.nr-docs-page .card-title,
body.nr-docs-page .section-title {
  color: var(--text);
  font-weight: 800;
  letter-spacing: -0.03em;
}

body.nr-docs-page .tool-title {
  margin-top: 10px;
  font-size: 1.18rem;
}

body.nr-docs-page .tool-desc {
  margin-top: 10px;
  color: var(--text-soft);
  line-height: 1.72;
}

body.nr-docs-page .docs-section {
  padding: 24px;
}

body.nr-docs-page .section-title {
  margin: 10px 0 0;
  font-size: clamp(1.35rem, 2vw, 1.9rem);
}

body.nr-docs-page .divider {
  height: 1px;
  border: 0;
  background: var(--nr-page-divider);
}

body.nr-docs-page .flow-strip {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  align-items: stretch;
  margin-top: 22px;
}

body.nr-docs-page .flow-step {
  display: grid;
  gap: 8px;
}

body.nr-docs-page .flow-step--active {
  border-color: var(--nr-page-accent-border);
  background: var(--nr-page-accent-bg);
}

body.nr-docs-page .flow-step-num {
  letter-spacing: 0.16em;
}

body.nr-docs-page .flow-arrow {
  display: grid;
  place-items: center;
  color: var(--text-dim);
  font-size: 1.6rem;
}

body.nr-docs-page .callout {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: start;
  margin-top: 22px;
  padding: 18px;
  border-radius: 20px;
  border: 1px solid var(--nr-page-info-border);
  background: var(--nr-page-info-bg);
}

body.nr-docs-page .callout-icon {
  font-size: 1.4rem;
}

body.nr-faq-page .search-wrap {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  padding: 14px 16px;
}

body.nr-faq-page .search-icon {
  color: var(--text-dim);
}

body.nr-faq-page .faq-search {
  width: 100%;
  min-height: 42px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--text);
  font-size: 1rem;
}

body.nr-faq-page .faq-category {
  margin-top: 28px;
}

body.nr-faq-page .faq-item {
  overflow: hidden;
  margin-top: 12px;
  border-radius: 18px;
}

body.nr-faq-page .faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 20px;
  border: 0;
  background: transparent;
  color: var(--text);
  font: inherit;
  font-weight: 700;
  text-align: left;
  cursor: pointer;
}

body.nr-faq-page .faq-answer {
  display: none;
  padding: 0 20px 18px;
}

body.nr-faq-page .faq-item.is-open .faq-answer {
  display: block;
}

body.nr-guide-page .step-grid {
  display: grid;
  grid-template-columns: 84px minmax(0, 1fr);
  gap: 18px;
  align-items: start;
  margin: 20px 0;
  padding: 18px;
  border-radius: 20px;
  border: 1px solid var(--nr-page-card-border);
  background: var(--nr-page-card-bg);
}

body.nr-guide-page .step-num,
body.nr-guide-page .shortcut-key,
body.nr-guide-page .badge-ai,
body.nr-guide-page .badge-pro {
  letter-spacing: 0.12em;
}

body.nr-guide-page .step-num {
  background: var(--nr-page-accent-bg-strong);
  color: var(--accent-soft);
}

body.nr-guide-page .tip-box,
body.nr-guide-page .module-card {
  margin-top: 14px;
  padding: 18px;
  border-radius: 18px;
}

body.nr-guide-page .shortcut-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 12px 0;
  border-top: 1px solid var(--nr-page-divider);
}

body.nr-guide-page .shortcut-row:first-child {
  border-top: 0;
}

body.nr-guide-page .shortcut-key,
body.nr-guide-page .badge-pro {
  color: var(--text);
  background: var(--nr-page-chip-bg-strong);
}

body.nr-guide-page .badge-ai {
  color: var(--accent-soft);
  background: var(--nr-page-accent-bg-strong);
}

body.nr-neural-page .page-shell {
  padding: 132px 0 88px;
}

body.nr-neural-page .content-shell {
  display: grid;
  gap: 24px;
}

body.nr-neural-page .hero {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.85fr);
  gap: 24px;
  padding: 26px;
}

body.nr-neural-page .hero-kicker,
body.nr-neural-page .label {
  letter-spacing: 0.18em;
}

body.nr-neural-page .hero-title {
  margin: 12px 0 0;
  color: var(--text);
  font-size: clamp(2.4rem, 5vw, 4.6rem);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.06em;
}

body.nr-neural-page .hero-title-accent {
  color: var(--accent-soft);
}

body.nr-neural-page .hero-desc,
body.nr-neural-page .hero-meta-copy,
body.nr-neural-page .legend-copy {
  color: var(--text-soft);
  line-height: 1.78;
}

body.nr-neural-page .hero-note,
body.nr-neural-page .hero-links,
body.nr-neural-page .legend-points,
body.nr-neural-page .stats-bar,
body.nr-neural-page .meta-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

body.nr-neural-page .chip,
body.nr-neural-page .hero-link,
body.nr-neural-page .legend-item {
  gap: 8px;
  min-height: 36px;
  text-decoration: none;
}

body.nr-neural-page .chip-dot,
body.nr-neural-page .legend-swatch {
  width: 8px;
  height: 8px;
  border-radius: 999px;
  background: var(--accent);
}

body.nr-neural-page .meta-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 12px;
}

body.nr-neural-page .meta-card,
body.nr-neural-page .legend-card,
body.nr-neural-page .tip,
body.nr-neural-page .node-modal {
  padding: 16px;
  border-radius: 18px;
}

body.nr-neural-page .meta-card strong {
  display: block;
  margin-top: 8px;
  color: var(--text);
  font-size: 1.5rem;
}

body.nr-neural-page .viz-pane {
  position: relative;
  min-height: 72vh;
  overflow: hidden;
  border-radius: 28px;
  border: 1px solid var(--nr-page-card-border);
  background: var(--nr-gradient-viz);
  box-shadow: var(--nr-shadow-panel-lg);
}

body.nr-neural-page #scene {
  width: 100%;
  height: 72vh;
  display: block;
}

body.nr-neural-page .viz-overlay,
body.nr-neural-page .viz-legend {
  position: absolute;
  z-index: 2;
}

body.nr-neural-page .viz-overlay {
  left: 18px;
  top: 18px;
  max-width: 420px;
}

body.nr-neural-page .viz-legend {
  right: 18px;
  bottom: 18px;
  width: min(360px, calc(100% - 36px));
}

body.nr-neural-page .tip {
  position: absolute;
  left: 18px;
  bottom: 18px;
  z-index: 2;
  max-width: 340px;
}

body.nr-neural-page .node-modal {
  position: absolute;
  right: 18px;
  top: 18px;
  z-index: 3;
  width: min(340px, calc(100% - 36px));
}

body.nr-neural-page .node-close {
  position: absolute;
  right: 12px;
  top: 10px;
  border: 0;
  background: transparent;
  color: var(--text-dim);
  font-size: 1.3rem;
  cursor: pointer;
}

body.nr-neural-page .page-footer {
  border: 0;
  padding: 0;
  margin-top: 18px;
}

body.nr-neural-page .page-footer-inner {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 12px;
  padding-top: 18px;
  border-top: 1px solid var(--nr-page-divider);
}

body.nr-neural-page .page-footer-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

body.nr-contract-page .contract-shell,
body.nr-offer-page .offer-app {
  padding: 118px 0 96px;
}

body.nr-contract-page .workspace,
body.nr-offer-page .offer-app {
  display: grid;
  grid-template-columns: minmax(320px, 420px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

body.nr-offer-page .offer-intro {
  padding: 118px 0 20px;
}

body.nr-offer-page .offer-intro-shell,
body.nr-contract-page .workspace,
body.nr-offer-page .sidebar-shell {
  width: 100%;
}

body.nr-offer-page .offer-intro-shell {
  padding: 28px;
  border-radius: 26px;
  border: 1px solid var(--nr-page-card-border);
  background: var(--nr-page-panel-bg);
  box-shadow: var(--nr-page-panel-shadow);
}

body.nr-offer-page .offer-intro-grid,
body.nr-offer-page .offer-intro-lists {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 20px;
}

body.nr-offer-page .offer-intro-title {
  margin: 10px 0 0;
  color: var(--text);
  font-size: clamp(2.4rem, 4.8vw, 4.6rem);
  font-weight: 800;
  line-height: 0.94;
  letter-spacing: -0.06em;
}

body.nr-offer-page .offer-intro-title span {
  color: var(--accent-soft);
}

body.nr-offer-page .offer-intro-eyebrow,
body.nr-offer-page .offer-intro-list-label,
body.nr-contract-page .section-tag,
body.nr-offer-page .section-tag,
body.nr-contract-page .label-mini,
body.nr-offer-page .label-mini {
  letter-spacing: 0.16em;
}

body.nr-offer-page .offer-intro-kicker,
body.nr-offer-page .offer-intro-body p {
  color: var(--text-soft);
  line-height: 1.76;
}

body.nr-offer-page .offer-intro-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 10px;
}

body.nr-offer-page .offer-intro-chip {
  background: var(--nr-page-chip-bg);
  border: 1px solid var(--nr-page-card-border);
  color: var(--text);
  letter-spacing: 0.08em;
}

body.nr-contract-page .editor-panel,
body.nr-offer-page .admin-sidebar {
  position: sticky;
  top: 108px;
}

body.nr-contract-page .editor-stack,
body.nr-offer-page .sidebar-shell {
  display: grid;
  gap: 16px;
}

body.nr-contract-page .side-card,
body.nr-offer-page .side-card {
  padding: 18px;
}

body.nr-contract-page .form-grid,
body.nr-offer-page .form-grid {
  display: grid;
  gap: 14px;
  margin-top: 14px;
}

body.nr-contract-page .grid-2,
body.nr-offer-page .grid-2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

body.nr-contract-page .grid-3,
body.nr-offer-page .grid-3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

body.nr-contract-page .input-group,
body.nr-offer-page .input-group {
  display: grid;
  gap: 8px;
}

body.nr-contract-page .input-group label,
body.nr-offer-page .input-group label {
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.nr-contract-page .field,
body.nr-offer-page .field,
body.nr-contract-page .field-file,
body.nr-offer-page .field-file,
body.nr-faq-page .faq-search {
  width: 100%;
  min-height: 44px;
  padding: 0 14px;
  border-radius: 14px;
  border: 1px solid var(--nr-border-mid);
  background: var(--nr-page-card-bg-strong);
  color: var(--text);
  font: inherit;
}

body.nr-contract-page textarea.field,
body.nr-offer-page textarea.field {
  min-height: 116px;
  padding: 12px 14px;
  resize: vertical;
}

body.nr-contract-page .a4-stage,
body.nr-offer-page .a4-stage {
  display: grid;
  place-items: center;
  padding: 8px 0 24px;
}

body.nr-contract-page .a4-page,
body.nr-offer-page .a4-page {
  width: min(210mm, 100%);
  min-height: 297mm;
  padding: 22mm 18mm;
  border-radius: 20px;
  background: var(--nr-paper-bg);
  color: var(--nr-paper-text);
  box-shadow: var(--nr-shadow-paper);
}

body.nr-contract-page .page-inner,
body.nr-offer-page .page-inner {
  display: grid;
  gap: 18px;
}

body.nr-contract-page .doc-card,
body.nr-offer-page .doc-card,
body.nr-offer-page .pay-card,
body.nr-offer-page .legal-card,
body.nr-contract-page .notes-box,
body.nr-offer-page .notes-box,
body.nr-offer-page .detail-frame {
  padding: 16px;
  border-radius: 16px;
  border: 1px solid var(--nr-paper-border-ui);
  background: var(--nr-paper-surface);
}

body.nr-contract-page .doc-grid-2,
body.nr-offer-page .doc-grid-2,
body.nr-offer-page .legal-grid,
body.nr-offer-page .info-grid,
body.nr-offer-page .summary-grid,
body.nr-offer-page .flow-grid {
  display: grid;
  gap: 14px;
}

body.nr-contract-page .doc-grid-2,
body.nr-offer-page .doc-grid-2,
body.nr-offer-page .legal-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

body.nr-offer-page .summary-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

body.nr-offer-page .summary-card {
  padding: 14px;
  border-radius: 14px;
  background: var(--nr-paper-surface-muted);
}

body.nr-offer-page .summary-value,
body.nr-contract-page .page-title,
body.nr-offer-page .page-title,
body.nr-offer-page .total-price {
  color: var(--nr-paper-text);
  font-weight: 800;
}

body.nr-contract-page .page-title,
body.nr-offer-page .page-title {
  margin: 4px 0 0;
  font-size: 1.48rem;
  letter-spacing: -0.03em;
}

body.nr-contract-page .page-note,
body.nr-offer-page .page-note,
body.nr-offer-page .notes-copy,
body.nr-offer-page .legal-copy,
body.nr-offer-page .process-copy {
  color: var(--nr-paper-text-soft);
  line-height: 1.66;
}

body.nr-offer-page .info-row,
body.nr-offer-page .pay-row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: start;
  padding: 10px 0;
  border-top: 1px solid var(--nr-paper-border-ui);
}

body.nr-offer-page .info-row:first-child,
body.nr-offer-page .pay-row:first-child {
  border-top: 0;
}

body.nr-offer-page .info-label {
  color: var(--nr-paper-text-dim);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.nr-offer-page .info-value,
body.nr-offer-page .pay-val {
  text-align: right;
  color: var(--nr-paper-text);
}

body.nr-offer-page .compare-table {
  width: 100%;
  border-collapse: collapse;
}

body.nr-offer-page .compare-table th,
body.nr-offer-page .compare-table td {
  padding: 10px 12px;
  border: 1px solid var(--nr-paper-border-ui);
  text-align: left;
}

body.nr-offer-page .quality-list,
body.nr-offer-page .risk-list {
  margin: 0;
  padding-left: 18px;
}

body.nr-offer-page .status-pill {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: var(--nr-paper-border-ui);
  color: var(--nr-paper-text);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.nr-offer-page .status-pill.is-ok {
  background: var(--nr-surface-success-ui);
}

body.nr-contract-page .signature-area,
body.nr-offer-page .signature-area {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

body.nr-contract-page .signature-box,
body.nr-offer-page .signature-box {
  min-height: 92px;
  display: grid;
  place-items: end start;
  padding: 16px;
  border-radius: 16px;
  border: 1px dashed var(--nr-paper-border-strong);
}

body.nr-offer-page .luxury-bar {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  padding: 16px;
  border-radius: 18px;
  background: var(--nr-paper-surface-muted);
}

body.nr-offer-page .total-price {
  font-size: 1.9rem;
  letter-spacing: -0.04em;
}

@media (max-width: 1100px) {
  body.nr-docs-page .docs-wrap,
  body.nr-neural-page .hero,
  body.nr-brand-suggest-page .content,
  body.nr-status-page .hero,
  body.nr-status-page .services,
  body.nr-contract-page .workspace,
  body.nr-offer-page .offer-app,
  body.nr-offer-page .offer-intro-grid,
  body.nr-offer-page .offer-intro-lists {
    grid-template-columns: 1fr;
  }

  body.nr-docs-page .docs-sidebar,
  body.nr-contract-page .editor-panel,
  body.nr-offer-page .admin-sidebar {
    position: static;
    top: auto;
  }

  body.nr-status-page .service-row,
  body.nr-status-page .metrics,
  body.nr-status-page .tech-row,
  body.nr-docs-page .docs-meta,
  body.nr-docs-page .tool-grid,
  body.nr-docs-page .grid-3,
  body.nr-guide-page .step-grid,
  body.nr-offer-page .doc-grid-2,
  body.nr-offer-page .legal-grid,
  body.nr-offer-page .summary-grid,
  body.nr-contract-page .grid-3,
  body.nr-offer-page .grid-3 {
    grid-template-columns: 1fr;
  }

  body.nr-docs-page .flow-strip {
    grid-template-columns: 1fr;
  }

  body.nr-docs-page .flow-arrow {
    transform: rotate(90deg);
  }
}

@media (max-width: 760px) {
  body.nr-blog-page .hero,
  body.nr-blog-page article,
  body.nr-status-page main,
  body.nr-brand-suggest-page .container,
  body.nr-changelog-page .container,
  body.nr-neural-page .page-shell,
  body.nr-contract-page .contract-shell,
  body.nr-offer-page .offer-intro,
  body.nr-offer-page .offer-app {
    width: min(calc(100% - 24px), 1480px);
  }

  body.nr-blog-page .features-grid,
  body.nr-status-page .tech-row,
  body.nr-brand-suggest-page .footer-grid,
  body.nr-contract-page .grid-2,
  body.nr-offer-page .grid-2,
  body.nr-contract-page .signature-area,
  body.nr-offer-page .signature-area {
    grid-template-columns: 1fr;
  }

  body.nr-status-page .hero-right {
    justify-items: start;
  }

  body.nr-status-page .service-row {
    grid-template-columns: 1fr;
  }

  body.nr-status-page .svc-latency,
  body.nr-status-page .svc-uptime {
    font-family: var(--mono);
    font-size: 11px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }
}

/* Offer + contract generators: restore missing editor/preview + print styles */
body:is(.nr-contract-page, .nr-offer-page) {
  overflow-x: hidden;
}

body:is(.nr-contract-page, .nr-offer-page) .doc-mobile-nav {
  display: none;
}

body.nr-contract-page .workspace,
body.nr-offer-page .offer-app {
  grid-template-columns: minmax(320px, var(--nr-sidebar-w)) minmax(0, 1fr);
}

body.nr-contract-page .editor-panel,
body.nr-offer-page .admin-sidebar,
body.nr-contract-page .editor-stack,
body.nr-offer-page .sidebar-shell,
body:is(.nr-contract-page, .nr-offer-page) .side-card,
body:is(.nr-contract-page, .nr-offer-page) .form-grid,
body:is(.nr-contract-page, .nr-offer-page) .grid-2,
body:is(.nr-contract-page, .nr-offer-page) .grid-3,
body:is(.nr-contract-page, .nr-offer-page) .input-group {
  min-width: 0;
}

body:is(.nr-contract-page, .nr-offer-page) .field,
body:is(.nr-contract-page, .nr-offer-page) .field-file {
  max-width: 100%;
  min-width: 0;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-area {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 18px;
  padding: 18px;
  border: 1px solid var(--nr-page-panel-border);
  border-radius: 26px;
  background: var(--nr-page-panel-bg);
  box-shadow: var(--nr-page-panel-shadow);
}

body:is(.nr-contract-page, .nr-offer-page) .preview-stack {
  min-width: 0;
  display: grid;
  gap: 0;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  border: 1px solid var(--nr-page-card-border);
  border-radius: 18px;
  background: rgba(255,255,255,.03);
}

body:is(.nr-contract-page, .nr-offer-page) .preview-status {
  flex: 1 1 auto;
  min-width: 0;
  color: var(--text-soft);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-align: center;
  text-transform: uppercase;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-nav-btn {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--nr-border-mid);
  border-radius: 12px;
  background: var(--nr-page-card-bg-strong);
  color: var(--text);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-nav-btn:disabled {
  opacity: .45;
  cursor: default;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-stack[data-pager-ready="1"] .a4-stage {
  display: none;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-stack[data-pager-ready="1"] .a4-stage.is-preview-current {
  display: grid;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-hint,
body.nr-contract-page .hint-box,
body.nr-offer-page .hint-row {
  padding: 16px 18px;
  border: 1px solid var(--nr-page-info-border);
  border-radius: 18px;
  background: linear-gradient(180deg, var(--nr-page-info-bg), rgba(255,255,255,.02));
  color: var(--text-soft);
  line-height: 1.72;
}

body.nr-offer-page .hint-row {
  display: grid;
  gap: 8px;
}

body:is(.nr-contract-page, .nr-offer-page) .btn-print {
  width: 100%;
  min-height: 54px;
  border: 0;
  border-radius: 18px;
  background: var(--nr-page-accent-cta);
  box-shadow: var(--nr-page-accent-shadow);
  color: var(--nr-text-contrast);
  font: inherit;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  cursor: pointer;
}

body:is(.nr-contract-page, .nr-offer-page) .btn-print:hover {
  transform: translateY(-1px);
}

body:is(.nr-contract-page, .nr-offer-page) .input-group.is-edit-focus,
body:is(.nr-contract-page, .nr-offer-page) .side-card.is-edit-focus,
body:is(.nr-contract-page, .nr-offer-page) .check-option.is-edit-focus,
body:is(.nr-contract-page, .nr-offer-page) .signature-pad-card.is-edit-focus,
body:is(.nr-contract-page, .nr-offer-page) .hint-box.is-edit-focus,
body:is(.nr-contract-page, .nr-offer-page) .hint-row.is-edit-focus,
body:is(.nr-contract-page, .nr-offer-page) [data-edit-target].is-edit-focus {
  box-shadow: 0 0 0 1px var(--nr-border-accent-ui), 0 0 0 4px var(--nr-surface-accent-strong);
}

body:is(.nr-contract-page, .nr-offer-page) [data-edit-target] {
  cursor: pointer;
  transition: box-shadow .18s ease, transform .18s ease;
}

body:is(.nr-contract-page, .nr-offer-page) [data-edit-target]:focus-visible {
  outline: none;
  box-shadow: 0 0 0 1px var(--nr-border-accent-ui), 0 0 0 4px var(--nr-surface-accent-strong);
}

body:is(.nr-contract-page, .nr-offer-page) .a4-stage {
  --doc-stage-pad-x: clamp(14px, 2vw, 26px);
  --doc-stage-pad-y: clamp(16px, 2.2vw, 28px);
  position: relative;
  width: 100%;
  display: grid;
  justify-items: center;
  padding: var(--doc-stage-pad-y) var(--doc-stage-pad-x);
  border-radius: 28px;
  background: linear-gradient(180deg, rgba(122,118,112,.96), rgba(92,88,84,.98));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 18px 42px rgba(0,0,0,.24);
  overflow: hidden;
}

body:is(.nr-contract-page, .nr-offer-page) .a4-page {
  position: relative;
  width: min(210mm, 100%);
  overflow: hidden;
  padding: 15mm 14mm 13mm;
  background: #fbf9f4;
  color: #141414;
  font-family: "Inter", system-ui, sans-serif;
  font-size: 13px;
  line-height: 1.48;
  border-radius: 2px;
  box-shadow: 0 26px 64px rgba(0,0,0,.34), 0 0 0 1px rgba(20,20,20,.08);
}

body:is(.nr-contract-page, .nr-offer-page) .a4-page::before {
  content: "";
  position: absolute;
  inset: 11mm 10mm;
  border: 1px solid rgba(17,17,17,.05);
  pointer-events: none;
}

body:is(.nr-contract-page, .nr-offer-page) .a4-stage.is-a4-preview-stage {
  height: calc(var(--doc-stage-height, 0px) + (var(--doc-stage-pad-y) * 2));
  display: block;
}

body:is(.nr-contract-page, .nr-offer-page) .a4-page.is-a4-preview-page {
  position: absolute;
  top: var(--doc-stage-pad-y);
  left: 50%;
  width: 794px;
  min-height: 1123px;
  margin: 0;
  max-width: none;
  transform-origin: top center;
  transform: translateX(-50%) scale(var(--doc-preview-scale, 1));
}

body.nr-contract-page .page-sheet,
body:is(.nr-contract-page, .nr-offer-page) .page-inner {
  display: grid;
  gap: 14px;
}

body:is(.nr-contract-page, .nr-offer-page) .system-header,
body:is(.nr-contract-page, .nr-offer-page) .page-footer-note {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  color: var(--nr-paper-text-dim);
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

body:is(.nr-contract-page, .nr-offer-page) .system-header {
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(17,17,17,.12);
}

body:is(.nr-contract-page, .nr-offer-page) .page-footer-note {
  padding-top: 8px;
  border-top: 1px solid rgba(17,17,17,.12);
}

body:is(.nr-contract-page, .nr-offer-page) .label-mini,
body.nr-contract-page .mini-label,
body.nr-contract-page .doc-eyebrow {
  color: #a06256;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

body:is(.nr-contract-page, .nr-offer-page) .page-note,
body:is(.nr-contract-page, .nr-offer-page) .notes-copy,
body:is(.nr-contract-page, .nr-offer-page) .legal-copy,
body:is(.nr-contract-page, .nr-offer-page) .process-copy,
body.nr-contract-page .copy-block,
body.nr-contract-page .clause-copy,
body.nr-contract-page .doc-lead {
  color: rgba(20,20,20,.72);
  line-height: 1.62;
  white-space: pre-line;
}

body:is(.nr-contract-page, .nr-offer-page) .doc-card,
body:is(.nr-contract-page, .nr-offer-page) .pay-card,
body:is(.nr-contract-page, .nr-offer-page) .legal-card,
body:is(.nr-contract-page, .nr-offer-page) .notes-box,
body.nr-contract-page .cover-card,
body.nr-contract-page .clause-box,
body.nr-contract-page .signature-foot-card {
  display: grid;
  gap: 8px;
  padding: 14px 16px;
  border: 1px solid rgba(20,20,20,.09);
  border-radius: 10px;
  background: rgba(255,255,255,.74);
  box-shadow: none;
}

body:is(.nr-contract-page, .nr-offer-page) .info-grid {
  display: grid;
  gap: 0;
}

body:is(.nr-contract-page, .nr-offer-page) .info-row {
  display: grid;
  grid-template-columns: 108px minmax(0, 1fr);
  gap: 12px;
  align-items: start;
  padding: 8px 0;
  border-top: 1px solid rgba(17,17,17,.08);
}

body:is(.nr-contract-page, .nr-offer-page) .info-row:first-child {
  border-top: 0;
  padding-top: 0;
}

body:is(.nr-contract-page, .nr-offer-page) .info-label {
  color: rgba(20,20,20,.48);
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body:is(.nr-contract-page, .nr-offer-page) .info-value,
body.nr-contract-page .copy-block,
body.nr-contract-page .clause-copy {
  min-width: 0;
  color: #141414;
  word-break: break-word;
  white-space: pre-line;
}

body:is(.nr-contract-page, .nr-offer-page) .info-value {
  text-align: left;
  font-weight: 600;
}

body.nr-contract-page .page-section-title,
body.nr-contract-page .doc-title,
body.nr-offer-page .page-brand-main,
body.nr-offer-page .page-title {
  color: #141414;
  font-weight: 800;
  letter-spacing: -0.05em;
}

body.nr-contract-page .doc-title-wrap,
body.nr-offer-page .page-lead {
  display: grid;
  gap: 8px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(17,17,17,.08);
}

body.nr-contract-page .doc-title {
  margin: 0;
  font-size: clamp(1.9rem, 3vw, 2.75rem);
  line-height: 0.96;
}

body.nr-contract-page .page-section-title,
body.nr-offer-page .page-title {
  margin: 0;
  font-size: clamp(1.36rem, 1.9vw, 1.8rem);
  line-height: 1.02;
}

body.nr-contract-page .brand-row,
body.nr-offer-page .page-brand {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(17,17,17,.08);
}

body.nr-contract-page .brand-lock,
body.nr-offer-page .page-brand-lock {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

body.nr-contract-page .brand-mark,
body.nr-offer-page .page-brand-mark {
  width: 70px;
  min-width: 70px;
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  overflow: hidden;
  border: 1px solid rgba(20,20,20,.08);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,240,232,.96));
}

body.nr-contract-page .brand-mark img,
body.nr-offer-page .page-brand-mark img {
  width: 72%;
  height: 72%;
  object-fit: contain;
}

body.nr-contract-page .brand-copy,
body.nr-offer-page .page-brand-copy {
  min-width: 0;
  display: grid;
  gap: 6px;
}

body.nr-contract-page .brand-main,
body.nr-offer-page .page-brand-main {
  font-size: clamp(1.65rem, 2.6vw, 2.32rem);
  line-height: 0.92;
}

body.nr-contract-page .brand-sub,
body.nr-offer-page .page-brand-sub {
  color: rgba(20,20,20,.68);
  line-height: 1.42;
}

body.nr-contract-page .cover-hero,
body.nr-offer-page .cover-meta,
body.nr-offer-page .spec-grid,
body.nr-contract-page .parties-grid,
body.nr-contract-page .terms-grid,
body.nr-contract-page .clause-grid,
body.nr-contract-page .signature-row,
body.nr-contract-page .signature-footer {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

body.nr-contract-page .cover-media,
body.nr-offer-page .image-frame,
body.nr-offer-page .detail-frame {
  overflow: hidden;
  border: 1px solid rgba(20,20,20,.08);
  border-radius: 12px;
  background: rgba(245,241,234,.9);
}

body.nr-contract-page .cover-media img,
body.nr-offer-page .image-frame img,
body.nr-offer-page .detail-frame img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

body.nr-contract-page .cover-media img,
body.nr-offer-page .image-frame img {
  aspect-ratio: 1.65 / 1;
}

body.nr-offer-page .detail-frame img {
  aspect-ratio: 5 / 4;
}

body.nr-contract-page .cover-card strong,
body.nr-contract-page .summary-value,
body.nr-offer-page .summary-value,
body.nr-offer-page .client-name,
body.nr-offer-page .ref-value {
  color: #141414;
  font-weight: 800;
}

body.nr-offer-page #page-cover .cover-meta {
  grid-template-columns: minmax(0, 1.55fr) minmax(180px, .85fr);
}

body.nr-contract-page #page-cover .cover-hero {
  grid-template-columns: minmax(0, 1.35fr) minmax(220px, .9fr);
}

body.nr-contract-page #page-terms .terms-grid {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
}

body.nr-contract-page #page-cover .brand-row .mini-label {
  display: inline-flex;
  align-items: center;
  min-height: 36px;
  padding: 0 12px;
  border: 1px solid rgba(20,20,20,.1);
  border-radius: 10px;
  background: rgba(255,255,255,.72);
  color: #141414;
}

body.nr-contract-page .summary-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

body.nr-contract-page .summary-box {
  display: grid;
  gap: 6px;
  padding: 12px 14px;
  border: 1px solid rgba(20,20,20,.08);
  border-radius: 10px;
  background: rgba(244,240,232,.86);
}

body.nr-contract-page .ordered-list {
  margin: 0;
  padding-left: 18px;
  color: rgba(20,20,20,.74);
  line-height: 1.58;
}

body.nr-contract-page .sign-page-copy,
body.nr-contract-page .signature-zone {
  display: grid;
  gap: 16px;
}

body.nr-contract-page .signature-zone .signature-box {
  min-height: 188px;
  align-content: space-between;
  justify-items: stretch;
  place-items: initial;
  gap: 14px;
  border-style: solid;
  border-color: rgba(20,20,20,.12);
  border-radius: 10px;
  background: rgba(255,255,255,.78);
}

body.nr-contract-page .signature-preview {
  min-height: 98px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: rgba(244,240,232,.86);
  overflow: hidden;
}

body.nr-contract-page .signature-preview img {
  display: none;
  max-width: 100%;
  max-height: 78px;
  object-fit: contain;
}

body.nr-contract-page .signature-placeholder {
  color: rgba(20,20,20,.5);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
}

body.nr-contract-page .signature-line {
  width: 100%;
  height: 1px;
  background: rgba(20,20,20,.18);
}

body.nr-contract-page .signature-meta {
  display: grid;
  gap: 4px;
}

body.nr-contract-page .signature-meta strong {
  color: #141414;
}

body.nr-contract-page .signature-meta span,
body.nr-contract-page .signature-foot-card span {
  color: rgba(20,20,20,.68);
}

body.nr-contract-page .signature-foot-card strong {
  color: #141414;
  font-size: 1.05rem;
}

body.nr-contract-page .signature-tools {
  display: grid;
  gap: 16px;
}

body.nr-contract-page .signature-pad-card {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid var(--nr-page-card-border);
  border-radius: 18px;
  background: var(--nr-page-card-bg-strong);
}

body.nr-contract-page .signature-pad-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

body.nr-contract-page .signature-pad-head strong {
  display: block;
  color: var(--text);
}

body.nr-contract-page .signature-pad-head span {
  color: var(--text-dim);
  font-size: .92rem;
  line-height: 1.55;
}

body.nr-contract-page .signature-canvas {
  width: 100%;
  height: 164px;
  display: block;
  border: 1px dashed var(--nr-border-strong-ui);
  border-radius: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
  touch-action: none;
  cursor: crosshair;
}

body.nr-contract-page .signature-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

body.nr-contract-page .signature-actions button {
  min-height: 38px;
  padding: 0 14px;
  border: 1px solid var(--nr-border-mid);
  border-radius: 12px;
  background: var(--nr-page-card-bg);
  color: var(--text);
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

body.nr-contract-page .signature-actions button:hover {
  background: var(--nr-page-card-bg-strong);
}

body.nr-offer-page .check-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

body.nr-offer-page .check-option {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid var(--nr-border-mid);
  border-radius: 14px;
  background: var(--nr-page-card-bg-strong);
  color: var(--text-soft);
  line-height: 1.46;
}

body.nr-offer-page .check-option input {
  margin-top: 4px;
  accent-color: var(--accent-soft);
}

body.nr-offer-page .upload-label {
  color: var(--text-dim);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.nr-offer-page .upload-note {
  margin-top: 10px;
  color: var(--text-dim);
  font-size: .92rem;
  line-height: 1.55;
}

body.nr-offer-page .brand-file {
  display: none;
  max-width: 180px;
  max-height: 72px;
  object-fit: contain;
}

body.nr-offer-page .meta-card {
  display: grid;
  gap: 12px;
}

body.nr-offer-page .client-name {
  margin-top: 2px;
  max-width: 14ch;
  font-size: clamp(1.48rem, 2.2vw, 2.08rem);
  line-height: 1.02;
  letter-spacing: -0.05em;
  text-transform: uppercase;
}

body.nr-offer-page .cover-chip-row,
body.nr-offer-page .token-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

body.nr-offer-page .cover-chip {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  min-height: 36px;
  padding: 0 10px;
  border: 1px solid rgba(20,20,20,.08);
  border-radius: 10px;
  background: rgba(244,240,232,.82);
  color: rgba(20,20,20,.78);
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.nr-offer-page .cover-chip.is-accent {
  border-color: rgba(160,98,86,.2);
  background: rgba(160,98,86,.12);
  color: #141414;
}

body.nr-offer-page .ref-block {
  display: grid;
  align-content: space-between;
  gap: 8px;
}

body.nr-offer-page .ref-value {
  font-size: clamp(1.4rem, 2vw, 1.82rem);
  line-height: 1;
  letter-spacing: -0.04em;
}

body.nr-offer-page .curr-val {
  font-size: .72em;
  color: rgba(20,20,20,.46);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

body.nr-offer-page .file-list,
body.nr-offer-page .quality-list,
body.nr-offer-page .risk-list {
  margin: 0;
  padding-left: 18px;
}

body.nr-offer-page .file-list {
  color: var(--nr-paper-text-soft);
  line-height: 1.65;
}

body.nr-offer-page .file-list:empty::after {
  content: "Brak zalacznikow.";
  display: block;
  color: var(--nr-paper-text-dim);
  font-family: var(--mono);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

body.nr-offer-page .flow-step {
  display: grid;
  gap: 8px;
  min-height: 112px;
}

body.nr-offer-page .step-no {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  min-height: 26px;
  border-radius: 8px;
  background: rgba(244,240,232,.9);
  color: #141414;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.14em;
}

body.nr-offer-page .status-stamp {
  position: absolute;
  top: 18mm;
  right: 18mm;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  padding: 0 12px;
  border: 1px solid rgba(160,98,86,.18);
  border-radius: 10px;
  background: rgba(160,98,86,.1);
  color: #141414;
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.nr-offer-page .page-bottom-meta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  padding-top: 10px;
  border-top: 1px solid rgba(17,17,17,.08);
}

body.nr-offer-page .atelier-copy,
body.nr-offer-page .luxury-meta {
  color: rgba(20,20,20,.72);
  line-height: 1.52;
}

body.nr-offer-page .qr-placeholder {
  width: 96px;
  min-height: 96px;
  display: grid;
  place-items: center;
  gap: 6px;
  padding: 8px;
  border: 1px dashed rgba(20,20,20,.18);
  border-radius: 10px;
  background: rgba(244,240,232,.86);
  text-align: center;
}

body.nr-offer-page .qr-placeholder img {
  width: 100%;
  height: auto;
  display: block;
}

body.nr-offer-page .qr-fallback {
  color: #141414;
  font-family: var(--mono);
  font-size: .94rem;
  font-weight: 800;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

body.nr-offer-page .luxury-meta {
  display: grid;
  gap: 6px;
}

body.nr-offer-page .summary-card {
  padding: 12px 14px;
  border: 1px solid rgba(20,20,20,.08);
  border-radius: 10px;
  background: rgba(244,240,232,.82);
}

body.nr-offer-page .status-pill {
  min-height: 28px;
  border-radius: 9px;
  background: rgba(20,20,20,.07);
  font-size: 9px;
  letter-spacing: 0.12em;
}

body.nr-offer-page .status-pill.is-ok {
  background: rgba(76,135,90,.12);
}

body.nr-offer-page .compare-table th,
body.nr-offer-page .compare-table td {
  padding: 9px 10px;
  border: 1px solid rgba(20,20,20,.08);
}

body.nr-offer-page .compare-table thead th {
  background: rgba(244,240,232,.92);
  color: rgba(20,20,20,.62);
  font-family: var(--mono);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

body.nr-offer-page .compare-table tbody tr:nth-child(even) td {
  background: rgba(20,20,20,.02);
}

body.nr-offer-page .flow-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

body.nr-offer-page .quality-list,
body.nr-offer-page .risk-list {
  display: grid;
  gap: 8px;
}

body.nr-offer-page .pay-row {
  align-items: end;
  padding: 8px 0;
  border-top: 1px solid rgba(17,17,17,.08);
}

body.nr-offer-page .pay-val {
  text-align: right;
  font-weight: 800;
}

body.nr-offer-page .luxury-bar {
  align-items: start;
  padding: 14px 16px;
  border: 1px solid rgba(20,20,20,.08);
  border-radius: 10px;
  background: rgba(244,240,232,.86);
}

body.nr-offer-page .total-price {
  font-size: 2.15rem;
  line-height: 1;
}

body.nr-offer-page #page-cover .page-brand {
  border-bottom: 0;
  padding-bottom: 2px;
}

body.nr-offer-page #page-cover .image-frame {
  margin-top: 2px;
}

body.nr-offer-page #page-brief .doc-grid-2,
body.nr-offer-page #page-finance .doc-grid-2,
body.nr-offer-page #page-process .doc-grid-2,
body.nr-offer-page #page-tech .spec-grid {
  align-items: start;
}

body.nr-contract-page .doc-card,
body.nr-contract-page .notes-box {
  background: rgba(255,255,255,.74);
}

body.nr-contract-page .page-note {
  max-width: 62ch;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-area {
  scrollbar-gutter: stable both-edges;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-toolbar {
  position: sticky;
  top: 0;
  z-index: 2;
}

body:is(.nr-contract-page, .nr-offer-page) .a4-stage {
  --doc-stage-pad-x: clamp(12px, 1.7vw, 22px);
  --doc-stage-pad-y: clamp(14px, 1.9vw, 24px);
  border-radius: 20px;
  background: linear-gradient(180deg, rgba(190,184,176,.98), rgba(166,159,150,.98));
  box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 20px 34px rgba(0,0,0,.16);
}

body:is(.nr-contract-page, .nr-offer-page) .a4-page {
  width: 210mm;
  min-width: 210mm;
  height: 297mm;
  min-height: 297mm;
  box-sizing: border-box;
  padding: 12.5mm 11.5mm 11mm;
  background: #f8f5ef;
  font-size: 11.6px;
  line-height: 1.42;
  border-radius: 1px;
  box-shadow: 0 22px 56px rgba(0,0,0,.26), 0 0 0 1px rgba(20,20,20,.08);
}

body:is(.nr-contract-page, .nr-offer-page) .a4-page::before {
  inset: 8.5mm;
}

body:is(.nr-contract-page, .nr-offer-page) .a4-page.is-a4-preview-page {
  min-width: 794px;
  height: 1123px;
}

body.nr-contract-page .page-sheet,
body:is(.nr-contract-page, .nr-offer-page) .page-inner {
  gap: 10px;
  min-height: 100%;
  grid-auto-rows: max-content;
}

body:is(.nr-contract-page, .nr-offer-page) .system-header,
body:is(.nr-contract-page, .nr-offer-page) .page-footer-note {
  font-size: 8px;
  letter-spacing: 0.14em;
}

body:is(.nr-contract-page, .nr-offer-page) .system-header {
  padding-bottom: 6px;
}

body:is(.nr-contract-page, .nr-offer-page) .page-footer-note {
  padding-top: 6px;
}

body:is(.nr-contract-page, .nr-offer-page) .label-mini,
body.nr-contract-page .mini-label,
body.nr-contract-page .doc-eyebrow {
  font-size: 8px;
  letter-spacing: 0.16em;
}

body:is(.nr-contract-page, .nr-offer-page) .page-note,
body:is(.nr-contract-page, .nr-offer-page) .notes-copy,
body:is(.nr-contract-page, .nr-offer-page) .legal-copy,
body:is(.nr-contract-page, .nr-offer-page) .process-copy,
body.nr-contract-page .copy-block,
body.nr-contract-page .clause-copy,
body.nr-contract-page .doc-lead,
body.nr-contract-page .ordered-list,
body.nr-offer-page .quality-list,
body.nr-offer-page .risk-list {
  line-height: 1.42;
}

body:is(.nr-contract-page, .nr-offer-page) .doc-card,
body:is(.nr-contract-page, .nr-offer-page) .pay-card,
body:is(.nr-contract-page, .nr-offer-page) .legal-card,
body:is(.nr-contract-page, .nr-offer-page) .notes-box,
body.nr-contract-page .cover-card,
body.nr-contract-page .clause-box,
body.nr-contract-page .signature-foot-card {
  gap: 6px;
  padding: 10px 12px;
  border-radius: 8px;
  background: rgba(255,255,255,.82);
  break-inside: avoid;
  page-break-inside: avoid;
}

body:is(.nr-contract-page, .nr-offer-page) .info-row {
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 9px;
  padding: 6px 0;
}

body:is(.nr-contract-page, .nr-offer-page) .info-label {
  font-size: 8px;
  letter-spacing: 0.12em;
}

body.nr-contract-page .doc-title-wrap,
body.nr-offer-page .page-lead {
  gap: 6px;
  padding-bottom: 8px;
}

body.nr-contract-page .doc-title {
  font-size: clamp(1.7rem, 2.5vw, 2.32rem);
  line-height: 0.94;
}

body.nr-contract-page .page-section-title,
body.nr-offer-page .page-title {
  font-size: clamp(1.14rem, 1.55vw, 1.48rem);
  line-height: 1.04;
}

body.nr-contract-page .brand-row,
body.nr-offer-page .page-brand {
  gap: 12px;
  padding-bottom: 8px;
}

body.nr-contract-page .brand-lock,
body.nr-offer-page .page-brand-lock {
  gap: 12px;
}

body.nr-contract-page .brand-mark,
body.nr-offer-page .page-brand-mark {
  width: 58px;
  min-width: 58px;
  border-radius: 12px;
}

body.nr-contract-page .brand-copy,
body.nr-offer-page .page-brand-copy {
  gap: 4px;
}

body.nr-contract-page .brand-main,
body.nr-offer-page .page-brand-main {
  font-size: clamp(1.42rem, 2.15vw, 1.96rem);
}

body.nr-contract-page .brand-sub,
body.nr-offer-page .page-brand-sub {
  line-height: 1.36;
}

body.nr-contract-page .cover-hero,
body.nr-offer-page .cover-meta,
body.nr-offer-page .spec-grid,
body.nr-contract-page .parties-grid,
body.nr-contract-page .terms-grid,
body.nr-contract-page .clause-grid,
body.nr-contract-page .signature-row,
body.nr-contract-page .signature-footer {
  gap: 10px;
}

body.nr-contract-page .cover-media,
body.nr-offer-page .image-frame,
body.nr-offer-page .detail-frame {
  border-radius: 8px;
}

body.nr-contract-page .cover-media img,
body.nr-offer-page .image-frame img {
  aspect-ratio: 1.95 / 1;
}

body.nr-offer-page .detail-frame img {
  aspect-ratio: 1.55 / 1;
}

body.nr-contract-page .summary-box,
body.nr-offer-page .summary-card {
  padding: 9px 11px;
  border-radius: 8px;
}

body.nr-contract-page .ordered-list,
body.nr-offer-page .file-list,
body.nr-offer-page .quality-list,
body.nr-offer-page .risk-list {
  padding-left: 16px;
}

body.nr-contract-page .sign-page-copy,
body.nr-contract-page .signature-zone {
  gap: 12px;
}

body.nr-contract-page .signature-zone .signature-box {
  min-height: 152px;
  gap: 12px;
  border-radius: 8px;
}

body.nr-contract-page .signature-preview {
  min-height: 76px;
}

body.nr-offer-page .meta-card {
  gap: 10px;
}

body.nr-offer-page .client-name {
  max-width: 15ch;
  font-size: clamp(1.18rem, 1.75vw, 1.62rem);
  line-height: 1.04;
}

body.nr-offer-page .cover-chip {
  min-height: 30px;
  padding: 0 8px;
  border-radius: 8px;
  font-size: 8px;
  letter-spacing: 0.1em;
}

body.nr-offer-page .ref-value {
  font-size: clamp(1.12rem, 1.65vw, 1.42rem);
}

body.nr-offer-page .flow-step {
  gap: 6px;
  min-height: 90px;
}

body.nr-offer-page .step-no {
  width: 32px;
  min-height: 22px;
  border-radius: 6px;
  font-size: 8px;
}

body.nr-offer-page .status-stamp {
  top: 12mm;
  right: 12mm;
  min-height: 24px;
  padding: 0 10px;
  border-radius: 8px;
  font-size: 8px;
  letter-spacing: 0.12em;
}

body.nr-offer-page .page-bottom-meta {
  gap: 14px;
  padding-top: 8px;
}

body.nr-offer-page .atelier-copy,
body.nr-offer-page .luxury-meta {
  line-height: 1.42;
}

body.nr-offer-page .qr-placeholder {
  width: 76px;
  min-height: 76px;
  padding: 6px;
  border-radius: 8px;
}

body.nr-offer-page .qr-fallback {
  font-size: .8rem;
}

body.nr-offer-page .status-pill {
  min-height: 24px;
  border-radius: 7px;
  font-size: 8px;
}

body.nr-offer-page .compare-table {
  font-size: 10.6px;
}

body.nr-offer-page .compare-table th,
body.nr-offer-page .compare-table td {
  padding: 7px 8px;
}

body.nr-offer-page .flow-grid {
  gap: 8px;
}

body.nr-offer-page .quality-list,
body.nr-offer-page .risk-list {
  gap: 6px;
}

body.nr-offer-page .pay-row {
  padding: 6px 0;
}

body.nr-offer-page .luxury-bar {
  padding: 10px 12px;
  border-radius: 8px;
}

body.nr-offer-page .total-price {
  font-size: 1.62rem;
}

body.nr-offer-page #page-brief .doc-grid-2,
body.nr-offer-page #page-finance .doc-grid-2,
body.nr-offer-page #page-process .doc-grid-2,
body.nr-offer-page #page-terms .doc-grid-2,
body.nr-offer-page #page-tech .spec-grid {
  align-items: start;
}

body:is(.nr-contract-page, .nr-offer-page) .preview-area {
  padding: 14px;
  border-radius: 18px;
  background: rgba(12,12,12,.78);
}

body:is(.nr-contract-page, .nr-offer-page) .preview-toolbar {
  padding: 8px 10px;
  border-color: rgba(255,255,255,.08);
  border-radius: 12px;
  background: rgba(255,255,255,.02);
  backdrop-filter: blur(10px);
}

body:is(.nr-contract-page, .nr-offer-page) .preview-status,
body:is(.nr-contract-page, .nr-offer-page) .preview-nav-btn {
  color: rgba(255,255,255,.88);
}

body:is(.nr-contract-page, .nr-offer-page) .preview-nav-btn {
  border-color: rgba(255,255,255,.12);
  border-radius: 10px;
  background: rgba(255,255,255,.03);
}

body:is(.nr-contract-page, .nr-offer-page) .a4-stage {
  --doc-stage-pad-x: clamp(12px, 1.8vw, 20px);
  --doc-stage-pad-y: clamp(14px, 1.9vw, 22px);
  border-radius: 16px;
  background: #717171;
  box-shadow: none;
}

body:is(.nr-contract-page, .nr-offer-page) .a4-page {
  padding: 11mm 10mm 9.5mm;
  background: #060606;
  color: #f3f1eb;
  font-size: 10.8px;
  line-height: 1.34;
  border-radius: 0;
  box-shadow: 0 18px 30px rgba(0,0,0,.24);
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

body:is(.nr-contract-page, .nr-offer-page) .a4-page::before {
  inset: 7.5mm;
  border-color: rgba(255,255,255,.12);
}

body.nr-contract-page .page-sheet,
body:is(.nr-contract-page, .nr-offer-page) .page-inner {
  gap: 8px;
}

body:is(.nr-contract-page, .nr-offer-page) .system-header,
body:is(.nr-contract-page, .nr-offer-page) .page-footer-note {
  color: rgba(255,255,255,.7);
  font-size: 7.4px;
  letter-spacing: 0.12em;
  border-color: rgba(255,255,255,.16);
}

body:is(.nr-contract-page, .nr-offer-page) .label-mini,
body.nr-contract-page .mini-label,
body.nr-contract-page .doc-eyebrow,
body:is(.nr-contract-page, .nr-offer-page) .info-label,
body.nr-offer-page .curr-val {
  color: rgba(255,255,255,.56);
}

body:is(.nr-contract-page, .nr-offer-page) .label-mini,
body.nr-contract-page .mini-label,
body.nr-contract-page .doc-eyebrow {
  font-size: 7.2px;
  letter-spacing: 0.14em;
}

body:is(.nr-contract-page, .nr-offer-page) .page-note,
body:is(.nr-contract-page, .nr-offer-page) .notes-copy,
body:is(.nr-contract-page, .nr-offer-page) .legal-copy,
body:is(.nr-contract-page, .nr-offer-page) .process-copy,
body.nr-contract-page .copy-block,
body.nr-contract-page .clause-copy,
body.nr-contract-page .doc-lead,
body.nr-contract-page .brand-sub,
body.nr-offer-page .page-brand-sub,
body.nr-offer-page .atelier-copy,
body.nr-offer-page .luxury-meta,
body.nr-contract-page .signature-meta span,
body.nr-contract-page .signature-foot-card span {
  color: rgba(255,255,255,.78);
}

body:is(.nr-contract-page, .nr-offer-page) .doc-card,
body:is(.nr-contract-page, .nr-offer-page) .pay-card,
body:is(.nr-contract-page, .nr-offer-page) .legal-card,
body:is(.nr-contract-page, .nr-offer-page) .notes-box,
body.nr-contract-page .cover-card,
body.nr-contract-page .clause-box,
body.nr-contract-page .signature-foot-card,
body.nr-contract-page .summary-box,
body.nr-offer-page .summary-card {
  padding: 9px 10px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 0;
  background: rgba(255,255,255,.02);
}

body:is(.nr-contract-page, .nr-offer-page) .info-row,
body.nr-offer-page .pay-row {
  gap: 8px;
  padding: 5px 0;
  border-color: rgba(255,255,255,.12);
}

body:is(.nr-contract-page, .nr-offer-page) .info-label {
  font-size: 7.2px;
  letter-spacing: 0.1em;
}

body:is(.nr-contract-page, .nr-offer-page) .info-value,
body.nr-contract-page .copy-block,
body.nr-contract-page .clause-copy,
body.nr-contract-page .cover-card strong,
body.nr-contract-page .summary-value,
body.nr-offer-page .summary-value,
body.nr-offer-page .client-name,
body.nr-offer-page .ref-value,
body.nr-contract-page .page-section-title,
body.nr-contract-page .doc-title,
body.nr-offer-page .page-brand-main,
body.nr-offer-page .page-title,
body.nr-contract-page .brand-main,
body.nr-contract-page .signature-foot-card strong,
body.nr-contract-page .signature-meta strong,
body.nr-offer-page .total-price,
body.nr-offer-page .qr-fallback {
  color: #fff;
}

body.nr-contract-page .doc-title {
  font-size: clamp(1.9rem, 2.7vw, 2.6rem);
  letter-spacing: -0.04em;
  text-transform: uppercase;
}

body.nr-contract-page .page-section-title,
body.nr-offer-page .page-title {
  font-size: clamp(1rem, 1.4vw, 1.32rem);
  text-transform: uppercase;
  letter-spacing: 0.01em;
}

body.nr-contract-page .brand-row,
body.nr-offer-page .page-brand,
body.nr-contract-page .doc-title-wrap,
body.nr-offer-page .page-lead {
  border-color: rgba(255,255,255,.16);
}

body.nr-contract-page .brand-mark,
body.nr-offer-page .page-brand-mark {
  border-color: rgba(255,255,255,.2);
  border-radius: 0;
  background: #f3f1eb;
}

body.nr-contract-page .cover-media,
body.nr-offer-page .image-frame,
body.nr-offer-page .detail-frame {
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 0;
  background: #111;
}

body.nr-contract-page .cover-media img,
body.nr-offer-page .image-frame img,
body.nr-offer-page .detail-frame img {
  filter: saturate(.92) contrast(1.02);
}

body.nr-offer-page #page-cover .page-brand {
  border-bottom: 1px solid rgba(255,255,255,.16);
  padding-bottom: 8px;
}

body.nr-offer-page .cover-chip,
body.nr-offer-page .status-pill,
body.nr-offer-page .status-stamp,
body.nr-contract-page #page-cover .brand-row .mini-label {
  min-height: 22px;
  padding: 0 8px;
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 0;
  background: rgba(255,255,255,.04);
  color: #fff;
  font-size: 7.2px;
  letter-spacing: 0.12em;
}

body.nr-offer-page .status-pill.is-ok,
body.nr-offer-page .cover-chip.is-accent {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.24);
  color: #fff;
}

body.nr-offer-page .page-bottom-meta,
body.nr-offer-page .luxury-bar {
  border-color: rgba(255,255,255,.16);
}

body.nr-offer-page .luxury-bar,
body.nr-offer-page .qr-placeholder {
  border: 1px solid rgba(255,255,255,.16);
  border-radius: 0;
  background: rgba(255,255,255,.02);
}

body.nr-offer-page .compare-table th,
body.nr-offer-page .compare-table td {
  border-color: rgba(255,255,255,.16);
}

body.nr-offer-page .compare-table thead th {
  background: rgba(255,255,255,.06);
  color: rgba(255,255,255,.68);
}

body.nr-offer-page .compare-table tbody tr:nth-child(even) td {
  background: rgba(255,255,255,.02);
}

body.nr-offer-page .flow-step {
  min-height: 84px;
}

body.nr-offer-page .step-no {
  background: rgba(255,255,255,.08);
  color: #fff;
}

body.nr-contract-page .signature-zone .signature-box,
body.nr-contract-page .signature-preview {
  border-radius: 0;
  background: rgba(255,255,255,.02);
  border-color: rgba(255,255,255,.16);
}

body.nr-contract-page .signature-line {
  background: rgba(255,255,255,.22);
}

body.nr-contract-page .signature-placeholder {
  color: rgba(255,255,255,.52);
}

@media (min-width: 901px) {
  body:is(.nr-contract-page, .nr-offer-page) .preview-area {
    position: sticky;
    top: 88px;
    align-self: start;
    max-height: calc(100vh - 104px);
    overflow: auto;
  }
}

@media (max-width: 1100px) {
  body.nr-offer-page .check-grid,
  body.nr-offer-page .cover-meta,
  body.nr-offer-page .spec-grid,
  body.nr-contract-page .cover-hero,
  body.nr-contract-page .summary-grid,
  body.nr-contract-page .parties-grid,
  body.nr-contract-page .terms-grid,
  body.nr-contract-page .clause-grid,
  body.nr-contract-page .signature-row,
  body.nr-contract-page .signature-footer {
    grid-template-columns: 1fr;
  }

  body.nr-offer-page .flow-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 760px) {
  body.nr-contract-page .contract-shell,
  body.nr-offer-page .offer-intro,
  body.nr-offer-page .offer-app {
    padding-top: 92px;
  }

  body.nr-offer-page .offer-intro {
    padding-bottom: 14px;
  }

  body.nr-offer-page .offer-intro-shell {
    padding: 18px;
  }

  body.nr-offer-page .offer-intro-lists {
    display: none;
  }

  body:is(.nr-contract-page, .nr-offer-page) .preview-area {
    padding: 14px;
    border-radius: 22px;
  }

  body:is(.nr-contract-page, .nr-offer-page) .a4-stage {
    padding-left: 0;
    padding-right: 0;
  }

  body:is(.nr-contract-page, .nr-offer-page) .a4-page {
    padding: 15mm 11mm 10mm;
    border-radius: 8px;
  }

  body:is(.nr-contract-page, .nr-offer-page) .system-header,
  body:is(.nr-contract-page, .nr-offer-page) .page-footer-note,
  body.nr-contract-page .brand-row,
  body.nr-offer-page .page-brand,
  body.nr-offer-page .luxury-bar {
    flex-direction: column;
    align-items: flex-start;
  }

  body.nr-offer-page .page-bottom-meta {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 900px) {
  body.nr-contract-page .workspace,
  body.nr-offer-page .offer-app {
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  body:is(.nr-contract-page, .nr-offer-page) .doc-mobile-nav {
    position: sticky;
    top: 78px;
    z-index: 8;
    display: flex;
    gap: 10px;
    padding: 10px;
    border: 1px solid var(--nr-page-panel-border);
    border-radius: 18px;
    background: var(--nr-page-panel-bg);
    box-shadow: var(--nr-page-panel-shadow);
  }

  body:is(.nr-contract-page, .nr-offer-page) .doc-mobile-nav a {
    flex: 1 1 0;
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 14px;
    border: 1px solid var(--nr-border-mid);
    border-radius: 14px;
    background: var(--nr-page-card-bg-strong);
    color: var(--text);
    font-family: var(--mono);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-decoration: none;
    text-transform: uppercase;
  }

  body:is(.nr-contract-page, .nr-offer-page) .preview-toolbar {
    padding: 8px;
    border-radius: 16px;
  }

  body:is(.nr-contract-page, .nr-offer-page) .preview-status {
    font-size: 10px;
    letter-spacing: 0.12em;
  }

  body:is(.nr-contract-page, .nr-offer-page) .preview-nav-btn {
    min-height: 36px;
    padding: 0 10px;
    font-size: 12px;
  }

  body:is(.nr-contract-page, .nr-offer-page) .preview-area {
    order: 2;
    width: 100%;
    overflow: visible;
  }

  body.nr-contract-page .editor-panel,
  body.nr-offer-page .admin-sidebar {
    order: 1;
    width: 100%;
  }

  body:is(.nr-contract-page, .nr-offer-page) .preview-hint {
    display: none;
  }

  body:is(.nr-contract-page, .nr-offer-page) .preview-stack {
    overflow: visible;
    padding-right: 0;
  }

  body:is(.nr-contract-page, .nr-offer-page) .a4-stage {
    justify-items: center;
  }
}

@media print {
  body.nr-contract-page,
  body.nr-offer-page {
    background: #fff;
  }

  body.nr-contract-page #hero-main-header,
  body.nr-contract-page #hero-nav-overlay,
  body.nr-offer-page #hero-main-header,
  body.nr-offer-page #hero-nav-overlay,
  body.nr-contract-page .screen-only,
  body.nr-offer-page .screen-only {
    display: none;
  }

  body.nr-contract-page .contract-shell,
  body.nr-offer-page .offer-intro,
  body.nr-offer-page .offer-app {
    width: 100%;
    margin: 0;
    padding: 0;
  }

  body.nr-contract-page .workspace,
  body.nr-offer-page .offer-app {
    display: block;
  }

  body.nr-contract-page .preview-area,
  body.nr-offer-page .preview-area {
    position: static;
    max-height: none;
    overflow: visible;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
  }

  body.nr-contract-page .preview-stack,
  body.nr-offer-page .preview-stack {
    gap: 0;
  }

  body.nr-contract-page .preview-toolbar,
  body.nr-offer-page .preview-toolbar {
    display: none;
  }

  body.nr-contract-page .preview-stack[data-pager-ready="1"] .a4-stage,
  body.nr-offer-page .preview-stack[data-pager-ready="1"] .a4-stage,
  body.nr-contract-page .preview-stack[data-pager-ready="1"] .a4-stage.is-preview-current,
  body.nr-offer-page .preview-stack[data-pager-ready="1"] .a4-stage.is-preview-current {
    display: grid;
  }

  body.nr-contract-page .a4-stage,
  body.nr-offer-page .a4-stage {
    padding: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    overflow: visible;
    break-after: page;
    page-break-after: always;
  }

  body.nr-contract-page .a4-stage:last-child,
  body.nr-offer-page .a4-stage:last-child {
    break-after: auto;
    page-break-after: auto;
  }

  body.nr-contract-page .a4-page,
  body.nr-offer-page .a4-page {
    width: 210mm;
    min-width: 210mm;
    height: 297mm;
    min-height: 297mm;
    margin: 0 auto;
    border-radius: 0;
    box-shadow: none;
  }
}

/* === NR MIGRATED PAGE CSS: END === */
