.refund-entry { margin-top: 20px; }
.refund-trigger { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; border: 1px solid #707b86; border-radius: 8px; background: transparent; color: white; font: inherit; font-size: 15px; cursor: pointer; }
.refund-trigger:hover { background: #243241; border-color: white; }
.refund-trigger:focus-visible { outline: 3px solid #fdd835; outline-offset: 4px; }
.refund-dialog { --legal-line: #d9dfe5; width: min(760px, calc(100% - 32px)); max-width: none; max-height: calc(100vh - 32px); max-height: calc(100dvh - 32px); margin: auto; padding: 0; overflow: hidden; border: 1px solid var(--legal-line); border-radius: 16px; background: #fff; color: #20252a; box-shadow: 0 18px 80px #0005; }
.refund-dialog::backdrop { background: #0009; }
.refund-dialog[open] { display: flex; flex-direction: column; }
.refund-header { display: flex; flex: 0 0 auto; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 24px; border-bottom: 1px solid var(--legal-line); }
.refund-header h2 { color: #20252a; font-size: 24px; line-height: 1.4; margin: 0; }
.refund-header p { color: #52606c; font-size: 15px; margin-top: 8px; }
.refund-close { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; border: 1px solid var(--legal-line); border-radius: 8px; background: #fff; color: #20252a; font: inherit; font-size: 28px; cursor: pointer; }
.refund-close:hover { background: #f3f5f7; }
.refund-scroll { min-height: 0; padding: 24px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.refund-dialog .legal-panel { font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.refund-dialog .legal-panel h3 { margin: 24px 0 8px; color: #20252a; font-size: 18px; line-height: 1.5; }
.refund-dialog .legal-panel h3:first-child { margin-top: 0; }
.refund-dialog .legal-panel h4 { margin: 16px 0 8px; color: #20252a; font-size: 16px; line-height: 1.5; }
.refund-dialog .legal-panel p + p { margin-top: 12px; }
.refund-dialog .legal-panel ul, .refund-dialog .legal-panel > ol { margin: 12px 0; padding-left: 24px; }
.refund-dialog .legal-panel li + li { margin-top: 8px; }
.refund-dialog .legal-panel a { color: #9d271c; text-decoration: underline; text-underline-offset: 4px; }
.refund-dialog .legal-contents { position: static; display: block; width: auto; transform: none; background: transparent; backdrop-filter: none; margin: 24px 0 32px; padding: 20px; border: 1px solid var(--legal-line); border-radius: 10px; }
.refund-dialog .legal-contents h3 { margin: 0 0 16px; }
.refund-dialog .legal-contents ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; margin: 0; padding: 0; list-style: none; }
.refund-dialog .legal-contents li, .refund-dialog .legal-contents li + li { margin: 0; }
.refund-dialog .legal-contents a { display: flex; align-items: center; min-height: 44px; padding: 8px 0; line-height: 1.5; }
.refund-dialog .legal-table { width: 100%; margin: 16px 0; border-collapse: collapse; table-layout: fixed; font-size: 16px; line-height: 1.8; }
.refund-dialog .legal-table caption { margin-bottom: 8px; color: #52606c; text-align: left; }
.refund-dialog .legal-table th, .refund-dialog .legal-table td { padding: 12px; border: 1px solid var(--legal-line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.refund-dialog .legal-table th:first-child { width: 28%; }
.refund-dialog .legal-company { margin: 16px 0; padding: 16px; border: 1px solid var(--legal-line); border-radius: 10px; }
.refund-dialog .legal-company p + p { margin-top: 4px; }
.refund-dialog :is(button, a, [tabindex]):focus-visible { outline: 3px solid #9d271c; outline-offset: 3px; }
@media (max-width: 540px) {
  .refund-header { padding: 20px 16px; }
  .refund-header h2 { font-size: 21px; }
  .refund-scroll { padding: 20px 16px; }
  .refund-dialog .legal-contents { padding: 16px; }
  .refund-dialog .legal-contents ol { grid-template-columns: minmax(0, 1fr); }
  .refund-dialog .legal-table th, .refund-dialog .legal-table td { padding: 8px; }
}
