/* ui-polish：最后加载，补 ui-ux-pro-max 交付清单里的交互细节（焦点、过渡、指针、减少动效）和少量统一修正 */
:root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-family:var(--font-sans);color:var(--color-foreground)}
input,select,textarea,button{font-family:inherit}

/* 数字一律等宽，看板和表格对齐 */
table,[data-np-zoom],.metric,.kpi,[class*="-value"],[class*="-count"],[class*="-num"]{font-variant-numeric:tabular-nums}

/* 可点元素：指针 + 150ms 过渡 */
button,[role=tab],[role=button],summary,select,label[for],[data-page],[data-ar],[data-np]{cursor:pointer}
button,[role=tab],[role=button],a,input,select,textarea{transition:background-color var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
button:disabled,[aria-disabled=true]{cursor:not-allowed}

/* 键盘焦点：统一 2px 主色焦点环 */
:where(button,[role=tab],[role=button],a,summary,[tabindex]):focus-visible{outline:2px solid var(--color-ring);outline-offset:2px}
:where(input,select,textarea):focus-visible{outline:none;border-color:var(--p-600)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--p-600) 18%,transparent)}

/* 画布状态栏：按钮字号回到与标签一致 */
.np-status button{font-size:var(--fs-sm)}

/* 细滚动条 */
*{scrollbar-width:thin;scrollbar-color:var(--n-300) transparent}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* 玩法库双列：字号放大后允许换行，不再溢出 */
.rule-play-library{grid-template-columns:repeat(2,minmax(0,1fr))}
.rules-editor .rule-play-library{grid-template-columns:repeat(2,minmax(0,1fr))}
.rule-play-library button{padding:7px 4px;line-height:1.3}
.rule-play-library strong{white-space:normal;text-wrap:balance}
.lg-scenarios>header b{white-space:nowrap;flex-shrink:0}
