/* CUZY Manager: the trial signup pages. Scoped under .cm, on the CUZY theme's --cw-* tokens. */
.cm { --cm-accent: var(--cw-accent, #7B2FF7); --cm-accent-soft: var(--cw-accent-soft, #F2EAFE); --cm-line: var(--cw-line, #E5DEE8); --cm-muted: var(--cw-muted, #786286); --cm-heading: var(--cw-heading, #361842); --cm-radius: var(--cw-radius, 14px); --cm-radius-sm: var(--cw-radius-sm, 8px); }
.cm-signup { max-width: 760px; margin: 0 auto; }
.cm-signup .panel { border-radius: var(--cm-radius); box-shadow: var(--cw-shadow, 0 8px 24px -12px rgba(54, 24, 66, .22)); border: 1px solid var(--cm-line); }
.cm-signup .panel-body { padding: 1.75rem; }
.cm h1, .cm h2, .cm h3 { font-family: var(--cw-font-display, inherit); color: var(--cm-heading); }
.cm-lead { color: var(--cm-muted); font-size: 1.05rem; }

/* Steps */
.cm-step { display: flex; gap: .9rem; align-items: flex-start; margin-top: 1.75rem; }
.cm-step:first-child { margin-top: .25rem; }
.cm-step-no { flex: 0 0 2rem; height: 2rem; border-radius: 50%; background: var(--cw-gradient, var(--cm-accent)); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 600; font-family: var(--cw-font-display, inherit); }
.cm-step-body { flex: 1; min-width: 0; }
.cm-step-title { font-size: 1.15rem; margin: 0 0 .75rem; line-height: 2rem; }

/* Region cards */
.cm-regions { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .75rem; }
.cm-region { position: relative; border: 2px solid var(--cm-line); border-radius: var(--cm-radius-sm); padding: .8rem .9rem; cursor: pointer; transition: border-color .15s, background .15s; }
.cm-region:hover { border-color: var(--cm-accent); }
.cm-region.is-selected { border-color: var(--cm-accent); background: var(--cm-accent-soft); }
.cm-region input { position: absolute; opacity: 0; pointer-events: none; }
.cm-region-name { font-weight: 600; display: block; }
.cm-region-note { font-size: .8rem; color: var(--cm-muted); display: block; margin-top: .15rem; }
.cm-region.is-lead .cm-region-note { color: var(--cw-danger, #B3246F); }

/* Address field */
.cm-address .input-group-text { background: var(--cm-accent-soft); color: var(--cm-heading); border-color: var(--bs-border-color); }
.cm-hostname { font-size: .85rem; color: var(--cm-muted); min-height: 1.3rem; }
.cm-hostname strong { color: var(--cm-heading); }
.cm-availability { font-size: .85rem; min-height: 1.3rem; }
.cm-availability.is-ok { color: var(--cw-ok, #6C29D9); }
.cm-availability.is-ko { color: var(--cw-danger, #B3246F); }
.cm-availability.is-ok::before { content: "✓ "; }

/* Hints and consents */
.cm-hint { cursor: help; font-size: .9em; }
.cm-hint:hover { color: var(--cm-accent) !important; }
.cm-consents .form-check { margin-bottom: .5rem; }
.cm-consents a { color: var(--cm-accent); text-decoration: underline; }
.cm-signup .btn-primary { border-radius: 50rem; padding: .65rem 1.6rem; font-weight: 600; }
.cm-signup .form-text { color: var(--cm-muted); }
.cm-fineprint { font-size: .8rem; color: var(--cm-muted); margin-top: 1rem; }

/* Sent, invalid, creating */
.cm-center { text-align: center; padding: 1rem 0; }
.cm-center .cm-icon { font-size: 3rem; color: var(--cm-accent); margin-bottom: .75rem; }
.cm-progress-steps { list-style: none; padding: 0; margin: 1.5rem auto; max-width: 420px; text-align: left; }
.cm-progress-steps li { display: flex; align-items: center; gap: .75rem; padding: .55rem 0; color: var(--cm-muted); border-bottom: 1px solid var(--cm-line); }
.cm-progress-steps li:last-child { border-bottom: 0; }
.cm-progress-steps .cm-dot { flex: 0 0 1.4rem; height: 1.4rem; border-radius: 50%; border: 2px solid var(--cm-line); display: inline-flex; align-items: center; justify-content: center; font-size: .75rem; }
.cm-progress-steps li.is-active { color: var(--cm-heading); font-weight: 600; }
.cm-progress-steps li.is-active .cm-dot { border-color: var(--cm-accent); animation: cm-pulse 1.2s ease-in-out infinite; }
.cm-progress-steps li.is-done { color: var(--cm-heading); }
.cm-progress-steps li.is-done .cm-dot { background: var(--cm-accent); border-color: var(--cm-accent); color: #fff; }
.cm-progress-steps li.is-done .cm-dot::after { content: "✓"; }
@keyframes cm-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(123, 47, 247, .35); } 50% { box-shadow: 0 0 0 8px rgba(123, 47, 247, 0); } }
.cm-ready .btn-lg { border-radius: 50rem; padding: .8rem 2rem; font-weight: 600; }

@media (max-width: 575.98px) {
    .cm-signup .panel-body { padding: 1.1rem; }
    .cm-step { gap: .65rem; }
}
