/* About Face 交互基线：只改善信息层级、反馈、可恢复性和可访问性，不改变业务数据与权限。 */
body.ux-af{--af-focus:rgba(36,89,240,.24);--af-surface:#fff;--af-surface-muted:#f7f9fc;--af-line:#e3e8f0;--af-text:#101828;--af-muted:#667085}
body.ux-af :where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid var(--af-focus);outline-offset:2px}
body.ux-af :where(button,.button,[role=button]){transition:background-color .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}
body.ux-af :where(button,.button,[role=button]):active{transform:translateY(1px)}
body.ux-af :where(button,.button,[role=button])[disabled],body.ux-af :where(button,.button,[role=button]).is-busy{cursor:wait;opacity:.66;pointer-events:none}
body.ux-af .ux-af-skip{position:fixed;left:16px;top:10px;z-index:10000;padding:9px 13px;border-radius:8px;background:#101828;color:#fff;transform:translateY(-150%);transition:transform .16s ease}
body.ux-af .ux-af-skip:focus{transform:none}
body.ux-af .ux-af-context{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 16px;padding:10px 14px;border:1px solid var(--af-line);border-radius:10px;background:var(--af-surface-muted);color:var(--af-muted);font-size:12px}
body.ux-af .ux-af-context strong{color:var(--af-text);font-weight:650}
body.ux-af :where(.flash,.notice,.alert,.form-error){border-radius:10px;line-height:1.6}
body.ux-af :where(.flash,.notice,.alert)[role=alert]{box-shadow:0 1px 0 rgba(16,24,40,.04)}
body.ux-af :where(.empty,.empty-state,.no-data){min-height:150px;padding:28px 20px;text-align:center;color:var(--af-muted);background:var(--af-surface-muted);border:1px dashed var(--af-line);border-radius:12px}
body.ux-af :where(.loading,.loading-state,.boot){color:var(--af-muted)}
body.ux-af :where(.loading,.loading-state)[aria-busy=true],body.ux-af [data-loading=true]{position:relative}
body.ux-af :where(.loading,.loading-state)[aria-busy=true]::after,body.ux-af [data-loading=true]::after{content:"";display:inline-block;width:14px;height:14px;margin-left:8px;vertical-align:-2px;border:2px solid #d4dce8;border-top-color:#2459f0;border-radius:50%;animation:af-spin .7s linear infinite}
@keyframes af-spin{to{transform:rotate(360deg)}}
body.ux-af :where(table,.data-table){border-collapse:separate;border-spacing:0}
body.ux-af :where(table,.data-table) thead th{position:sticky;top:0;z-index:2;background:var(--af-surface-muted);box-shadow:0 1px 0 var(--af-line)}
body.ux-af :where(table,.data-table) tbody tr{transition:background-color .12s ease}
body.ux-af :where(table,.data-table) tbody tr:hover{background:#f6f8ff}
body.ux-af :where(label,.field>span){line-height:1.4}
body.ux-af :where(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]):not([type="hidden"]),select,textarea){min-height:40px}
body.ux-af textarea{min-height:110px}
/* Show errors after user interaction or an explicit accessible error state. */
body.ux-af :where(input,select,textarea)[aria-invalid="true"]{border-color:#d92d20}
@supports selector(input:user-invalid){body.ux-af :where(input,select,textarea):user-invalid{border-color:#d92d20}}
body.ux-af :where(.help,.field small,.hint){color:var(--af-muted);line-height:1.55}
body.ux-af :where(.panel,.entry-card,.modal,.card){overflow:hidden}
body.ux-af :where(.panel,.entry-card,.card) :where(h1,h2,h3){letter-spacing:-.01em}
body.ux-af .sh-item,.ux-af .sc-nav__link{min-height:40px}
body.ux-af .sh-item.is-active,.ux-af .sc-nav__link.is-active{box-shadow:inset 3px 0 #8fb0ff}
body.ux-af .sh-crumb,.ux-af .sc-crumb{max-width:70vw}
body.ux-af .sh-crumb strong,.ux-af .sc-crumb strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.ux-af .sh-main>.shell,body.ux-af .shell{scroll-margin-top:70px}
body.ux-af :where(.button--primary,.btn.primary){box-shadow:0 2px 6px rgba(36,89,240,.16)}
body.ux-af :where(.button--primary,.btn.primary):hover{box-shadow:0 5px 14px rgba(36,89,240,.22)}
body.ux-af :where(.modal,.drawer){overscroll-behavior:contain}
body.ux-af :where(.modal-body,.drawer-body,.table-scroll){scrollbar-width:thin;scrollbar-color:#c8d1df transparent}
@media(max-width:760px){body.ux-af .page-head,body.ux-af .page-title-row{align-items:flex-start;flex-direction:column;gap:12px}body.ux-af .page-head .head-actions,body.ux-af .page-title-row .head-actions{width:100%}body.ux-af .page-head .head-actions .button,body.ux-af .page-title-row .head-actions .button{flex:1 1 auto;justify-content:center}body.ux-af :where(.form-grid,.detail-grid){grid-template-columns:1fr}body.ux-af :where(.field.full,.detail-item.full){grid-column:auto}body.ux-af :where(.table-scroll){margin-inline:-12px;padding-inline:12px}body.ux-af .sc-crumb{padding-inline:16px}}
@media(prefers-reduced-motion:reduce){body.ux-af *,body.ux-af *::before,body.ux-af *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
@media print{body.ux-af .page-watermark{display:none!important}body.ux-af .sh-side,body.ux-af .sh-top,body.ux-af .sc-head,body.ux-af .sc-nav{display:none!important}}
