/* FOURMI THINK Motion System — fase Professor. Apenas transform/opacity nos deslocamentos. */
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]),body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]){
  --motion-fast:160ms;
  --motion-base:240ms;
  --motion-slow:320ms;
  --motion-success:420ms;
  --motion-stagger:40ms;
  --ease-standard:cubic-bezier(.2,.8,.2,1);
  --ease-emphasized:cubic-bezier(.2,.9,.2,1);
  --ease-exit:cubic-bezier(.4,0,1,1);
}

@keyframes motion-page-forward{from{opacity:0;transform:translate3d(18px,0,0)}to{opacity:1;transform:none}}
@keyframes motion-page-back{from{opacity:0;transform:translate3d(-18px,0,0)}to{opacity:1;transform:none}}
@keyframes motion-fade-lift{from{opacity:0;transform:translate3d(0,8px,0)}to{opacity:1;transform:none}}
@keyframes motion-modal-in{from{opacity:0;transform:translate3d(0,10px,0) scale(.98)}to{opacity:1;transform:none}}
@keyframes motion-card-in{from{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}
@keyframes motion-check-in{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:none}}
@keyframes motion-fade{from{opacity:0}to{opacity:1}}

/* Telas principais: direção calculada pelo módulo existente TeacherPremium. */
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .app-screen.active{animation:motion-fade-lift var(--motion-base) var(--ease-standard) both}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"])[data-tp-dir="forward"] .app-screen.active{animation-name:motion-page-forward}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"])[data-tp-dir="back"] .app-screen.active{animation-name:motion-page-back}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .bottom-nav .nav-button{transition:color var(--motion-base) var(--ease-standard),background-color var(--motion-base) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .bottom-nav .nav-button .nav-icon{transition:color var(--motion-base) var(--ease-standard),transform var(--motion-base) var(--ease-standard),opacity var(--motion-base) var(--ease-standard)}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) #open-quick-actions{transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) #open-quick-actions:active{transform:translateX(-50%) scale(.94)}

/* Diálogos centrais. O conteúdo e o backdrop animam sem mudar o foco nem os dados. */
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) dialog[open]:not(.tp-sheet):not(.success-overlay):not(.space-switch-dialog){animation:motion-modal-in var(--motion-slow) var(--ease-emphasized) both}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) dialog[open]:not(.tp-sheet):not(.success-overlay)::backdrop{animation:motion-fade var(--motion-slow) var(--ease-standard) both}
@supports (transition-behavior:allow-discrete){
  body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) dialog:not(.tp-sheet):not(.success-overlay):not(.space-switch-dialog){opacity:0;transform:translate3d(0,8px,0) scale(.98);transition:opacity var(--motion-fast) var(--ease-exit),transform var(--motion-fast) var(--ease-exit),display var(--motion-fast) allow-discrete,overlay var(--motion-fast) allow-discrete}
  body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) dialog[open]:not(.tp-sheet):not(.success-overlay):not(.space-switch-dialog){opacity:1;transform:none;animation:none;transition-duration:var(--motion-slow)}
  body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) dialog:not(.tp-sheet):not(.success-overlay):not(.space-switch-dialog)::backdrop{opacity:0;transition:opacity var(--motion-fast) var(--ease-exit),display var(--motion-fast) allow-discrete,overlay var(--motion-fast) allow-discrete}
  body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) dialog[open]:not(.tp-sheet):not(.success-overlay):not(.space-switch-dialog)::backdrop{opacity:1;animation:none;transition-duration:var(--motion-slow)}
  @starting-style{
    body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) dialog[open]:not(.tp-sheet):not(.success-overlay):not(.space-switch-dialog){opacity:0;transform:translate3d(0,10px,0) scale(.98)}
    body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) dialog[open]:not(.tp-sheet):not(.success-overlay):not(.space-switch-dialog)::backdrop{opacity:0}
  }
}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .tp-sheet[open],body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .tp-sheet[open]::backdrop{animation-duration:var(--motion-slow)}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .tp-sheet.is-closing,body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .tp-sheet.is-closing::backdrop{animation-duration:var(--motion-fast)}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch{animation:motion-modal-in var(--motion-slow) var(--ease-emphasized) both}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch-card:nth-child(-n+6){animation:motion-fade-lift var(--motion-base) var(--ease-standard) both;animation-delay:calc((var(--motion-index, 0)) * var(--motion-stagger))}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch-card:nth-child(1){--motion-index:0}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch-card:nth-child(2){--motion-index:1}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch-card:nth-child(3){--motion-index:2}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch-card:nth-child(4){--motion-index:3}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch-card:nth-child(5){--motion-index:4}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch-card:nth-child(6){--motion-index:5}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .tp-switch-card,body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .tp-switch-card.is-current .tp-switch-mark{transition:border-color var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),opacity var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}

/* Confirmação preserva a tela real sob o blur; sequência termina em ~420 ms. */
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .success-overlay[open] .so-check{animation:motion-check-in var(--motion-slow) var(--ease-emphasized) both}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .success-overlay[open] .so-content h2{animation:motion-fade-lift var(--motion-base) var(--ease-standard) 80ms both}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .success-overlay[open] .so-content p{animation:motion-fade-lift var(--motion-base) var(--ease-standard) 130ms both}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .success-overlay[open] .so-actions{animation:motion-fade-lift var(--motion-base) var(--ease-standard) 180ms both}
body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .success-overlay[open] .so-check svg{animation:so-draw var(--motion-base) 120ms var(--ease-standard) forwards}

/* Os controles da agenda mantêm a grade imóvel; apenas conteúdo trocado se desloca. */
#teacher-agenda-grid:is([data-agenda-mode="teacher"],[data-agenda-mode="barber"],[data-agenda-mode="trainer"]) :is(.sg-views button,.student-filter-row button,.tp-filter-button){transition:background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard),color var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),transform var(--motion-fast) var(--ease-standard)}
#teacher-agenda-grid:is([data-agenda-mode="teacher"],[data-agenda-mode="barber"],[data-agenda-mode="trainer"]) [data-teacher-appt],#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) :is(.client-card,.client-row,.student-card,.tacc-card,.tp-option){transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard)}
#teacher-agenda-grid:is([data-agenda-mode="teacher"],[data-agenda-mode="barber"],[data-agenda-mode="trainer"]) [data-teacher-appt]:active,#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) :is(.client-card,.client-row,.student-card,.tacc-card,.tp-option):active{transform:scale(.99)}
#teacher-agenda-grid:is([data-agenda-mode="teacher"],[data-agenda-mode="barber"],[data-agenda-mode="trainer"]) .tp-just-added{animation:motion-card-in var(--motion-base) var(--ease-emphasized) both;z-index:6}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .tacc-card :is(.tacc-chevron,.tacc-profile-go){transition:transform var(--motion-fast) var(--ease-standard)}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .tacc-card:is(:hover,:focus-visible) :is(.tacc-chevron,.tacc-profile-go){transform:translateX(3px)}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) :is(.tacc-avatar,.tp-avatar,.avatar-button) img{transition:opacity var(--motion-base) var(--ease-standard)}

/* Reutilização em telas futuras do Professor sem introduzir novas durações. */
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-card{transition:transform var(--motion-fast) var(--ease-standard),box-shadow var(--motion-fast) var(--ease-standard)}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-card:active{transform:scale(.99)}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-fade{animation:motion-fade var(--motion-fast) var(--ease-standard) both}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-stagger>*:nth-child(-n+6){animation:motion-fade-lift var(--motion-base) var(--ease-standard) both;animation-delay:calc((var(--motion-index, 0)) * var(--motion-stagger))}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-stagger>*:nth-child(1){--motion-index:0}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-stagger>*:nth-child(2){--motion-index:1}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-stagger>*:nth-child(3){--motion-index:2}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-stagger>*:nth-child(4){--motion-index:3}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-stagger>*:nth-child(5){--motion-index:4}
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-stagger>*:nth-child(6){--motion-index:5}

/* Piloto Professor: Home e Agenda compartilham uma transição curta; a barra permanece imóvel. */
@keyframes teacher-experience-forward{from{opacity:.72;transform:translate3d(14px,0,0)}to{opacity:1;transform:none}}
@keyframes teacher-experience-back{from{opacity:.72;transform:translate3d(-14px,0,0)}to{opacity:1;transform:none}}
#workspace[data-profession="teacher"][data-experience-route="forward"] #agenda-screen.active{animation:teacher-experience-forward 220ms var(--ease-standard) both}
#workspace[data-profession="teacher"][data-experience-route="back"] #home-screen.active{animation:teacher-experience-back 220ms var(--ease-standard) both}
#workspace[data-profession="teacher"][data-experience-route] #agenda-screen.active #teacher-agenda-grid,
#workspace[data-profession="teacher"][data-experience-route] #home-screen.active :is(.barber-hero-copy,.kpi-card,.barber-home-cta,.barber-today-panel){animation:none}
#workspace[data-profession="teacher"] :is(.home-open-agenda,#teacher-agenda-grid [data-agenda-step],#teacher-agenda-grid [data-agenda-view],#teacher-agenda-grid [data-agenda-filter],#teacher-agenda-grid [data-teacher-appt],#close-appointment-actions){transition:transform var(--motion-fast) var(--ease-standard),background-color var(--motion-fast) var(--ease-standard),border-color var(--motion-fast) var(--ease-standard)}
#workspace[data-profession="teacher"] :is(.home-open-agenda,#teacher-agenda-grid [data-agenda-step],#teacher-agenda-grid [data-agenda-view],#teacher-agenda-grid [data-agenda-filter],#teacher-agenda-grid [data-teacher-appt],#close-appointment-actions):active{transform:scale(.98)}
#workspace[data-profession="teacher"] :is(.home-open-agenda,#teacher-agenda-grid [data-agenda-step],#teacher-agenda-grid [data-agenda-view],#teacher-agenda-grid [data-agenda-filter],#teacher-agenda-grid [data-teacher-appt],#close-appointment-actions):focus-visible{outline:3px solid var(--brand-gold,#d4a853);outline-offset:2px}
body[data-profession="teacher"] #appointment-actions-dialog[open]{animation:motion-modal-in 220ms var(--ease-standard) both}
body[data-profession="teacher"] #appointment-actions-dialog[open]::backdrop{animation:motion-fade 220ms var(--ease-standard) both}

/* Evita reapresentar cada indicador ao voltar à Home. */
#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"])[data-motion-home-seen="true"] #home-screen.active :is(.barber-hero-copy,.kpi-card,.barber-home-cta,.barber-today-panel){animation:none}

@media(prefers-reduced-motion:reduce){
  #workspace[data-profession="teacher"][data-experience-route] :is(#home-screen.active,#agenda-screen.active),
  #workspace[data-profession="teacher"][data-experience-route] #agenda-screen.active #teacher-agenda-grid,
  body[data-profession="teacher"] #appointment-actions-dialog[open],
  body[data-profession="teacher"] #appointment-actions-dialog[open]::backdrop{animation:none!important}
  #workspace[data-profession="teacher"] :is(.home-open-agenda,#teacher-agenda-grid [data-agenda-step],#teacher-agenda-grid [data-agenda-view],#teacher-agenda-grid [data-agenda-filter],#teacher-agenda-grid [data-teacher-appt],#close-appointment-actions){transition:none!important}
  #workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]),body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]){--motion-fast:40ms;--motion-base:40ms;--motion-slow:40ms;--motion-success:40ms;--motion-stagger:0ms}
  #workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .app-screen.active,
  body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) dialog[open]:not(.tp-sheet):not(.success-overlay):not(.space-switch-dialog),
  body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch,
  body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .space-switch-dialog.is-premium[open] .tp-switch-card,
  body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .success-overlay[open] :is(.so-check,.so-content h2,.so-content p,.so-actions),
  #teacher-agenda-grid:is([data-agenda-mode="teacher"],[data-agenda-mode="barber"],[data-agenda-mode="trainer"]) .tp-just-added,
  #workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-stagger>*{animation:none!important}
  body:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .success-overlay[open] .so-check svg{animation:none!important;stroke-dashoffset:0}
  #workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .motion-card,#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) .bottom-nav .nav-button,#workspace:is([data-profession="teacher"],:is([data-profession="barber"],[data-profession="other"]),[data-profession="trainer"]) #open-quick-actions{transition:none!important}
}
