/* One shared motion scale; tactile press inspired by OriginKit, implemented for this UI. */
:root{--motion-fast:140ms;--motion-panel:200ms;--motion-ease:cubic-bezier(.2,.75,.25,1)}
.motion-icon-host{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
.motion-icon-host .motion-icon{position:static;width:100%;height:100%;opacity:1;transform:none;transition:none}
.mact.motion-icon-host .motion-icon{width:14px;height:14px}
#menuBtn .motion-icon{width:16px;height:16px}
.btn-grad,.send-btn{transition:transform var(--motion-fast) var(--motion-ease),box-shadow var(--motion-fast) ease,filter var(--motion-fast) ease}
.btn-grad:hover,.send-btn:hover{transform:none;filter:brightness(1.04)}
.btn-grad:hover{box-shadow:0 6px 18px var(--glow)}
.btn-grad:active:not(:disabled),.send-btn:active:not(:disabled){transform:translateY(1.5px) scale(.99);transition-duration:60ms;filter:brightness(.98)}
.btn,.icon-btn,.tool-btn,.mact,.sel,.num-inp,.model-cur,.seg-btn{transition:background-color var(--motion-fast) ease,border-color var(--motion-fast) ease,color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}
.btn:hover,.icon-btn:hover{transform:none}
.btn:active:not(:disabled),.icon-btn:active:not(:disabled){background:var(--purple-bg)}
.input-wrap,.composer{transition:border-color var(--motion-fast) ease,box-shadow var(--motion-fast) ease}
button:focus-visible{outline:2px solid var(--a1);outline-offset:3px}
.model-menu,.set-menu,.action-menu{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(4px);transition:opacity 180ms var(--motion-ease),transform 180ms var(--motion-ease),visibility 180ms}
.model-menu.open,.set-menu.open,.action-menu.open{opacity:1;visibility:visible;pointer-events:auto;transform:none;transition-property:opacity,transform}
.modal-mask{display:flex;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--motion-panel) ease,visibility var(--motion-panel)}
.modal-mask.open{opacity:1;visibility:visible;pointer-events:auto;transition-property:opacity}
.modal{animation:none;transform:translateY(8px) scale(.985);transition:transform var(--motion-panel) var(--motion-ease)}
.modal-mask.open .modal{transform:none}
.msg,.img-job{animation:messageAppear 160ms ease-out}
.reply-stopped{display:flex;align-items:center;gap:6px}
/* OriginKit-inspired pulsating border: one masked CSS layer, active jobs only. */
.img-job{--job-light-purple:rgba(126,107,239,.8);--job-light-blue:rgba(92,155,245,.9);--job-glow:rgba(126,107,239,.12)}
[data-theme=dark] .img-job{--job-light-purple:rgba(160,140,255,.95);--job-light-blue:rgba(115,181,255,.98);--job-glow:rgba(126,107,239,.22)}
.img-job[data-state=running]{border-color:var(--a1);box-shadow:var(--shadow),0 0 12px var(--job-glow)}
.img-job::before{pointer-events:none}
.job-foot[hidden],.job-foot [hidden]{display:none}
@supports (mask-composite:exclude) or (-webkit-mask-composite:xor){
  .img-job[data-state=running]{border-color:transparent}
  .img-job[data-state=running]::before{
    content:'';position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;z-index:2;
    background:linear-gradient(110deg,rgba(126,107,239,.16) 0%,var(--job-light-purple) 20%,var(--job-light-blue) 35%,rgba(126,107,239,.16) 50%,var(--job-light-purple) 70%,var(--job-light-blue) 85%,rgba(126,107,239,.16) 100%);
    background-size:200% 100%;
    -webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
    mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);
    -webkit-mask-composite:xor;mask-composite:exclude;
    animation:jobBorderFlow 4.8s linear infinite;
  }
}
@keyframes jobBorderFlow{0%{background-position:0% 50%;opacity:.72}50%{opacity:1}100%{background-position:200% 50%;opacity:.72}}
.motion-paused .img-job::before,#view-chat:not(.show) .img-job::before{animation-play-state:paused}
@keyframes messageAppear{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
html.theme-changing :is(#sidebar,#topbar,#ctxPanel,.card,.panel,.bubble,.modal,.composer,.set-menu,.model-menu,.action-menu,.login-card){transition:background-color var(--motion-panel) ease,border-color var(--motion-panel) ease,color var(--motion-panel) ease}
.sidebar-toggle-slot{display:none}
@media(max-width:980px){
  #sidebar{transition:transform 220ms var(--motion-ease)}
  .sidebar-toggle-slot{display:inline-flex;width:34px;height:34px;flex:none}
  #sidebar>#menuBtn{position:absolute;right:12px;top:12px;z-index:1}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .btn-grad:active:not(:disabled),.send-btn:active:not(:disabled){transform:none}
  .img-job[data-state=running]::before{animation:none!important;opacity:.8}
}
