/* NEXAKOR Phase 17 R10H — Premium app-icon surface */
.nx438-appicon{display:inline-grid;place-items:center;width:34px;height:34px;flex:0 0 34px;overflow:visible;filter:drop-shadow(0 2px 3px rgba(2,6,23,.18));transition:transform .18s ease,filter .18s ease}
.nx438-appicon-svg{display:block;width:100%;height:100%;overflow:visible;shape-rendering:geometricPrecision}
.nx438-glyph>*{fill:none;stroke:#fff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.nx438-glyph .nx438-solid{fill:#fff;stroke:none}
.nx438-glyph .nx438-secondary{fill:#fff;fill-opacity:.32;stroke:none}
.nx438-glyph .nx438-ink{stroke:var(--nx438-c2);stroke-width:1.9;fill:none}
.nx438-glyph .nx438-ink-fill{fill:var(--nx438-c2);stroke:none}
.nx438-glyph{filter:drop-shadow(0 1px 1px rgba(0,0,0,.14))}
.nx438-tile{stroke:rgba(255,255,255,.22);stroke-width:.65}
.sidebar .nx438-appicon{width:36px;height:36px;flex-basis:36px}
.sidebar .nav-item:is(:hover,.active) .nx438-appicon{transform:none!important}
.nx-v426-module .nx438-appicon{width:100%;height:100%;flex-basis:auto}
.nx-v430-mini-icon .nx438-appicon{width:36px;height:36px;flex-basis:36px}
.nx-v431-quickrail .nx438-appicon{width:34px;height:34px;flex-basis:34px}
.workspace-dock .nx438-appicon,.workspace-dock-item .nx438-appicon{width:42px;height:42px;flex-basis:42px}
.nx-r8-window-rail .nx438-appicon{width:34px;height:34px;flex-basis:34px}
:where(.nav-item,.nx-v426-module,.nx-v431-quickrail button,.workspace-dock-item,.nx-r8-rail-item):hover .nx438-appicon{transform:translateY(-2px) scale(1.08);filter:drop-shadow(0 10px 16px color-mix(in srgb,var(--nx438-c1,#3b82f6) 28%,transparent)) saturate(1.08)}
:where(.nav-item,.nx-v426-module,.workspace-dock-item,.nx-r8-rail-item).active .nx438-appicon{transform:scale(1.05);filter:drop-shadow(0 8px 15px color-mix(in srgb,var(--nx438-c1,#3b82f6) 34%,transparent)) saturate(1.12)}
/* Suppress legacy vector art when a premium app icon is present. */
:where(.nav-item,.nx-v426-module,.nx-v431-quickrail button,.workspace-dock-item,.nx-r8-rail-item):has(.nx438-appicon) :where(.nx433-icon-wrap,.nx431-icon-stack,.nx-module-svg,.nx-rich-nav-icon):not(:has(.nx438-appicon)){display:none!important}
@media(prefers-reduced-motion:reduce){.nx438-appicon{transition:none!important;transform:none!important}}

/* Optical host sizing so the premium tile is never clipped by legacy 20/22px wrappers. */
.sidebar .nav-item>.nav-icon:has(.nx438-appicon),
.sidebar .nav-item>.nx-rich-nav-icon:has(.nx438-appicon){width:36px!important;height:36px!important;flex:0 0 36px!important;overflow:visible!important}
.nx-v426-module .nx-v426-icon:has(.nx438-appicon){width:46px!important;height:46px!important;min-width:46px!important;overflow:visible!important}
.workspace-dock-icon:has(.nx438-appicon){width:42px!important;height:42px!important;overflow:visible!important}
.nx-r8-rail-icon:has(.nx438-appicon){width:34px!important;height:34px!important;overflow:visible!important}

/* The SVG already contains its own tile. Do not nest it inside another glass
   tile, pseudo-element highlight or padded legacy icon wrapper. */
html[data-icon-family] :is(.nx-rich-nav-icon,.nx-v426-icon,.nx-v430-mini-icon,.workspace-dock-icon,.nx-r8-rail-icon):has(.nx438-appicon){display:inline-grid!important;place-items:center;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;overflow:visible!important}
html[data-icon-family] :is(.nx-rich-nav-icon,.nx-v426-icon,.nx-v430-mini-icon,.workspace-dock-icon,.nx-r8-rail-icon):has(.nx438-appicon)::before,
html[data-icon-family] :is(.nx-rich-nav-icon,.nx-v426-icon,.nx-v430-mini-icon,.workspace-dock-icon,.nx-r8-rail-icon):has(.nx438-appicon)::after{content:none!important}
html[data-icon-family] .nx438-appicon>.nx438-appicon-svg{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important}
.nx435-commandbar .nx435-cmd-icon:has(.nx438-appicon){width:24px;height:24px;flex-basis:24px}
.nx435-commandbar .nx438-appicon{width:24px;height:24px;flex-basis:24px}

/* Slot contract: compact menus reserve 36px; artwork never exceeds its slot.
   Labels and icon wrappers are distinct, including inside the nested Dock SVG. */
html.nx436-hotfix-applied .nx-v426-command-panel .nx-v426-module>.nx438-module-icon{width:36px!important;min-width:36px!important;height:36px!important;min-height:36px!important;flex:0 0 36px!important}
html.nx436-hotfix-applied .nx-v426-command-panel .nx-v426-module>.nx438-module-label{min-width:0!important;flex:1 1 0!important;align-self:center!important;max-height:none!important;overflow-wrap:anywhere;line-height:1.3!important}
html[data-nav-family] .nx-v426-module .nx438-module-icon>.nx438-appicon,
html[data-nav-mode] .nx-v426-module .nx438-module-icon>.nx438-appicon{position:static!important;inset:auto!important;display:inline-grid!important;opacity:1!important;visibility:visible!important;transform:none!important;width:100%!important;height:100%!important;min-width:0!important;max-width:none!important;max-height:none!important;padding:0!important;margin:0!important;overflow:visible!important;background:transparent!important;pointer-events:none!important;-webkit-line-clamp:unset!important}
html[data-nav-family] .nx-v426-module>.nx438-module-icon{flex-shrink:0!important}
html[data-nav-family="tablet"] .nx-v426-module.tile:has(.nx438-appicon){grid-template-columns:1fr!important;grid-template-rows:46px auto!important;height:auto!important;min-height:112px!important;max-height:none!important;gap:10px!important}
html[data-nav-family="tablet"] .nx-v426-module.tile>.nx438-module-icon{width:46px!important;height:46px!important;min-width:46px!important}
html[data-nav-family="tablet"] .nx-v426-module.tile>.nx438-module-label{min-width:0!important;max-height:none!important;white-space:normal!important;line-height:1.3!important}
html[data-nav-family="dock"] .nx-v426-dock .nx-v426-module>.nx438-module-icon{width:38px!important;height:38px!important;min-width:38px!important;flex:0 0 38px!important}
html[data-nav-family="dock"][data-nav-variant="a"] .nx-v426-dock .nx-v426-module>.nx438-module-label{max-width:72px!important;font-size:10px!important}
html[data-nav-family="dock"][data-nav-variant="c"] .nx-v426-dock .nx-v426-module>.nx438-module-label{flex:1 1 0!important;min-width:0!important}
/* A long favorites list must overflow toward the scrollable end, not be centered
   with unreachable icons to the left (especially variant C with ten modules). */
html[data-nav-family="dock"][data-nav-variant] .nx-v426-dock{justify-content:safe center!important}
@media(max-width:900px){
 html[data-nav-family="dock"][data-nav-variant] .nx-v426-dock{bottom:calc(58px + env(safe-area-inset-bottom))!important}
}
@media(max-width:640px){
 /* The touch fallback's translateX(-50%) must not shift a left/right-bound
    scrollable Dock off screen. Keep it above the persistent mobile commandbar. */
 html[data-nav-family="dock"][data-nav-variant] .nx-v426-dock{left:8px!important;right:8px!important;width:calc(100vw - 16px)!important;max-width:calc(100vw - 16px)!important;transform:none!important;justify-content:flex-start!important;overflow-x:auto!important;overscroll-behavior-x:contain!important}
}

/* Preserve the Appearance Studio's three icon families as premium variants. */
.nx438-appicon.family-glass .nx438-tile{filter:saturate(1.04)}
.nx438-appicon.family-glass .nx438-shine{opacity:1}
.nx438-appicon.family-soft3d{filter:drop-shadow(0 3px 3px rgba(2,6,23,.24))}
.nx438-appicon.family-soft3d .nx438-glyph{filter:drop-shadow(0 1.8px 1px rgba(0,0,0,.28))}
.nx438-appicon.family-soft3d .nx438-tile{stroke:rgba(255,255,255,.38);stroke-width:1}
.nx438-appicon.family-soft3d .nx438-shine{opacity:.65}
.nx438-appicon.family-geometric{filter:none}
.nx438-appicon.family-geometric .nx438-tile{fill:var(--nx438-c2);filter:none;stroke:none}
.nx438-appicon.family-geometric .nx438-glyph{filter:none}
.nx438-appicon.family-geometric .nx438-shine{display:none}
@media(forced-colors:active){
 .nx438-appicon{forced-color-adjust:none;filter:none!important}
 .nx438-appicon[class] .nx438-tile{fill:Canvas;stroke:CanvasText;stroke-width:1}
 .nx438-appicon .nx438-shine{display:none}
 .nx438-appicon .nx438-glyph{filter:none}
 .nx438-appicon .nx438-glyph>*{stroke:CanvasText}
 .nx438-appicon .nx438-glyph :is(.nx438-solid,.nx438-secondary){fill:CanvasText;stroke:none;fill-opacity:1}
 .nx438-appicon .nx438-glyph .nx438-ink{stroke:Canvas}
 .nx438-appicon .nx438-glyph .nx438-ink-fill{fill:Canvas;stroke:none}
}
