:root{--motion-ease:cubic-bezier(.2,.8,.2,1)}
button,a,input,select,textarea{ -webkit-tap-highlight-color:transparent }
.button,.icon-button,nav button,.view-switch button,.theme-toggle button,.account-trigger,.column-add,.client-name{transition:background-color 160ms ease,color 160ms ease,border-color 160ms ease,box-shadow 160ms ease,transform 160ms var(--motion-ease)}
.button:active:not(:disabled),.icon-button:active,.theme-toggle button:active{transform:scale(.97)}
@media(hover:hover){.button:hover:not(:disabled){transform:translateY(-1px)}.task-card:not(.dragging):hover{transform:translateY(-2px);box-shadow:0 7px 18px #00000014}}
.task-card{transition:background-color 180ms ease,border-color 150ms ease,box-shadow 180ms ease,opacity 130ms ease,transform 180ms var(--motion-ease)}
.column{transition:background-color 180ms ease,border-color 150ms ease,opacity 160ms ease,outline-color 160ms ease}
.task-card.drop-before,.task-card.drop-after{border-width:1px;position:relative}
.task-card.drop-before{box-shadow:0 -3px 0 0 var(--brand)}.task-card.drop-after{box-shadow:0 3px 0 0 var(--brand)}
.board-scroll{overscroll-behavior-x:contain;overflow-anchor:none;scroll-behavior:auto}
.is-dragging,.is-dragging *{cursor:grabbing!important;user-select:none!important}
.drag-preview{position:fixed!important;margin:0!important;z-index:1000;pointer-events:none!important;transform-origin:top left;box-shadow:0 20px 45px #00000040!important;opacity:.97;will-change:transform;transition:none!important;text-align:left}
.drag-preview *{pointer-events:none!important}.drag-preview .client-label{pointer-events:none}
html.theme-changing :is(body,main,.sidebar,.topbar,.demo-bar,.workspace,.column,.task-card,.settings-panel,.contract-row,.contract-metric,.field input,.field select,.field textarea,.search,.theme-toggle,dialog,.dialog-foot,.settings-readonly,.avatar,.person-row,.people-metrics,.overview,.metric,.view-switch,.account-nav button,.client-filter,th,td){transition:background-color 280ms ease,color 280ms ease,border-color 280ms ease,box-shadow 280ms ease}
html.theme-changing :is(h1,h2,h3,.card-title,.card-format,.card-bottom,.column-header,.column-owner,.metric-number,.metric-label,.breadcrumb strong,.sidebar-note,.client-name,.contract-price strong,.settings-title p,.profile-summary strong,.profile-summary span){transition:color 280ms ease,background-color 280ms ease,border-color 280ms ease}
dialog{opacity:0;transform:translateY(12px) scale(.98);transition:opacity 280ms ease,transform 360ms var(--motion-ease),display 360ms allow-discrete,overlay 360ms allow-discrete}
dialog[open]{opacity:1;transform:translateY(0) scale(1)}
dialog::backdrop{opacity:0;transition:opacity 300ms ease,display 300ms allow-discrete,overlay 300ms allow-discrete}
dialog[open]::backdrop{opacity:1}
@starting-style{dialog[open]{opacity:0;transform:translateY(12px) scale(.98)}dialog[open]::backdrop{opacity:0}}
.view-fade-layer{position:fixed!important;z-index:35;pointer-events:none!important;overflow:hidden!important;margin:0!important;max-width:none!important;contain:layout paint;transform:none!important}
.view-fade-layer *{pointer-events:none!important}
html.theme-crossfade *{transition:none!important}
html.theme-crossfade::view-transition-old(root){animation:theme-fade-out 480ms ease both;mix-blend-mode:normal}
html.theme-crossfade::view-transition-new(root){animation:theme-fade-in 480ms ease both;mix-blend-mode:normal}
::view-transition{pointer-events:none}
@keyframes theme-fade-out{from{opacity:1}to{opacity:0}}
@keyframes theme-fade-in{from{opacity:0}to{opacity:1}}
@keyframes dialog-enter{from{opacity:0;transform:translateY(8px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes backdrop-enter{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.task-card:hover,.button:hover{transform:none!important}}
