:root { --wcan-accent: #d63638; }
.wcan-modal-open, .wcan-modal-open body { overflow: hidden; }
.wcan-modal { position: fixed; inset: 0; z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 1rem; box-sizing: border-box; }
.wcan-modal[hidden] { display: none; }
.wcan-modal--blocking { z-index: 100001; }
#wcan-site-modal { z-index: 100002; }
.wcan-modal__backdrop { position: absolute; inset: 0; background: rgba(20, 20, 20, 0.6); }
.wcan-modal .wcan-modal__dialog { position: relative; background: #fff; color: #1d2327; max-width: 560px; width: 100%; max-height: 90vh; overflow: auto; border-radius: 6px; border-top: 6px solid var(--wcan-accent); padding: 1.5rem 1.75rem 1.75rem; box-sizing: border-box; box-shadow: 0 20px 60px rgba(0,0,0,0.35); font-size: 1rem; line-height: 1.5; text-align: left; animation: wcan-pop 0.18s ease-out; -webkit-overflow-scrolling: touch; }
.wcan-modal .wcan-modal__dialog * { box-sizing: border-box; }
.wcan-modal .wcan-modal__dialog, .wcan-modal .wcan-modal__dialog p, .wcan-modal .wcan-modal__dialog li, .wcan-modal .wcan-modal__dialog span, .wcan-modal .wcan-modal__dialog h2, .wcan-modal .wcan-modal__dialog h3, .wcan-modal .wcan-modal__dialog label { color: #1d2327; }
.wcan-modal .wcan-modal__dialog a { color: var(--wcan-accent); text-decoration: underline; }
@keyframes wcan-pop { from { opacity: 0; transform: translateY(8px) scale(0.98); } to { opacity: 1; transform: none; } }
.wcan-modal .wcan-modal__title { margin: 0 0 1rem; font-size: 1.5rem; line-height: 1.2; display: flex; align-items: center; gap: 0.5rem; }
.wcan-modal .wcan-modal__title::before { content: ""; display: inline-block; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--wcan-accent); box-shadow: inset 0 0 0 3px #fff, 0 0 0 2px var(--wcan-accent); flex: none; }
.wcan-modal .wcan-modal__body { max-height: 50vh; overflow: auto; }
.wcan-modal .wcan-notice { border-left: 4px solid var(--wcan-accent); background: #f6f7f7; padding: 0.75rem 1rem; margin-bottom: 0.75rem; }
.wcan-modal .wcan-notice > :first-child { margin-top: 0; }
.wcan-modal .wcan-notice > :last-child { margin-bottom: 0; }
.wcan-modal .wcan-modal__check { display: flex; align-items: flex-start; gap: 0.6rem; margin: 1.25rem 0; cursor: pointer; font-weight: 600; }
.wcan-modal .wcan-modal__check input[type="checkbox"] { -webkit-appearance: auto; -moz-appearance: auto; appearance: auto; opacity: 1; position: static; visibility: visible; display: inline-block; width: 18px; height: 18px; min-width: 18px; margin: 0.2rem 0 0; flex: none; accent-color: var(--wcan-accent); border: 1px solid #8c8f94; background: #fff; cursor: pointer; clip: auto; clip-path: none; pointer-events: auto; }
.wcan-modal .wcan-modal__actions { display: flex; justify-content: flex-end; gap: 0.75rem; flex-wrap: wrap; }
.wcan-modal .wcan-btn { font: inherit; font-size: 1rem; font-weight: 600; line-height: 1.2; padding: 0.7rem 1.4rem; border-radius: 999px; border: 1px solid transparent; cursor: pointer; text-shadow: none; text-transform: none; letter-spacing: normal; box-shadow: none; opacity: 1; margin: 0; width: auto; min-height: 0; transition: background-color 0.15s, color 0.15s, opacity 0.15s, filter 0.15s; }
.wcan-modal .wcan-btn.wcan-btn-cancel, .wcan-modal .wcan-btn.wcan-btn--ghost { color: #1d2327 !important; background: #f0f0f1 !important; border: 1px solid #c3c4c7; text-shadow: none; opacity: 1; }
.wcan-modal .wcan-btn.wcan-btn-cancel:hover, .wcan-modal .wcan-btn.wcan-btn--ghost:hover { background: #dcdcde !important; color: #1d2327 !important; }
.wcan-modal .wcan-btn.wcan-btn--primary { background: var(--wcan-accent) !important; border-color: var(--wcan-accent); color: #fff !important; text-shadow: none; opacity: 1; }
.wcan-modal .wcan-btn.wcan-btn--primary:hover:not([disabled]) { filter: brightness(0.9); color: #fff !important; }
.wcan-modal .wcan-btn.wcan-btn--primary[disabled], .wcan-modal .wcan-btn.wcan-btn--primary:disabled { background: #a7aaad !important; border-color: #a7aaad; color: #fff !important; opacity: 1; cursor: not-allowed; filter: none; }
.wcan-modal .wcan-btn.wcan-btn-cancel[disabled] { opacity: 0.6; cursor: not-allowed; }
.wcan-modal .wcan-btn--small { padding: 0.45rem 1rem; font-size: 0.875rem; }
.wcan-modal .wcan-cc-item { padding: 1rem 0; border-bottom: 1px solid #e5e5e5; }
.wcan-modal .wcan-cc-item:last-child { border-bottom: 0; }
.wcan-modal .wcan-cc-item__name { margin: 0 0 0.75rem; font-size: 1.1rem; }
.wcan-modal .wcan-cc-item .wcan-modal__check { margin: 0.75rem 0; }
@media (max-width: 600px) {
	.wcan-modal { padding: 0.5rem; align-items: flex-end; }
	.wcan-modal .wcan-modal__dialog { max-width: none; padding: 1.25rem 1rem 1rem; border-radius: 6px 6px 0 0; max-height: 92vh; }
	.wcan-modal .wcan-modal__body { max-height: 45vh; }
	.wcan-modal .wcan-modal__title { font-size: 1.25rem; }
	.wcan-modal .wcan-modal__actions { flex-direction: column-reverse; }
	.wcan-modal .wcan-modal__actions .wcan-btn { width: 100%; }
}
