/* =========================================================
   Carlos Cruz · Motion System v6.33.2
   Motion layer only. No routes, forms or business rules changed.
   ========================================================= */
:root{
  --cc-motion-fast:160ms;
  --cc-motion-base:260ms;
  --cc-motion-slow:420ms;
  --cc-motion-ease:cubic-bezier(.22,1,.36,1);
  --cc-motion-ease-soft:cubic-bezier(.2,.8,.2,1);
  --cc-motion-distance:14px;
}

/* Native cross-document View Transitions where supported. */
@view-transition{navigation:auto}
::view-transition-old(root){animation:cc-view-old 150ms ease both}
::view-transition-new(root){animation:cc-view-new 320ms var(--cc-motion-ease) both}
@keyframes cc-view-old{to{opacity:.82;transform:scale(.998)}}
@keyframes cc-view-new{from{opacity:.82;transform:translateY(5px) scale(.998)}to{opacity:1;transform:none}}

/* Slim route progress. Replaces the old full-screen logo splash. */
.cc-route-progress{
  position:fixed;
  z-index:2147483647;
  top:0;
  left:0;
  width:100%;
  height:3px;
  pointer-events:none;
  opacity:0;
  transform:translateZ(0);
  transition:opacity 180ms ease;
}
.cc-route-progress::before{
  content:"";
  display:block;
  width:var(--cc-route-progress,0%);
  height:100%;
  border-radius:0 999px 999px 0;
  background:linear-gradient(90deg,var(--cc-gold),var(--cc-gold-hover),#f1d4b5);
  box-shadow:0 0 18px rgba(210,165,117,.28);
  transition:width 320ms var(--cc-motion-ease);
}
html[data-theme="dark"] .cc-route-progress::before{box-shadow:0 0 22px rgba(215,173,130,.30)}
.cc-route-progress.is-active{opacity:1}
.cc-route-progress.is-done{opacity:0;transition-delay:140ms}

/* Page exit remains short: enough feedback without feeling like a loader. */
body.cc-page-transitioning :where(.admin-content,.client-main,.client-content,.client-dashboard,.sm-main,.sm-page,.finance-page,.ebi-page,.gads-page,.aia-main,.mai-content,.proposal-public-main,.auth-shell,.auth-form-zone){
  opacity:.72;
  transform:translateY(3px) scale(.999);
  transition:opacity 110ms ease,transform 140ms var(--cc-motion-ease-soft);
}

/* Progressive reveal for meaningful content blocks. JS adds the attributes. */
[data-cc-reveal]{
  opacity:0;
  transform:translate3d(0,var(--cc-motion-distance),0) scale(.995);
  will-change:opacity,transform;
}
[data-cc-reveal].cc-motion-in{
  animation:cc-reveal-in var(--cc-motion-slow) var(--cc-motion-ease) both;
  animation-delay:var(--cc-motion-delay,0ms);
}
@keyframes cc-reveal-in{
  0%{opacity:0;transform:translate3d(0,var(--cc-motion-distance),0) scale(.995)}
  100%{opacity:1;transform:translate3d(0,0,0) scale(1)}
}

/* Micro-interactions: cards gain depth, actions feel responsive. */
[data-cc-lift]{
  transition:transform var(--cc-motion-base) var(--cc-motion-ease),
             border-color var(--cc-motion-fast) ease,
             box-shadow var(--cc-motion-base) var(--cc-motion-ease),
             background-color var(--cc-motion-fast) ease;
}
@media (hover:hover) and (pointer:fine){
  [data-cc-lift]:hover{
    transform:translateY(-2px);
    border-color:color-mix(in srgb,var(--cc-border-strong) 72%,var(--cc-gold) 28%)!important;
    box-shadow:0 12px 30px rgba(16,24,40,.075);
  }
  html[data-theme="dark"] [data-cc-lift]:hover{box-shadow:0 16px 34px rgba(0,0,0,.24)}

  .nav-item .material-symbols-outlined,
  .btn .material-symbols-outlined,
  .notification-bell .material-symbols-outlined,
  .sidebar-collapse-toggle .material-symbols-outlined{
    transition:transform var(--cc-motion-base) var(--cc-motion-ease),color var(--cc-motion-fast) ease;
  }
  .nav-item:hover .material-symbols-outlined{transform:translateX(2px) scale(1.04)}
  .btn:hover .material-symbols-outlined{transform:translateY(-1px)}
  .notification-bell:hover .material-symbols-outlined{transform:rotate(-7deg) scale(1.06)}
}

:where(.btn,.sm-btn,.theme-trigger,.notification-bell,.menu-toggle,.sidebar-collapse-toggle):active{transform:scale(.975)}
:where(.btn,.sm-btn,.theme-trigger,.notification-bell,.menu-toggle,.sidebar-collapse-toggle){transform-origin:center}

/* Active navigation feels anchored without pulsing continuously. */
.nav-item.is-active .material-symbols-outlined{animation:cc-nav-active 360ms var(--cc-motion-ease) both}
@keyframes cc-nav-active{0%{transform:scale(.88)}70%{transform:scale(1.07)}100%{transform:scale(1)}}

/* Tables and list rows use motion without shifting layout. */
:where(tbody tr,.list-row,.notification-row,.agenda-upcoming-item,.finance-client-row,.client-finance-row){
  transition:background-color var(--cc-motion-fast) ease,border-color var(--cc-motion-fast) ease,box-shadow var(--cc-motion-fast) ease;
}

/* Dialog entrance. Rules activate when wrappers become visible. */
:where(
  .morning-brief-modal:not([hidden]) .morning-brief-dialog,
  .meeting-modal:not([hidden]) .meeting-modal-dialog,
  .client-modal:not([hidden]) .client-modal-dialog,
  .finance-modal:not([hidden]) .finance-modal-dialog,
  .sm-modal:not([hidden]) .sm-modal-card,
  .mai-modal:not([hidden]) .mai-modal-dialog,
  .mytasks-modal:not([hidden]) .mytasks-quick-edit,
  .proposal-modal:not([hidden]) .proposal-modal-dialog
){animation:cc-dialog-in 300ms var(--cc-motion-ease) both}
@keyframes cc-dialog-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}

:where(
  .morning-brief-backdrop,
  .meeting-modal-backdrop,
  .client-modal-backdrop,
  .finance-modal-backdrop,
  .sm-modal-backdrop,
  .mai-modal-backdrop
){animation:cc-backdrop-in 180ms ease both}
@keyframes cc-backdrop-in{from{opacity:0}to{opacity:1}}

/* Popovers and menus. */
:where(.theme-switcher.is-open .theme-menu,.quick-create-menu.is-open,.client-action-popover,.agenda-event-popover){transform-origin:top right}
.theme-switcher.is-open .theme-menu{animation:cc-popover-in 180ms var(--cc-motion-ease) both}
@keyframes cc-popover-in{from{opacity:0;transform:translateY(-5px) scale(.985)}to{opacity:1;transform:none}}

/* Sidebar feels physical rather than abruptly changing width. */
.sidebar,.main-area,.admin-topbar,.sidebar-brand-logo,.sidebar-account-copy,.sidebar-brand-meta,.nav-item b,.nav-section-label{
  transition-property:width,margin-left,padding,opacity,transform,background-color,border-color;
  transition-duration:var(--cc-motion-base);
  transition-timing-function:var(--cc-motion-ease);
}

/* Skeleton-like shimmer can be reused by async modules without a blocking screen. */
.cc-inline-loading{
  position:relative;
  overflow:hidden;
  min-height:3px;
  border-radius:999px;
  background:var(--cc-surface-3);
}
.cc-inline-loading::after{
  content:"";
  position:absolute;
  inset:0;
  transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(210,165,117,.24),transparent);
  animation:cc-inline-shimmer 1.15s ease-in-out infinite;
}
@keyframes cc-inline-shimmer{to{transform:translateX(100%)}}

/* Reduced motion: keep all functionality and remove decorative movement. */
@media (prefers-reduced-motion:reduce){
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
  [data-cc-reveal]{opacity:1!important;transform:none!important;animation:none!important}
  [data-cc-lift],[data-cc-lift]:hover{transform:none!important;transition:none!important}
  .nav-item.is-active .material-symbols-outlined{animation:none!important}
  .cc-route-progress::before{transition:none!important}
  body.cc-page-transitioning :where(.admin-content,.client-main,.client-content,.client-dashboard,.sm-main,.sm-page,.finance-page,.ebi-page,.gads-page,.aia-main,.mai-content,.proposal-public-main,.auth-shell,.auth-form-zone){opacity:1!important;transform:none!important}
}

/* =========================================================
   v6.33.2 · Long-flow visibility safeguard
   Conteúdo funcional alto nunca pode permanecer oculto por motion.
   ========================================================= */
.cc-motion-enabled :where(.aip-schedule,.mytasks-schedule-scroll,.sm-calendar-wrap,.crm-board-wrap)[data-cc-reveal]{
  opacity:1!important;
  transform:none!important;
  animation:none!important;
  will-change:auto!important;
}
