.ticket-purge { width: min(610px, calc(100vw - 24px)); max-height: calc(100dvh - 24px); margin: auto; padding: 0; overflow: auto; border: 1px solid #fa6a70; border-radius: 24px; background: #201017; color: #fff1f2; box-shadow: 0 24px 100px #0009, 0 0 0 6px #ef444419; overscroll-behavior: contain; }
.ticket-purge[open] { animation: ticket-purge-pulse 3s ease-in-out infinite; }
.ticket-purge::backdrop { background: rgba(65, 4, 15, .82); backdrop-filter: blur(8px); }
.ticket-purge [hidden] { display: none !important; }
.ticket-purge__shell { padding: 30px; }
.ticket-purge__eyebrow { margin: 0 0 14px; display: flex; align-items: center; gap: 8px; color: #fda4af; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .15em; }
.ticket-purge__eyebrow svg { width: 19px; height: 19px; }
.ticket-purge h2 { margin: 0 0 12px; color: #fff1f2; font-size: clamp(24px, 5vw, 31px); line-height: 1.15; letter-spacing: -.025em; }
.ticket-purge p { font-size: 14px; line-height: 1.6; }
.ticket-purge__description { margin: 0 0 20px; color: #eacbd1; }
.ticket-purge__description p { margin: 0; }
.ticket-purge__description p + p { margin-top: 1em; }
.ticket-purge__scope { padding: 16px 18px; border: 1px solid #ef44444d; border-radius: 14px; background: #ef444410; }
.ticket-purge__scope strong { display: block; color: #fecdd3; font-size: 16px; }
.ticket-purge__scope ul { margin: 9px 0 0; padding-left: 18px; color: #eacbd1; font-size: 13px; line-height: 1.8; }
.ticket-purge__boundary { color: #d6abb4; font-size: 12px !important; }
.ticket-purge__phrase { margin: 20px 0 9px; padding: 13px 15px; border-radius: 11px; background: #08050a66; color: #fff1f2; font-size: 16px; font-weight: 700; overflow-wrap: anywhere; user-select: all; }
.ticket-purge label { display: block; margin: 18px 0 8px; color: #f6dbe0; font-size: 13px; font-weight: 650; }
.ticket-purge input { width: 100%; min-width: 0; padding: 13px 14px; border: 1px solid #bc596e; border-radius: 11px; background: #10090f; color: #fff; font-size: 16px; line-height: 1.5; }
.ticket-purge input:focus { outline: 2px solid #fda4af; outline-offset: 3px; }
.ticket-purge__hint { color: #d6abb4; font-size: 12px !important; margin: 8px 0 0; }
.ticket-purge__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 25px; flex-wrap: wrap; }
.ticket-purge button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 12px 17px; border-radius: 11px; border: 1px solid #8f5260; background: #ffffff09; color: #fce7eb; font-size: 12px; font-weight: 750; line-height: 1.45; cursor: pointer; }
.ticket-purge button:hover { background: #ffffff15; }
.ticket-purge button:focus-visible { outline: 2px solid #fff1f2; outline-offset: 3px; }
.ticket-purge button:disabled { opacity: .5; cursor: wait; }
.ticket-purge button.ticket-purge__danger { background: #c91939; border-color: #ff718c; color: #fff; box-shadow: inset 0 1px #ffffff19; }
.ticket-purge button.ticket-purge__danger:hover { background: #e11d48; }
.ticket-purge__error { padding: 12px 14px; border: 1px solid #fb718566; border-radius: 11px; color: #fecdd3; background: #e11d4812; font-size: 13px !important; }
.ticket-purge__error:empty { display: none; }
.ticket-purge__progress { margin-top: 18px; }
.ticket-purge__progress progress { width: 100%; height: 9px; border: none; border-radius: 20px; overflow: hidden; accent-color: #fb7185; background: #fff1f218; }
.ticket-purge__progress progress::-webkit-progress-bar { background: #fff1f218; }
.ticket-purge__progress progress::-webkit-progress-value { background: linear-gradient(90deg, #e11d48, #fda4af); border-radius: 20px; transition: width .3s; }
.ticket-purge__progress progress::-moz-progress-bar { background: #fb7185; border-radius: 20px; }
.ticket-purge__progress-copy { display: flex; justify-content: space-between; gap: 12px; margin-top: 8px; color: #f6dbe0; font-size: 12px; }
.ticket-purge__animation { position: relative; width: 100px; height: 100px; margin: 22px auto; color: #fda4af; }
.ticket-purge__animation svg { width: 100%; height: 100%; }
.ticket-purge__paper { position: absolute; width: 19px; height: 23px; top: -4px; left: 40px; border: 2px solid #fecdd3; border-radius: 3px; opacity: 0; }
.ticket-purge.is-running .ticket-purge__paper { animation: ticket-purge-drop 1.8s ease-in infinite; }
.ticket-purge.is-running .ticket-purge__paper:nth-child(2) { animation-delay: .9s; }
.ticket-purge.is-complete { animation: none; border-color: #c3a1aa; }
.ticket-purge__result { padding: 22px 18px; margin: 22px 0; border: 1px solid #fb718544; border-radius: 14px; background: #ef44440c; text-align: center; }
.ticket-purge__result strong { display: block; color: #fff1f2; font-size: 40px; line-height: 1.2; font-variant-numeric: tabular-nums; }
.ticket-purge__result span { display: block; color: #eacbd1; font-size: 13px; margin-top: 7px; }
@keyframes ticket-purge-pulse { 0%, 100% { box-shadow: 0 24px 100px #0009, 0 0 0 6px #ef444419, 0 0 34px #e11d4820; } 50% { box-shadow: 0 24px 100px #0009, 0 0 0 9px #ef444425, 0 0 58px #e11d4845; } }
@keyframes ticket-purge-drop { 0% { transform: translate(-17px, -8px) rotate(-17deg); opacity: 0; } 20% { opacity: 1; } 75% { opacity: 1; } 100% { transform: translate(0, 50px) rotate(8deg) scale(.4); opacity: 0; } }
@media (max-width: 600px) { .ticket-purge-entry { flex-direction: column; align-items: stretch; gap: 17px; } .ticket-purge { border-radius: 18px; } .ticket-purge__shell { padding: 22px 18px; } .ticket-purge__actions { flex-direction: column-reverse; } .ticket-purge__actions button { width: 100%; } .ticket-purge__scope { padding: 14px; } }
@media (prefers-reduced-motion: reduce) { .ticket-purge[open], .ticket-purge.is-running .ticket-purge__paper { animation: none; } .ticket-purge__progress progress::-webkit-progress-value { transition: none; } }
.ticket-purge-entry { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 22px; border-color: rgba(244, 63, 94, .3); background: linear-gradient(110deg, rgba(159, 18, 57, .10), transparent); }
.ticket-purge-entry > div { min-width: 0; }
.ticket-purge-entry .eyebrow { color: #fb7185; }
.ticket-purge-entry h2 { margin: 7px 0; font-size: 19px; }
.ticket-purge-entry p { margin: 0; max-width: 700px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.ticket-purge-entry > button { flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 11px 15px; border: 1px solid #fb718566; border-radius: 11px; color: #fecdd3; background: #e11d481a; font-size: 13px; font-weight: 700; cursor: pointer; }
.ticket-purge-entry > button:hover { background: #e11d4830; }
.ticket-purge-entry > button svg { width: 18px; height: 18px; }
html[data-theme="light"] .ticket-purge-entry .eyebrow, html[data-theme="light"] .ticket-purge-entry > button { color: #9f1239; }
