/* Overlays: modal, toast, dropdown menu ----------------------------------- */

/* ---- Modal (uses native <dialog>) --------------------------------- */
.pw-modal {
  width: min(480px, calc(100vw - 32px));
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-xl);
  background: var(--surface);
  color: var(--ink);
  box-shadow: var(--shadow-lg);
}
.pw-modal::backdrop { background: var(--overlay); }
.pw-modal__body { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-3); }
.pw-modal__title { font-size: var(--text-xl); }
.pw-modal__text { color: var(--ink-2); }
.pw-modal__actions { padding: var(--space-3) var(--space-4); }
  .pw-modal__aside { display: none; }
}

.pw-modal__actions {
  display: flex; justify-content: flex-end; gap: var(--space-2);
  padding: var(--space-4) var(--space-6);
  border-top: 1px solid var(--line);
  background: var(--surface-2);
}

/* ---- Toast -------------------------------------------------------- */
.pw-toasts {
  position: fixed; right: var(--space-6); bottom: var(--space-6);
  z-index: 100;
  display: flex; flex-direction: column; gap: var(--space-2);
  pointer-events: none;
}
.pw-toast {
  display: flex; align-items: center; gap: var(--space-3);
  min-width: 280px; max-width: 420px;
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-lg);
  background: var(--ink); color: var(--surface);
  box-shadow: var(--shadow-lg);
  font-weight: 500;
  pointer-events: auto;
  animation: pw-toast-in var(--dur) var(--ease);
}
.pw-toast__text { flex-grow: 1; }
.pw-toast__action { border: 0; background: transparent; color: inherit; font-weight: 700; text-decoration: underline; padding: 0; }
.pw-toast.is-leaving { opacity: 0; transform: translateY(8px); transition: all var(--dur) var(--ease); }
@keyframes pw-toast-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ---- Dropdown menu ------------------------------------------------ */
.pw-dropdown { position: relative; display: inline-flex; }
.pw-menu {
  position: absolute; top: calc(100% + 6px); right: 0;
  z-index: 30;
  min-width: 220px;
  padding: 6px;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface);
  box-shadow: var(--shadow-lg);
  display: flex; flex-direction: column;
}
.pw-menu__item {
  display: flex; align-items: center; gap: 10px;
  height: 40px; padding: 0 10px;
  border: 0; border-radius: var(--radius-sm);
  background: transparent; color: var(--ink);
  font: 500 var(--text-md)/1 var(--font-body);
  text-align: left;
}
.pw-menu__item:hover, .pw-menu__item:focus-visible { background: var(--surface-2); outline: none; }
.pw-menu__item--danger { color: var(--crit); }
.pw-menu__item:disabled { opacity: .5; cursor: not-allowed; background: none; }
.pw-menu__sep { height: 1px; margin: 6px 4px; background: var(--line); }

/* ---- Mobile nav scrim -------------------------------------------- */
.pw-scrim { display: none; }
@media (max-width: 900px) {
  .is-nav-open .pw-scrim { display: block; position: fixed; inset: 0; z-index: 40; background: var(--overlay); }
}

/* Block-level dropdown (study switcher) */
.pw-dropdown--block { display: block; }
.pw-menu--full { left: 0; right: auto; width: 100%; }
.pw-menu__note { padding: 6px 10px; font-size: var(--text-xs); color: var(--ink-3); }
.pw-toast--error { background: var(--crit); color: var(--crit-ink); }
