/* Shared visual feedback. The application owns focus, permission and request state. */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: sn-route-out 100ms ease both; }
::view-transition-new(root) { animation: sn-route-in 240ms cubic-bezier(.2,.75,.25,1) both; }
@keyframes sn-route-out { to { opacity:0; } }
@keyframes sn-route-in { from { opacity:.35; transform:translateY(6px); } to { opacity:1; transform:translateY(0); } }
.sn-feedback-preferences { position:relative; flex:0 0 auto; font:inherit; color:inherit; }
.sn-feedback-preferences > summary { list-style:none; display:flex; align-items:center; justify-content:center; inline-size:44px; block-size:44px; border:1px solid currentColor; border-radius:50%; cursor:pointer; opacity:.72; }
.sn-feedback-preferences > summary::-webkit-details-marker { display:none; }
.sn-feedback-preferences > summary:hover,.sn-feedback-preferences[open] > summary { opacity:1; }
.sn-feedback-preferences > summary:focus-visible { outline:2px solid #8ab1ff; outline-offset:4px; }
.sn-feedback-title { position:absolute; inline-size:1px; block-size:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.sn-feedback-glyph { display:flex; align-items:flex-end; gap:2px; block-size:14px; }
.sn-feedback-glyph i { inline-size:3px; block-size:4px; background:currentColor; border-radius:1px; }
.sn-feedback-glyph i:nth-child(2) { block-size:7px; }
.sn-feedback-glyph i:nth-child(3) { block-size:10px; }
.sn-feedback-glyph i:nth-child(4) { block-size:13px; }
.sn-feedback-panel { position:absolute; z-index:100; inset-inline-end:0; inset-block-start:calc(100% + 12px); inline-size:min(285px,calc(100vw - 32px)); padding:12px; background:#f8f8f3; color:#121c39; border:1px solid #d9dfeb; border-radius:16px; box-shadow:0 16px 44px rgb(10 25 55 / .14); }
.sn-feedback-panel button { display:flex; align-items:center; justify-content:space-between; gap:12px; inline-size:100%; min-block-size:44px; padding:10px; background:transparent; color:inherit; border:0; border-radius:8px; text-align:start; font:inherit; cursor:pointer; }
.sn-feedback-panel button:hover { background:#e9effc; }
.sn-feedback-panel button:focus-visible { outline:2px solid #2859ef; outline-offset:0; }
.sn-feedback-panel button:disabled { cursor:default; opacity:.55; }
.sn-feedback-state { font-size:11px; max-inline-size:100px; text-align:end; line-height:1.4; }
.sn-feedback-panel [aria-pressed="true"] .sn-feedback-state { color:#2458d0; font-weight:600; }
.sn-feedback-note { margin:8px 10px 2px; font-size:11px; line-height:1.6; color:#62728b; }
.sn-feedback-pending { position:relative; }
.sn-feedback-pending::after { content:""; display:inline-block; inline-size:16px; block-size:12px; margin-inline-start:9px; vertical-align:middle; background:currentColor; clip-path:polygon(0 75%,25% 75%,25% 50%,50% 50%,50% 25%,75% 25%,75% 0,100% 0,100% 100%,0 100%); animation:sn-step-wait 900ms ease-in-out infinite alternate; }
@keyframes sn-step-wait { from { opacity:.3; } to { opacity:.85; } }
:where(button,a,input,select,textarea,summary):focus-visible { scroll-margin-block:90px; }
@media (hover:hover) { :where(button,a,summary) { transition:background-color 150ms ease,border-color 150ms ease,color 150ms ease,box-shadow 150ms ease; } }
@media (max-width:520px) { .sn-feedback-preferences > summary { inline-size:44px; block-size:44px; }.topbar-right { gap:6px; }.login-top { flex-wrap:wrap; gap:10px; } }
@media (max-width:360px) {
  .site-header { gap:6px; padding-inline:18px; }
  .topbar { height:auto; min-height:70px; padding-block:10px; }
  .topbar-right { max-inline-size:calc(100% - 40px); min-inline-size:0; flex-wrap:wrap; justify-content:flex-end; }
  .topbar-right .client-picker { order:1; flex-basis:100%; max-width:none; text-align:end; }
}
.motion-paused .sn-feedback-pending::after { animation:none; opacity:.65; }
@media (prefers-reduced-motion:reduce) {
  ::view-transition-old(root),::view-transition-new(root) { animation:none; }
  .sn-feedback-pending::after { animation:none; opacity:.65; }
  :where(button,a,summary) { transition:none; }
}
