/* A版交互层：只改变运动、反馈与装饰，不定义业务状态。 */
:root {
  --motion-fast: 140ms;
  --motion-standard: 220ms;
  --motion-settle: cubic-bezier(.2, .75, .25, 1);
}
.topbar nav { position: relative; }
.interaction-polish .topbar nav a.active::after { content: none; }
.nav-selection {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: var(--ui-action);
  pointer-events: none;
  transition: transform var(--motion-standard) var(--motion-settle), width var(--motion-standard) var(--motion-settle);
}
.candidate-directory .project-contextbar { position: relative; isolation: isolate; }
.candidate-directory .project-contextbar::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  right: 236px;
  top: 0;
  width: 116px;
  height: 100%;
  background: linear-gradient(111deg, transparent 30%, color-mix(in srgb, var(--brand-primary) 5%, transparent) 30% 40%, transparent 40% 47%, color-mix(in srgb, var(--brand-accent) 18%, transparent) 47% 57%, transparent 57%);
}
.candidate-sort { position: relative; isolation: isolate; }
.sort-selection {
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  background: var(--ui-action-soft);
  pointer-events: none;
}
.interaction-polish .projects-layout .candidate-sort button.active { background: transparent; }
.projects-layout .quick-project,
.projects-layout .ranked-table td,
.projects-layout .progress-step,
.projects-layout .match-track > i,
:is(#app, #dialog) :is(.primary, .secondary, .directory-execute, .directory-command, .directory-view, .job-info-link),
#app :is(.project-pin, .refresh-list),
.dialog-close {
  transition: background-color var(--motion-fast) ease, border-color var(--motion-fast) ease, color var(--motion-fast) ease, box-shadow var(--motion-fast) ease;
}
@media (hover: hover) {
  .projects-layout .ranked-table tbody tr:hover > td { background: color-mix(in srgb, var(--ui-action-soft) 66%, white); }
  .projects-layout .ranked-table tbody tr:hover .candidate-name { text-decoration: underline; text-underline-offset: 4px; text-decoration-color: var(--ui-action-line); }
  .projects-layout .progress-step:hover { box-shadow: 0 2px 5px #493c580c; border-color: var(--ui-action-line); }
}
.projects-layout .ranked-table tbody tr:focus-within > td { background: color-mix(in srgb, var(--ui-action-soft) 66%, white); }
:is(#app, #dialog) :is(.primary, .secondary, .directory-execute, .directory-command):active:not(:disabled) { box-shadow: inset 0 1px 3px #493c5820; }
.project-list, .table-wrap { scrollbar-color: #d7c9e2 transparent; }

/* 原生dialog仍立即开关；只延续退出画面，不拦截关闭或延迟业务处理。 */
@supports (transition-behavior: allow-discrete) {
  #dialog {
    opacity: 0;
    transform: translateY(10px) scale(.99);
    transition: opacity 180ms ease, transform 220ms var(--motion-settle), display 180ms allow-discrete, overlay 180ms allow-discrete;
  }
  #dialog[open] { opacity: 1; transform: translateY(0) scale(1); }
  #dialog:not([open]) { pointer-events: none; }
  #dialog::backdrop {
    background: #24203900;
    transition: background-color 180ms ease, display 180ms allow-discrete, overlay 180ms allow-discrete;
  }
  #dialog[open]::backdrop { background: #24203942; }
  @starting-style {
    #dialog[open] { opacity: 0; transform: translateY(10px) scale(.99); }
    #dialog[open]::backdrop { background: #24203900; }
  }
}
.toast:not([hidden]) { animation: toast-arrive 180ms var(--motion-settle); }
@keyframes toast-arrive { from { opacity: 0; transform: translate(-50%, 7px); } to { opacity: 1; transform: translate(-50%, 0); } }
@media (max-width: 680px) {
  .candidate-directory .project-contextbar::after { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .nav-selection,
  .projects-layout *,
  #dialog,
  #dialog *,
  #dialog::backdrop,
  .toast { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
