/* 济海追风：品牌区样式（由 Caddy 注入到所有页面）
   [ logo ] | 智能车实验室 —— logo 本身已含「济海追风」，文字只显示后半段 */

/* logo：放大、去掉圆形/圆角框 */
img[src*="/branding/jihaizhuifeng-logo"] {
  height: 48px !important;
  width: auto !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: contain !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
*:has(> img[src*="/branding/jihaizhuifeng-logo"]) {
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  overflow: visible !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
  border: 0 !important;
  outline: 0 !important;
}

/* 站名：细竖线分隔 + 「智能车实验室」 */
a:has(img[src*="/branding/jihaizhuifeng-logo"]) > :is(span, h1) {
  font-size: 0 !important;
  max-width: none !important;
  overflow: visible !important;
  display: inline-flex !important;
  align-items: center !important;
  height: 28px;
  margin-left: 8px;
  padding-left: 18px;
  border-left: 1px solid rgba(30, 58, 138, 0.22);
}
a:has(img[src*="/branding/jihaizhuifeng-logo"]) > :is(span, h1)::after {
  content: "智能车实验室";
  font-size: 19px;
  font-weight: 600;
  letter-spacing: 0.16em;
  line-height: 1;
  color: #1e3a8a;
  white-space: nowrap;
}
a:has(img[src*="/branding/jihaizhuifeng-logo"]):hover > :is(span, h1)::after {
  color: #1d4ed8;
}

/* 登录页：稍大一号 */
a:has(img[src*="/branding/jihaizhuifeng-logo"]) > h1::after {
  font-size: 21px;
}

/* 控制台顶栏（48px 高）：整体缩小一号，站名不再被截断 */
.size-5 > img[src*="/branding/jihaizhuifeng-logo"] {
  height: 34px !important;
}
a[aria-label="Go to home"]:has(img[src*="/branding/jihaizhuifeng-logo"]) {
  height: auto !important;
}
a[aria-label="Go to home"]:has(img[src*="/branding/jihaizhuifeng-logo"]):hover {
  background: transparent !important;
}
a[aria-label="Go to home"]:has(img[src*="/branding/jihaizhuifeng-logo"]) > span {
  height: 22px;
  margin-left: 6px;
  padding-left: 14px;
}
a[aria-label="Go to home"]:has(img[src*="/branding/jihaizhuifeng-logo"]) > span::after {
  font-size: 16px;
  letter-spacing: 0.12em;
}

/* 深色模式 */
.dark a:has(img[src*="/branding/jihaizhuifeng-logo"]) > :is(span, h1) {
  border-left-color: rgba(191, 219, 254, 0.28);
}
.dark a:has(img[src*="/branding/jihaizhuifeng-logo"]) > :is(span, h1)::after {
  color: #bfdbfe;
}

/* 窄屏：只留 logo */
@media (max-width: 640px) {
  img[src*="/branding/jihaizhuifeng-logo"] {
    height: 40px !important;
  }
  a:has(img[src*="/branding/jihaizhuifeng-logo"]) > :is(span, h1) {
    display: none !important;
  }
}

/* 控制台顶栏：隐藏版本号（系统更新按钮） */
button:has(> span[class*="system-brand:inline"]),
button[aria-label^="System updates"],
span[class*="system-brand:inline"].font-mono {
  display: none !important;
}

/* 品牌导航和控制台卡片共用轻量的实验室蓝色调。 */
body:has(.custom-home-content) header { background: rgba(255,255,255,.94); border-bottom: 1px solid #e2ebf2; }
.dark body:has(.custom-home-content) header { background: rgba(12,23,33,.96); border-color: #253948; }
[data-slot="card"] { border-radius: 12px; }
[data-slot="card-title"] { letter-spacing: -.015em; }
[data-slot="sidebar-inner"] { background: #f5f9fc; }
.dark [data-slot="sidebar-inner"] { background: #101e2a; }
[data-sidebar="menu-button"][data-active="true"] { background: #e5f3fc; color: #075b93; }
.dark [data-sidebar="menu-button"][data-active="true"] { background: #183c52; color: #b9e7ff; }
[data-slot="sidebar-inset"] { box-shadow: 0 8px 28px rgba(30, 66, 92, .05); }
.jh-wallet-note { margin: 0 0 16px; padding: 16px 18px; border: 1px solid #c5e4f4; border-radius: 12px; color: #173a54; background: #edf8ff; font-size: 14px; }
.jh-wallet-note strong { display: block; font-size: 15px; }
.jh-wallet-note p { margin: 5px 0 0; line-height: 1.7; }
.dark .jh-wallet-note { color: #d8efff; background: #123044; border-color: #30566b; }

/* Public navigation: reserve independent space for the brand and menu. */
header:has(>div>nav)>div{width:100%!important;max-width:1280px!important}
header:has(>div>nav) nav{width:100%;box-sizing:border-box}
header:has(>div>nav) nav > div:first-child{flex:0 0 270px;width:270px;min-width:270px}
header:has(>div>nav) nav > div:first-child>a{flex-shrink:0;min-width:max-content}
header:has(>div>nav) nav > div:nth-child(2){flex-shrink:0}
header:has(>div>nav) nav img[src*="/branding/jihaizhuifeng-logo"]{height:34px!important}
header:has(>div>nav) nav a:has(img[src*="/branding/jihaizhuifeng-logo"])>:is(span,h1)::after{font-size:16px;letter-spacing:.08em}
header:has(>div>nav) nav a:has(img[src*="/branding/jihaizhuifeng-logo"])>:is(span,h1){padding-left:12px;margin-left:4px}
@media(max-width:1279px){header:has(>div>nav) nav>div:first-child{flex-basis:140px;width:140px;min-width:140px}header:has(>div>nav) nav a:has(img[src*="/branding/jihaizhuifeng-logo"])>:is(span,h1){display:none!important}}
/* The native provider retains one theme across public pages and the console. */
:root{color-scheme:dark!important}
button:has(svg.lucide-sun):has(svg.lucide-moon){display:none!important}
/* Mobile navigation scrolls within its own layer, below the floating bar. */
div.fixed.inset-0.z-40:has(>div>nav.flex-col){overflow-y:auto;overscroll-behavior:contain}
div.fixed.inset-0.z-40:has(>div>nav.flex-col)>div{height:auto;min-height:100dvh;padding-top:108px;padding-bottom:max(28px,env(safe-area-inset-bottom));gap:24px}

/* Shared visual system, based on the current production WebGL cover. */
html.jh-unified.dark{
 --background:#04070c;--foreground:#f5f7fa;--card:rgba(14,20,31,.36);--card-foreground:#f5f7fa;
 --popover:rgba(16,23,34,.76);--popover-foreground:#f5f7fa;--primary:#f5f7fa;--primary-foreground:#0a0d12;
 --secondary:rgba(255,255,255,.065);--secondary-foreground:#e5eaf2;--muted:rgba(255,255,255,.055);--muted-foreground:#aab5c6;
 --accent:rgba(140,194,255,.12);--accent-foreground:#e6f3ff;--border:rgba(255,255,255,.11);--input:rgba(255,255,255,.13);--ring:#8fd0ff;
 --sidebar:rgba(12,18,29,.36);--sidebar-foreground:#e6ecf5;--sidebar-primary:#fff;--sidebar-primary-foreground:#0a0d12;
 --sidebar-accent:rgba(255,255,255,.08);--sidebar-accent-foreground:#fff;--sidebar-border:rgba(255,255,255,.1);
 --radius:.75rem;--jh-dock-bottom:104px;--header-height:104px;
}
html.jh-unified body{isolation:isolate;background:#04070c;font-family:"PingFang SC","HarmonyOS Sans SC","Noto Sans SC","Microsoft YaHei",system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
/* Keep native event handlers mounted, with only the shared Dock visible. */
.jh-unified [data-jh-native-header]{visibility:hidden!important;pointer-events:none!important;height:0!important;min-height:0!important;padding:0!important;border:0!important}
.jh-unified [data-jh-native-header] *{pointer-events:none!important}
.jh-unified [data-jh-anchor]{position:fixed!important;top:88px!important;right:max(24px,calc((100vw - 1200px)/2 + 12px))!important;width:36px!important;height:1px!important}
.jh-unified .notranslate>.bg-background,.jh-unified .notranslate>div>.bg-background,.jh-unified .notranslate>.relative.grid{background:transparent!important}
.jh-unified a:has(img[src*="/branding/jihaizhuifeng-logo"]){display:none!important}
.jh-unified [data-slot="card"],.jh-unified [data-slot="sidebar-inner"]{background:var(--card)!important;border-radius:16px;backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);box-shadow:inset 0 1px 0 #ffffff06,0 18px 45px -30px #000a}
.jh-unified [data-slot="card"]{border:1px solid var(--border);--tw-ring-shadow:0 0 #0000}
.jh-unified [data-slot="card-title"]{letter-spacing:-.015em;font-weight:600}
.jh-unified [data-sidebar="menu-button"][data-active="true"]{background:#ffffff12;color:#fff;box-shadow:inset 2px 0 #8fd0ff}
.jh-unified [data-slot="sidebar-inset"]{background:rgba(8,13,23,.24)!important;box-shadow:none;border:1px solid #ffffff0c;border-radius:16px;min-width:0}
.jh-unified [data-slot="sidebar-wrapper"]{padding-top:var(--jh-dock-bottom);min-height:100svh}
.jh-unified [data-slot="sidebar-container"]{top:var(--jh-dock-bottom)!important;height:calc(100svh - var(--jh-dock-bottom))!important}
.jh-unified [data-slot="sidebar-inset"]>header{margin:0}
.jh-unified :is(input:not([type=checkbox],[type=radio]),textarea,[data-slot=select-trigger]){border-radius:10px;background-color:rgba(5,10,18,.38);border-color:var(--input);min-height:40px}
.jh-unified input[type=checkbox],.jh-unified input[type=radio]{accent-color:#8fd0ff}
.jh-unified [data-slot=button]{border-radius:10px;min-height:36px;transition:background-color .16s,border-color .16s,box-shadow .16s}
.jh-unified [data-slot=button]:focus-visible,.jh-unified :is(input,textarea):focus-visible{outline:2px solid #8fd0ff;outline-offset:2px}
.jh-unified :is([data-slot=dialog-content],[data-slot=alert-dialog-content],[data-slot=sheet-content],[data-slot=dropdown-menu-content],[data-slot=popover-content],[data-slot=select-content],[role=menu]){background:#101722ba;border:1px solid #ffffff1c;border-radius:14px;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);box-shadow:0 24px 80px #0008}
.jh-unified [data-slot=table-container]{border-radius:12px;background:rgba(7,12,21,.24)}
.jh-unified [data-slot=table-header]{background:rgba(255,255,255,.045)}
.jh-unified [data-slot=table-row]:hover{background:rgba(255,255,255,.035)}
.jh-unified [data-slot=table-cell]{border-color:#ffffff0d}
.jh-unified .jh-wallet-note{background:rgba(65,126,201,.10);border-color:#8fd0ff30;color:#dceeff;backdrop-filter:blur(12px)}
/* Public content starts below exactly the same fixed navigation. */
.jh-unified[data-jh-layout=public] .notranslate>.bg-background>div.relative>div.relative.mx-auto{padding-top:calc(var(--jh-dock-bottom) + 20px)!important}
.jh-unified[data-jh-layout=public] .notranslate main{scroll-margin-top:calc(var(--jh-dock-bottom) + 16px)}
.jh-unified[data-jh-layout=auth] .relative.grid.h-svh{height:auto;min-height:100svh;padding-top:var(--jh-dock-bottom)}
.jh-unified[data-jh-layout=auth] .container.flex.items-center{padding-top:24px;padding-bottom:32px;min-height:calc(100svh - var(--jh-dock-bottom))}
.jh-unified[data-jh-layout=auth] div:has(>form){padding:28px;background:rgba(14,20,31,.36);border:1px solid #ffffff1a;border-radius:18px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 24px 70px #0005}
.jh-unified[data-jh-layout=auth] .relative.grid.h-svh>div.absolute{display:none}
.jh-unified .jh-page-enter{animation:jh-page-enter .18s ease-out}
@keyframes jh-page-enter{from{opacity:.7}to{opacity:1}}
@media(max-width:560px){html.jh-unified.dark{--jh-dock-bottom:88px;--header-height:88px}.jh-unified[data-jh-layout=auth] div:has(>form){padding:24px 20px}.jh-unified [data-slot=sidebar-inset]{border-radius:12px}}
@media(prefers-reduced-motion:reduce){.jh-unified .jh-page-enter{animation:none}.jh-unified [data-slot=button]{transition:none}}
.jh-unified [data-jh-native-header] *{visibility:hidden!important}
.jh-unified[data-jh-route=about] main{padding:calc(var(--jh-dock-bottom) + 20px) 20px 36px!important}
.jh-unified[data-jh-route=about] main>div{max-width:1200px;padding:32px;background:rgba(14,20,31,.36);border:1px solid #ffffff1a;border-radius:18px;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
@media(max-width:560px){.jh-unified[data-jh-route=about] main{padding-inline:12px!important}.jh-unified[data-jh-route=about] main>div{padding:24px 20px}}

/* Option surfaces inherit their panel at rest and become more opaque on hover.
   Change the background only; text, icons and destructive actions stay legible. */
html.jh-unified.dark{--jh-option-rest:transparent;--jh-option-hover:rgba(14,20,31,.36)}
.jh-unified :is(
 [data-slot=table-body] [data-slot=table-row],
 [data-slot=sidebar-menu-button],
 [data-slot=sidebar-menu-sub-button],
 [data-slot=tabs-trigger],
 [data-slot=toggle-group-item],
 [data-slot=dropdown-menu-item],
 [data-slot=dropdown-menu-checkbox-item],
 [data-slot=dropdown-menu-radio-item],
 [data-slot=select-item],
 [data-slot=command-item],
 [role=option],
 [role=menuitem]:not([data-variant=destructive]),
 [data-slot=button][class*="hover:bg-muted"],
 [data-slot=button][class*="hover:bg-accent"],
 [data-slot=button][class~="bg-secondary"]
){background-color:var(--jh-option-rest)!important;transition:background-color .16s ease,border-color .16s ease,box-shadow .16s ease}
.jh-unified :is(input:not([type=checkbox],[type=radio]),textarea,[data-slot=select-trigger]){background-color:var(--jh-option-rest)!important;transition:background-color .16s ease,border-color .16s ease}
.jh-unified :is(
 [data-slot=sidebar-menu-button], [data-slot=sidebar-menu-sub-button],
 [data-slot=tabs-trigger], [data-slot=toggle-group-item],
 [data-slot=dropdown-menu-item], [data-slot=dropdown-menu-checkbox-item], [data-slot=dropdown-menu-radio-item],
 [data-slot=select-item], [data-slot=command-item], [role=option],
 [role=menuitem]:not([data-variant=destructive]),
 [data-slot=button][class*="hover:bg-muted"], [data-slot=button][class*="hover:bg-accent"], [data-slot=button][class~="bg-secondary"],
 input:not([type=checkbox],[type=radio]),textarea,[data-slot=select-trigger]
):is(:focus-visible,[data-highlighted]):not(:disabled):not([aria-disabled=true]){background-color:var(--jh-option-hover)!important}
.jh-unified [data-slot=tabs-trigger][aria-selected=true],.jh-unified [data-slot=toggle-group-item][aria-pressed=true]{box-shadow:inset 0 -2px 0 #8fd0ff}
@media(hover:hover){
 .jh-unified :is(
  [data-slot=table-body] [data-slot=table-row],
  [data-slot=sidebar-menu-button], [data-slot=sidebar-menu-sub-button],
  [data-slot=tabs-trigger], [data-slot=toggle-group-item],
  [data-slot=dropdown-menu-item], [data-slot=dropdown-menu-checkbox-item], [data-slot=dropdown-menu-radio-item],
  [data-slot=select-item], [data-slot=command-item], [role=option],
  [role=menuitem]:not([data-variant=destructive]),
  [data-slot=button][class*="hover:bg-muted"], [data-slot=button][class*="hover:bg-accent"], [data-slot=button][class~="bg-secondary"],
  input:not([type=checkbox],[type=radio]),textarea,[data-slot=select-trigger]
 ):hover:not(:disabled):not([aria-disabled=true]){background-color:var(--jh-option-hover)!important}
 .jh-unified [data-slot=card]:hover{background-color:rgba(14,20,31,.52)!important;transition:background-color .16s ease}
}
@media(prefers-reduced-motion:reduce){.jh-unified :is([data-slot],input,textarea){transition:none!important}}

/* A common tint; important surfaces gain frost rather than a darker fill. */
html.jh-unified.dark{
 --jh-glass-tint:rgba(14,20,31,.36);--jh-frost:blur(18px) saturate(140%);--jh-frost-strong:blur(32px) saturate(145%);
 --popover:var(--jh-glass-tint);--table-header:transparent;--table-header-hover:transparent;--table-row:transparent;--table-row-hover:var(--jh-option-hover);
}
.jh-unified :is([data-slot=dialog-content],[data-slot=alert-dialog-content],[data-slot=sheet-content],[data-slot=dropdown-menu-content],[data-slot=popover-content],[data-slot=select-content],[role=menu],[data-slot=sidebar][data-mobile=true]){
 background:var(--jh-glass-tint)!important;backdrop-filter:var(--jh-frost-strong)!important;-webkit-backdrop-filter:var(--jh-frost-strong)!important;
}
.jh-unified :is([data-slot=dialog-overlay],[data-slot=dialog-backdrop],[data-slot=sheet-overlay],[data-slot=sheet-backdrop]){background:rgba(4,7,12,.10)!important;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
/* These native tables do not expose a table-container slot. */
.jh-unified .overflow-hidden.rounded-lg.border:has([data-slot=table]){background:transparent;backdrop-filter:var(--jh-frost);-webkit-backdrop-filter:var(--jh-frost);border-color:var(--border)}
.jh-unified [data-slot=table-header]{--table-header-bg:transparent!important;background:transparent!important}
.jh-unified [data-slot=table-head]{background-color:transparent!important;backdrop-filter:var(--jh-frost-strong);-webkit-backdrop-filter:var(--jh-frost-strong)}
.jh-unified [data-slot=table-body] [data-slot=table-row],.jh-unified [data-slot=table-body] [data-slot=table-row]:hover{background-color:transparent!important}
.jh-unified [data-slot=table-cell]{background-color:transparent!important;transition:background-color .16s ease}
.jh-unified [data-slot=table-cell].sticky{backdrop-filter:var(--jh-frost-strong);-webkit-backdrop-filter:var(--jh-frost-strong)}
.jh-unified [data-slot=table-row][data-state=selected]{box-shadow:inset 2px 0 #8fd0ff}
.jh-unified [data-slot=table-row][data-state=selected]>[data-slot=table-cell]{backdrop-filter:var(--jh-frost-strong);-webkit-backdrop-filter:var(--jh-frost-strong)}
.jh-unified [data-slot=tabs-list]{background:transparent!important;border:1px solid var(--border);padding:4px;gap:4px;backdrop-filter:var(--jh-frost);-webkit-backdrop-filter:var(--jh-frost)}
.jh-unified [data-slot=tabs-trigger][data-active],.jh-unified [data-slot=tabs-trigger][aria-selected=true],.jh-unified [data-slot=toggle-group-item][aria-pressed=true]{background-color:transparent!important;box-shadow:inset 0 -2px 0 #8fd0ff;backdrop-filter:var(--jh-frost-strong);-webkit-backdrop-filter:var(--jh-frost-strong)}
.jh-unified .jh-route-focus:focus{outline:none!important}
@media(hover:hover){
 .jh-unified [data-slot=table-body] [data-slot=table-row]:hover>[data-slot=table-cell]{background-color:var(--jh-option-hover)!important}
 .jh-unified [data-slot=tabs-trigger]:hover:not(:disabled),.jh-unified [data-slot=toggle-group-item]:hover:not(:disabled){background-color:var(--jh-option-hover)!important}
}

/* Copy controls must fit alongside text, including compact mobile key cards. */
.jh-unified .flex.min-w-0:has(>button[data-slot=popover-trigger]):has(>button[data-slot=tooltip-trigger])>button[data-slot=popover-trigger]{flex:1 1 0%!important;min-width:0!important}
.jh-unified[data-jh-route=keys] .bg-card .flex.justify-between:has(>[class*="flex-1"]):has(>[class~="-ml-1.5"])>[class~="-ml-1.5"]{margin-left:0;flex-shrink:0}
/* Some mobile cards and icon triggers use utility classes without card/button slots. */
.jh-unified .bg-card.border{background:var(--card);border-color:var(--border);backdrop-filter:var(--jh-frost);-webkit-backdrop-filter:var(--jh-frost)}
.jh-unified :is(button,[role=button]):is([class*="hover:bg-muted"],[class*="hover:bg-accent"]){background-color:transparent!important}
.jh-unified :is(button,[role=button]):is([class*="hover:bg-muted"],[class*="hover:bg-accent"]):is(:focus-visible,[data-highlighted]):not(:disabled):not([aria-disabled=true]){background-color:var(--jh-option-hover)!important}
@media(hover:hover){
 .jh-unified :is(button,[role=button]):is([class*="hover:bg-muted"],[class*="hover:bg-accent"]):hover:not(:disabled):not([aria-disabled=true]){background-color:var(--jh-option-hover)!important}
 .jh-unified .bg-card.border:hover{background-color:rgba(14,20,31,.52)}
}
/* Keep native switch hit targets inside their settings row. */
.jh-unified [data-slot=form-item]:has(>[class~="group/switch"]){padding-inline:12px}
/* A native toast is an independent layer, below the shared Dock. */
.jh-unified [data-sonner-toaster][data-y-position=top]{top:calc(var(--jh-dock-bottom) + 8px)!important;--offset:calc(var(--jh-dock-bottom) + 8px)!important}
.jh-unified [data-sonner-toast][data-styled=true]{background:var(--jh-glass-tint);backdrop-filter:var(--jh-frost-strong);-webkit-backdrop-filter:var(--jh-frost-strong);border-color:var(--border)}
/* The original app reserves 48px; its viewport must reserve the actual Dock. */
.jh-unified :is([data-slot=sidebar-wrapper],[data-slot=sidebar-inset]){--app-header-height:var(--jh-dock-bottom)!important}
.jh-unified main div.bg-background.border{background:var(--card)!important;backdrop-filter:var(--jh-frost);-webkit-backdrop-filter:var(--jh-frost)}
/* The key actions remain legible above horizontally scrolling row content. */
.jh-unified[data-jh-route=keys] :is([data-slot=table-head],[data-slot=table-cell]).sticky.right-0,
.jh-unified[data-jh-route=keys] .bg-card [class~="-ml-1.5"]{backdrop-filter:blur(64px) saturate(120%)!important;-webkit-backdrop-filter:blur(64px) saturate(120%)!important}
.jh-unified[data-jh-route=keys] .bg-card [class~="-ml-1.5"]{border-radius:10px;padding:3px;gap:5px}
/* Password text must not flow beneath its reveal icon. */
.jh-unified .relative:has(>button.absolute svg.lucide-eye,>button.absolute svg.lucide-eye-off)>input{padding-inline-end:42px!important}
.jh-unified button.absolute:has(svg.lucide-eye,svg.lucide-eye-off){min-height:24px!important}
/* Hidden native header descendants must not retain fixed trigger dimensions. */
.jh-unified [data-jh-native-header] [data-jh-anchor]{height:1px!important;min-height:0!important}
/* Single-column field grids must be allowed to shrink below table min-content. */
.jh-unified form,.jh-unified [data-slot=form-item]{min-width:0;max-width:100%}
.jh-unified [data-slot=form-item].grid:not([class*="grid-cols-"]){grid-template-columns:minmax(0,1fr)}
.jh-unified form>*{min-width:0;max-width:100%}
.jh-unified [data-slot=form-item]>*{min-width:0;max-width:100%}
.jh-unified :is([data-slot=form-label],[data-slot=form-description]){overflow-wrap:anywhere}
@media(max-width:1023px){.jh-unified form.grid{grid-template-columns:minmax(0,1fr)!important}.jh-unified form.grid>*{grid-column:1/-1!important}}
/* Give frozen actions their own frosted backplate above scrolling cells.
   The filter belongs to the backplate, so the cell itself is not its backdrop root. */
.jh-unified [data-slot=table]{isolation:isolate}
.jh-unified [data-slot=table-header]{z-index:30}
.jh-unified [data-slot=table-body] [data-slot=table-cell].sticky{z-index:10}
.jh-unified[data-jh-route=keys] [data-slot=table-cell].sticky.right-0{z-index:12}
.jh-unified[data-jh-route=keys] [data-slot=table-head].sticky.right-0{z-index:32}
.jh-unified[data-jh-route=keys] :is([data-slot=table-head],[data-slot=table-cell]).sticky.right-0,
.jh-unified[data-jh-route=keys] .bg-card [class~="-ml-1.5"]{isolation:isolate;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.jh-unified[data-jh-route=keys] .bg-card [class~="-ml-1.5"]{position:relative}
.jh-unified[data-jh-route=keys] :is([data-slot=table-head],[data-slot=table-cell]).sticky.right-0::before,
.jh-unified[data-jh-route=keys] .bg-card [class~="-ml-1.5"]::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;pointer-events:none;background:rgba(137,160,190,.22);backdrop-filter:blur(80px) saturate(115%);-webkit-backdrop-filter:blur(80px) saturate(115%);box-shadow:inset 1px 0 0 #ffffff14}
/* Toolbars inside narrow settings grids wrap before their labels collide. */
.jh-unified [data-slot=form-item] .flex[class*="justify-between"]:has(>button){flex-wrap:wrap;row-gap:8px}
