.tud-modal { position: fixed; inset: 0; z-index: 1200; display: flex; align-items: center; justify-content: center; padding: 1.25rem; background: rgba(12, 12, 14, .55); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); opacity: 0; transition: opacity .18s ease; }
.tud-modal[hidden] { display: none; }
.tud-modal.is-open { opacity: 1; }
.tud-modal-card { position: relative; width: min(30rem, 100%); padding: 2rem 1.75rem 1.5rem; border-radius: 1.25rem; background: var(--surface, #fff); color: var(--ink, #111); border: 1px solid var(--line, rgba(0, 0, 0, .08)); box-shadow: 0 2.5rem 5rem rgba(0, 0, 0, .28); transform: translateY(14px) scale(.97); transition: transform .22s cubic-bezier(.22, 1, .36, 1); }
.tud-modal.is-open .tud-modal-card { transform: none; }
.tud-modal-mark { display: inline-flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: 50%; background: var(--accent-soft, rgba(0, 0, 0, .06)); color: var(--accent, #111); margin-bottom: 1rem; }
.tud-modal-mark svg { width: 1.35rem; height: 1.35rem; }
.tud-modal-title { margin: 0 0 .5rem; font-size: 1.25rem; line-height: 1.25; font-weight: 700; letter-spacing: -.01em; }
.tud-modal-text { margin: 0; font-size: .92rem; line-height: 1.6; color: var(--ink-soft, rgba(17, 17, 17, .68)); }
.tud-modal-actions { display: flex; gap: .625rem; margin-top: 1.75rem; flex-wrap: wrap; }
.tud-modal-actions > * { flex: 1 1 10rem; justify-content: center; }
.tud-modal-close { position: absolute; top: .875rem; right: .875rem; width: 2.125rem; height: 2.125rem; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 50%; background: transparent; color: inherit; opacity: .5; cursor: pointer; transition: opacity .16s ease, background .16s ease; }
.tud-modal-close:hover, .tud-modal-close:focus-visible { opacity: 1; background: var(--accent-soft, rgba(0, 0, 0, .06)); }
.tud-modal-close svg { width: 1rem; height: 1rem; }
body.has-modal { overflow: hidden; }
[data-theme="dark"] .tud-modal-card { background: var(--surface, #151517); color: var(--ink, #f4f4f5); border-color: var(--line, rgba(255, 255, 255, .1)); }
[data-theme="dark"] .tud-modal-text { color: var(--ink-soft, rgba(244, 244, 245, .7)); }
@media (prefers-reduced-motion: reduce) {
.tud-modal, .tud-modal-card { transition: none; }
}
.confirm-card { display: flex; align-items: center; gap: 1.5rem; flex-wrap: wrap; }
.confirm-mark { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--ink, #111); color: var(--surface, #fff); }
.confirm-mark svg { width: 1.4rem; height: 1.4rem; }
.confirm-body { flex: 1 1 18rem; min-width: 0; }
.confirm-copy { flex: 0 0 auto; align-self: center; }
.order-code { margin: 0; font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace; font-size: clamp(1.35rem, 2.6vw, 1.7rem); font-weight: 500; letter-spacing: .04em; color: var(--ink, #111); }
.order-totals { padding-top: 1.25rem; border-top: 1px solid var(--line, rgba(0, 0, 0, .1)); }
.order-total-row { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; font-size: 1.05rem; font-weight: 700; color: var(--ink, #111); }
.order-total-row + .order-total-row { margin-top: .5rem; }
.order-total-row.is-muted { font-size: .88rem; font-weight: 400; color: var(--ink-soft, rgba(17, 17, 17, .62)); }
.contact-strip { display: flex; align-items: center; justify-content: space-between; gap: 1.75rem; flex-wrap: wrap; }
.contact-strip-body { flex: 1 1 22rem; min-width: 0; }
.contact-strip-actions { flex: 0 0 auto; display: flex; gap: .625rem; flex-wrap: wrap; }
@media (max-width: 575.98px) {
.confirm-card, .contact-strip { gap: 1.25rem; }
.confirm-copy, .contact-strip-actions > * { width: 100%; justify-content: center; }
.contact-strip-actions { width: 100%; }
}
.next-figure { margin: 0; font-size: clamp(2rem, 5vw, 2.75rem); font-weight: 800; line-height: 1.05; letter-spacing: -.03em; color: var(--ink, #111); }
.next-caption { margin: .625rem 0 0; font-size: .9rem; line-height: 1.55; color: var(--ink-soft, rgba(17, 17, 17, .68)); }
.next-chips { display: flex; flex-wrap: wrap; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.next-chips li { padding: .5rem .875rem; border: 1px solid var(--line, rgba(0, 0, 0, .14)); border-radius: 999px; font-size: .8rem; font-weight: 500; color: var(--ink, #111); white-space: nowrap; }
.next-note { padding-top: 1rem; border-top: 1px solid var(--line, rgba(0, 0, 0, .1)); color: var(--ink-soft, rgba(17, 17, 17, .5)); }