html.party-preset-open { overflow: hidden; }
  #party-preset-portal .party-preset-dialog { width: min(720px, calc(100vw - 16px)); max-height: calc(100dvh - 24px); display: flex; flex-direction: column; padding: 0; }
  #party-preset-portal .party-preset-dialog > header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; border-bottom: 1px solid var(--line); }
  #party-preset-portal .party-preset-dialog > header h2 { margin: 0; font-size: var(--ga-font-page); overflow-wrap: anywhere; }
  #party-preset-portal .party-preset-dialog > header .eyebrow { margin: 0 0 4px; }
  #party-preset-portal .party-preset-dialog > header button { flex: 0 0 44px; }
  #party-preset-portal .party-preset-body { min-height: 0; overflow: auto; overscroll-behavior: contain; padding: 16px; font-size: var(--ga-font-body); line-height: 1.6; }
  #party-preset-portal .party-preset-body h3 { font-size: var(--ga-font-section); margin: 12px 0 8px; }
  #party-preset-portal .party-preset-body h4 { font-size: var(--ga-font-body); margin: 8px 0 4px; }
  #party-preset-portal .party-preset-body ul,.party-preset-body ol { padding-left: 24px; }
  #party-preset-portal .party-preset-person { padding: 8px 0; border-bottom: 1px solid var(--line); }
  #party-preset-portal .party-preset-person summary { min-height: 44px; cursor: pointer; }
  #party-preset-portal .party-preset-person summary span { display: block; color: var(--muted); font-size: var(--ga-font-note); }
  #party-preset-portal .party-preset-person > div { padding: 8px; background: var(--surface-2); overflow-wrap: anywhere; }
  #party-preset-portal .party-preset-cost { margin: 16px 0; padding: 12px; border: 1px solid var(--line); background: var(--surface-2); }
  #party-preset-portal .party-preset-save { margin-top: 16px; border-top: 1px solid var(--line); padding-top: 12px; }
  #party-preset-portal .party-preset-save > summary { min-height: 44px; cursor: pointer; font-weight: bold; }
  #party-preset-portal .party-preset-save label { display: grid; gap: 4px; margin: 8px 0; }
  #party-preset-portal .party-preset-save :is(input[type="text"],select) { min-height: 44px; width: 100%; min-width: 0; font-size: max(1rem,16px); background: var(--input); color: var(--text); border: 1px solid var(--line); padding: 8px; }
  #party-preset-portal .party-preset-save .party-preset-overwrite { display: flex; align-items: center; min-height: 44px; gap: 8px; }
  #party-preset-portal .party-preset-dialog > footer { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px 16px; border-top: 1px solid var(--line); }
  #party-preset-portal .party-preset-dialog > footer > button { flex: 1 1 140px; white-space: normal; }
@media (max-width: 400px) {
  #party-preset-portal .party-preset-dialog > header,.party-preset-body { padding: 12px; }
  #party-preset-portal .party-preset-dialog > footer { padding: 12px; }
}
