/* Motion is decorative. Waiting states are driven by real requests, never a timer. */
.motion-icon{display:block;flex:none;width:24px;height:24px;overflow:visible;pointer-events:none}
.motion-icon *{transform-box:view-box}
[data-motion-icon]{display:inline-flex;align-items:center;justify-content:center;flex:none;width:24px;height:24px;vertical-align:middle;pointer-events:none}
.nav>[data-motion-icon]{font-size:0}
.nav-more>summary{display:flex;align-items:center;gap:12px}
.nav-more>summary::marker{content:""}
.nav-more>summary::-webkit-details-marker{display:none}
.nav-more[open]>summary [data-motion-icon]{color:var(--green)}
.icon-house-light{fill:currentColor;stroke:none;opacity:.35}
.nav.active .icon-house-light{fill:#f6d894;opacity:1}
.icon-conversation-dots circle,.motion-icon[data-icon=more] circle{fill:currentColor;stroke:none}
.icon-care-heart{fill:currentColor;fill-opacity:.12}
.topbar #refresh{display:inline-flex;align-items:center;gap:7px}
.topbar #refresh .motion-icon{width:19px;height:19px}
.logout[data-motion-control]{display:flex;align-items:center;gap:8px}
.logout .motion-icon{width:18px;height:18px}
.ff-mark{display:block;color:var(--green,#3559d8);flex:none;overflow:visible}
[data-feijo-loader]{display:inline-flex;align-items:center;justify-content:center;flex:none;pointer-events:none}
.ff-traces{color:#a3b4ff;opacity:0}
.ff-trace{stroke-dasharray:17 83;stroke-dashoffset:0}
.brand-wait .ff-mark{width:58px;height:58px}
.app-progress .ff-mark{width:30px;height:30px}
.app-boot .ff-mark{width:104px;height:104px}
.app-boot .boot-label{margin:0;font-size:14px;color:var(--muted)}
.scene-loading .ff-mark{width:84px;height:84px}
.scene-loading{gap:12px;justify-items:center}
.scene-loading .scene-loading-label{font-size:12px;color:var(--ink);font-weight:600}
.access-wait{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--ink);font-size:13px}
.access-wait .ff-mark{width:36px;height:36px}
.app-progress{max-width:calc(100vw - 32px)}
.app-progress>span:last-child{min-width:0;overflow-wrap:anywhere}
.app-boot[hidden],.app-progress[hidden],.scene-loading[hidden],[data-feijo-loader][hidden]{display:none!important}
.access-card .access-logo,.login-card__logo img{animation:none}
.brand-wait.is-busy img,.scene-loading img{animation:none!important}
@media(prefers-reduced-motion:no-preference){
  .brand-wait.is-busy .ff-traces,.scene-loading:not([hidden]) .ff-traces,.access-wait.is-busy .ff-traces,#uploadOverlay:not([hidden]) .ff-traces{opacity:1}
  .brand-wait.is-busy .ff-trace-vertical,.scene-loading:not([hidden]) .ff-trace-vertical,.access-wait.is-busy .ff-trace-vertical,#uploadOverlay:not([hidden]) .ff-trace-vertical{animation:ff-orbit-light 2.1s linear infinite}
  .brand-wait.is-busy .ff-trace-horizontal,.scene-loading:not([hidden]) .ff-trace-horizontal,.access-wait.is-busy .ff-trace-horizontal,#uploadOverlay:not([hidden]) .ff-trace-horizontal{animation:ff-orbit-light 2.8s linear infinite reverse}
  @keyframes ff-orbit-light{to{stroke-dashoffset:-100}}
}
html[data-motion-paused=true] .ff-trace{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){
  .ff-traces{display:none}
  .brand-wait img,.scene-loading img{animation:none!important}
  .motion-icon,.motion-icon *{animation:none!important;transition:none!important}
}
@media(max-width:580px){
  .nav-more>div .nav{color:#f8f9ff}
  .nav-more>div .nav:not(.active):hover{background:#ffffff15}
  .nav-more>div .nav.active{background:#3559d8;color:#fff;font-weight:750}
  .nav-more>div .nav:focus-visible{outline:2px solid #f6d894;outline-offset:-2px}
  .nav .motion-icon,.nav>[data-motion-icon]{width:21px;height:21px}
  .nav-more>summary{flex-direction:column;gap:4px;justify-content:center;min-height:49px}
  .nav-more>summary [data-motion-icon],.nav-more>summary .motion-icon{width:21px;height:21px}
  .app-progress{top:84px;right:16px;padding:7px 10px;gap:7px}
  .app-progress .ff-mark{width:25px;height:25px}
}

/* A small, shared press gesture also reaches controls created after page load. */
:where(button,a.primary,a.secondary,a.quiet,a.btn,summary,[role=button],[data-motion-control]){
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
}
:where(button,a.primary,a.secondary,a.quiet,a.btn,summary,[role=button],[data-motion-control]):focus-visible{
  outline:3px solid #3559d8;outline-offset:3px;
}
:where(button,a.primary,a.secondary,a.quiet,a.btn,[role=button],[data-motion-control]):disabled,
:where(button,a.primary,a.secondary,a.quiet,a.btn,[role=button],[data-motion-control])[aria-disabled=true]{cursor:not-allowed}
@media(prefers-reduced-motion:no-preference){
  :where(button,a.primary,a.secondary,a.quiet,a.btn,summary,[role=button],[data-motion-control]){
    transition:background-color 160ms ease,border-color 160ms ease,box-shadow 160ms ease,scale 100ms ease;
  }
  html:not([data-motion-paused=true]) [data-motion-pressed=true]{scale:.98}
}
/* Feedback describes an actual outcome, not an optimistic celebration. */
.toast{display:flex;align-items:center;gap:12px;overflow-wrap:anywhere;border:1px solid #ffffff38;box-shadow:0 12px 36px #1b24522b;max-width:min(480px,calc(100vw - 32px));bottom:calc(24px + env(safe-area-inset-bottom,0px));right:max(16px,env(safe-area-inset-right,0px));background:#1b2452;color:#fff}
.toast[hidden]{display:none!important}
.toast[data-feedback]::before{content:"";display:block;flex:0 0 28px;width:28px;height:28px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='11' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='M14 12v7M14 8.5v.2' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
.toast[data-feedback=success]{background:#224c3d}
.toast[data-feedback=success]::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='11' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='m8.5 14 3.5 3.5 7.5-8' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.toast[data-feedback=error]{background:#8f2933}
.toast[data-feedback=error]::before{mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 28 28'%3E%3Ccircle cx='14' cy='14' r='11' fill='none' stroke='black' stroke-width='1.7'/%3E%3Cpath d='m10 10 8 8m0-8-8 8' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E")}
@media(max-width:580px){
  :where(button,a.primary,a.secondary,a.quiet,a.btn,summary,[role=button],[data-motion-control]){min-height:44px}
  :where(.icon-button,.guided-tour-trigger){min-width:44px;flex-shrink:0}
  :where(input,select,textarea){font-size:16px}
  .sidebar{height:calc(76px + env(safe-area-inset-bottom,0px));padding-bottom:env(safe-area-inset-bottom,0px)}
  .app-shell{padding-bottom:calc(90px + env(safe-area-inset-bottom,0px))}
  .nav-more>div{bottom:calc(82px + env(safe-area-inset-bottom,0px));max-height:calc(80dvh - 82px - env(safe-area-inset-bottom,0px))}
  .toast{left:max(16px,env(safe-area-inset-left,0px));right:max(16px,env(safe-area-inset-right,0px));bottom:calc(90px + env(safe-area-inset-bottom,0px));max-width:none;padding:14px 16px;font-size:14px}
  dialog{box-sizing:border-box;width:calc(100vw - 24px);max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));padding:20px 16px;overscroll-behavior:contain;overflow-x:auto;overflow-wrap:anywhere}
  dialog :where(input,select,textarea){max-width:100%;min-width:0;box-sizing:border-box}
  dialog .dialog-head{gap:12px}
  dialog .dialog-head h2{font-size:25px;overflow-wrap:anywhere}
  dialog .action-row{flex-wrap:wrap}
}
.toast:has(.toast-close){padding-right:60px}
.toast-message,#toast-message{min-width:0;overflow-wrap:anywhere}
.toast-close{position:absolute;right:6px;top:50%;translate:0 -50%;width:44px;height:44px;min-height:44px;border:0;border-radius:10px;background:transparent;color:inherit;display:grid;place-items:center;font:inherit;font-size:24px}
.toast-close:focus-visible{outline-color:#fff;outline-offset:-3px}
@media(hover:hover) and (pointer:fine){.toast-close:hover{background:#ffffff1a}}
