/* Motion system: uma camada visual isolada, sem interferir nos dados ou cálculos. */
:root{
  --motion-fast:160ms;
  --motion-medium:280ms;
  --motion-slow:620ms;
  --motion-ease:cubic-bezier(.22,1,.36,1);
  --motion-update:cubic-bezier(.4,0,.2,1);
  --motion-shift:12px;
  --motion-panel-shift:30px;
  --motion-stagger:48ms;
}
@keyframes motion-page-in{from{opacity:0;transform:translateY(var(--motion-shift))}to{opacity:1;transform:translateY(0)}}
@keyframes motion-row-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes motion-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes motion-dialog-in{from{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes motion-drawer-in{from{opacity:.7;transform:translateX(var(--motion-panel-shift))}to{opacity:1;transform:translateX(0)}}
@keyframes motion-toast-in{0%{opacity:0;transform:translateY(12px) scale(.98)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes motion-chart-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes motion-bar-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes motion-update-pulse{0%{box-shadow:0 0 0 0 rgba(59,125,87,.18)}100%{box-shadow:0 0 0 9px rgba(59,125,87,0)}}
@keyframes motion-shimmer{from{background-position:200% 0}to{background-position:-200% 0}}

.page.active{animation:none}
.page.motion-page-enter>[data-motion-order]{
  animation:motion-page-in var(--motion-medium) var(--motion-ease) both;
  animation-delay:calc(var(--motion-order,0) * var(--motion-stagger));
}
button,.button,input,select,textarea,a,.menu button,summary{
  transition:border-color var(--motion-fast) var(--motion-update),background-color var(--motion-fast) var(--motion-update),color var(--motion-fast) var(--motion-update),box-shadow var(--motion-fast) var(--motion-update),opacity var(--motion-fast) var(--motion-update),transform var(--motion-fast) var(--motion-ease);
}
button:active,.button:active{transform:scale(.985)}
button:focus-visible,.button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{
  outline:3px solid rgba(98,154,119,.34)!important;
  outline-offset:2px;
}
button:disabled,.button[aria-disabled="true"]{cursor:not-allowed;opacity:.62;transform:none}
button[aria-busy="true"],.button[aria-busy="true"]{cursor:wait}
.menu button i,.menu button svg{transition:transform var(--motion-fast) var(--motion-ease),opacity var(--motion-fast) var(--motion-update)}
.menu button:hover i,.menu button:focus-visible i{transform:translateX(2px)}
.menu button.active i{transform:scale(1.04)}

@media(hover:hover) and (pointer:fine){
  .card:hover,.registry-shell:hover,.soil-archive-shell:hover,.soil-gauge:hover{transform:translateY(-2px)}
}
.card,.registry-shell,.soil-archive-shell,.soil-gauge{
  transition:transform var(--motion-medium) var(--motion-ease),box-shadow var(--motion-medium) var(--motion-update),border-color var(--motion-fast) var(--motion-update);
}
.motion-control-updated{animation:motion-update-pulse var(--motion-medium) var(--motion-update)}

tbody tr.motion-row-enter{
  animation:motion-row-in var(--motion-medium) var(--motion-ease) both;
  animation-delay:calc(var(--motion-row,0) * 34ms);
}
tbody tr{transition:background-color var(--motion-fast) var(--motion-update),box-shadow var(--motion-fast) var(--motion-update)}
tbody tr:focus-within{box-shadow:inset 3px 0 0 #3b7d57}
#registryTableBody tr.motion-row-enter,#recommendationGridBody tr.motion-row-enter,.cultivation-rec-card tr.motion-row-enter{animation:none;transform:none;opacity:1}
.registry-actions-menu[popover],.registry-actions-menu.registry-menu-portal{position:fixed;inset:auto;margin:0;max-width:calc(100vw - 16px);max-height:calc(100dvh - 16px);overflow:auto;box-sizing:border-box;z-index:120000;animation:none;transform:none}
.badge,.pill,.chip,[class*="status"],[class*="-chip"]{
  transition:background-color var(--motion-fast) var(--motion-update),color var(--motion-fast) var(--motion-update),border-color var(--motion-fast) var(--motion-update),transform var(--motion-fast) var(--motion-ease);
}

.trend-chart,.soil-gauge svg,.balance-diverging,.bar,.kpi-visual-section svg{overflow:visible}
.trend-chart.motion-chart-enter,.soil-gauge.motion-chart-enter,.motion-chart-enter .trend-chart{
  animation:motion-chart-in var(--motion-medium) var(--motion-ease) both;
}
.trend-chart polyline{transition:stroke-dashoffset var(--motion-slow) var(--motion-ease),opacity var(--motion-fast) var(--motion-update)}
.trend-chart circle,.motion-chart-point{
  transform-box:fill-box;
  transform-origin:center;
  transition:transform var(--motion-fast) var(--motion-ease),opacity var(--motion-fast) var(--motion-update),filter var(--motion-fast) var(--motion-update);
}
.trend-chart circle:hover,.trend-chart circle:focus,.motion-chart-point:hover,.motion-chart-point:focus{filter:drop-shadow(0 2px 3px rgba(18,63,50,.22));outline:none;transform:scale(1.2)}
.soil-gauge-progress,.soil-gauge-pointer{transition:stroke-dasharray var(--motion-slow) var(--motion-ease),transform var(--motion-slow) var(--motion-ease),opacity var(--motion-fast) var(--motion-update)}
.motion-bar-enter{animation:motion-bar-in var(--motion-slow) var(--motion-ease) both;transform-origin:left center}
.balance-negative .motion-bar-enter,.balance-diverging-fill.negative.motion-bar-enter{transform-origin:right center}
.motion-chart-tooltip{
  position:fixed;z-index:120000;max-width:260px;padding:8px 10px;border:1px solid rgba(208,220,212,.9);border-radius:8px;background:rgba(18,63,50,.96);box-shadow:0 8px 24px rgba(12,49,38,.2);color:#fff;font-size:11px;line-height:1.35;pointer-events:none;opacity:0;transform:translateY(5px);transition:opacity var(--motion-fast) var(--motion-update),transform var(--motion-fast) var(--motion-ease);
}
.motion-chart-tooltip.show{opacity:1;transform:translateY(0)}

.ap-import-modal:not([hidden]),.apv3-modal:not([hidden]),.rec-modal:not([hidden]),.manual-modal:not([hidden]),.cultivation-modal:not([hidden]){animation:motion-backdrop-in var(--motion-fast) var(--motion-update) both}
.ap-import-modal:not([hidden]) .ap-import-dialog,.apv3-modal:not([hidden]) .apv3-dialog,.rec-modal:not([hidden]) .rec-dialog,.manual-modal:not([hidden]) .manual-dialog,.cultivation-modal:not([hidden]) .cultivation-dialog{
  animation:motion-dialog-in var(--motion-medium) var(--motion-ease) both;
}
.registry-drawer-backdrop:not([hidden]),.soil-archive-drawer:not([hidden]){animation:motion-backdrop-in var(--motion-fast) var(--motion-update) both}
.registry-drawer-backdrop:not([hidden]) .registry-drawer,.soil-archive-drawer:not([hidden]) .soil-archive-panel{animation:motion-drawer-in var(--motion-medium) var(--motion-ease) both}
.ap-import-dialog>*:not([hidden]),.apv3-dialog>*:not([hidden]),.rec-dialog>*:not([hidden]),.manual-dialog>*:not([hidden]),.cultivation-dialog>*:not([hidden]),.registry-drawer>*:not([hidden]),.soil-archive-panel>*:not([hidden]){
  animation:motion-page-in var(--motion-medium) var(--motion-ease) both;
}
.toast.show,.ap-import-toast{animation:motion-toast-in var(--motion-medium) var(--motion-ease) both}
details[open]>summary{color:#174637}
details>summary:after{transition:transform var(--motion-fast) var(--motion-ease)}

.motion-skeleton{
  min-height:16px;border-radius:7px;background:linear-gradient(90deg,#edf2ed 25%,#f8faf7 45%,#edf2ed 65%);background-size:300% 100%;animation:motion-shimmer 1.2s linear infinite;color:transparent!important;pointer-events:none;
}
.motion-live{position:fixed!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
body.motion-exporting *,body.motion-exporting *::before,body.motion-exporting *::after{animation:none!important;transition:none!important}

@media print{
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .motion-chart-tooltip,.motion-live,.motion-skeleton{display:none!important}
}
@media(prefers-reduced-motion:reduce){
  :root{--motion-fast:1ms;--motion-medium:1ms;--motion-slow:1ms;--motion-stagger:0ms}
  *,*::before,*::after{animation-duration:1ms!important;animation-delay:0ms!important;transition-duration:1ms!important;scroll-behavior:auto!important}
  .motion-chart-tooltip{transition:none!important}
}
