.fancy-link { color: inherit; font-weight: 500; text-decoration: underline; text-decoration-color: #b99c70; text-underline-offset: .2em; transition: text-decoration-color .2s; }
.fancy-link:hover { text-decoration-color: currentColor; }
.fancy-link:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; border-radius: 2px; }
.fancy-dialog { width: min(96vw, 1200px); max-width: calc(100vw - 1rem); height: 94vh; height: 94dvh; max-height: calc(100dvh - 1rem); padding: 0; margin: auto; border: 1px solid #ded5c8; border-radius: 20px; background: #faf8f3; color: #332d29; box-shadow: 0 24px 80px #0004; overflow: hidden; }
.fancy-dialog[open] { display: flex; flex-direction: column; }
.fancy-dialog::backdrop { background: #211a16b3; }
.fancy-dialog-close:focus-visible { outline: 2px solid #705133; outline-offset: 2px; }
.fancy-document { width: 100%; flex: 1; min-height: 0; overflow-y: auto; background: var(--color-surface, #faf8f3); }
@media (prefers-reduced-motion: reduce) { .fancy-link { transition: none; } }
.fancy-dialog-footer { display: flex; justify-content: flex-end; flex-shrink: 0; padding: .85rem 1.2rem; border-top: 1px solid #ded5c8; }
.fancy-dialog-close { min-width: 100px; }
.fancy-document > main { padding-top: 2rem !important; padding-bottom: 2rem !important; }

.fancy-dialog-header { flex-shrink: 0; padding: 1.2rem 1.5rem; border-bottom: 1px solid #ded5c8; background: #faf8f3; }
.fancy-dialog-title { margin: 0; font-size: clamp(1.25rem, 3vw, 1.8rem); font-weight: 600; line-height: 1.3; overflow-wrap: anywhere; }
