/* 仅一段彩色光线沿圆角边缘循环，边缘其他区域透明。 */
.card-light-host{position:relative;isolation:isolate}
/* 装饰层必须脱离文档流，避免业务页 span 定位规则导致卡片反复撑高。 */
.card-light-edge{position:absolute!important;inset:0;border-radius:inherit;pointer-events:none!important;z-index:1;opacity:0;transition:opacity .65s ease-out}
.card-light-edge svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none}
.card-light-edge rect{animation:card-edge-beam var(--beam-duration,8s) linear infinite paused;stroke-dashoffset:var(--beam-start)}
.card-light-active>.card-light-edge{opacity:1}
.card-light-host.card-light-active:not(.order-drawer-shell):not(.note-card):not(.memo-card){overflow:visible!important}
.metric-card.card-light-active::before{opacity:0}
.card-light-active>.card-light-edge rect{animation-play-state:running}
body[data-card-motion="forced"] .card-light-edge rect{animation:card-edge-beam var(--beam-duration,8s) linear infinite paused!important}
body[data-card-motion="forced"] .card-light-active>.card-light-edge rect{animation-play-state:running!important}
@keyframes card-edge-beam{from{stroke-dashoffset:var(--beam-start)}to{stroke-dashoffset:var(--beam-end)}}
@media(hover:none),(pointer:coarse){.card-light-edge{display:none}}
@media(prefers-reduced-motion:reduce){
  body:not([data-card-motion="forced"]) .card-light-edge{transition:none!important}
  body:not([data-card-motion="forced"]) .card-light-edge rect{animation:none!important}
}
.card-motion-setting{display:flex;align-items:center;gap:12px;min-height:44px;margin-top:20px;cursor:pointer}
.card-motion-setting input{width:20px;height:20px;accent-color:var(--admin-accent,#575ac2);flex-shrink:0}
.card-motion-setting span{display:grid;gap:6px}
.card-motion-setting small{font-weight:normal;color:var(--admin-muted,#666)}
