/* ================================================================
   TIGO — JÓVENES CONECTADOS  |  Brand Style Override
   Brand palette from Toolkit:
     --jc-pink:   #FF0064  (primary brand magenta)
     --jc-blue:   #001EB4  (deep navy blue)
     --jc-yellow: #FFBE00  (amber)
     --jc-cyan:   #44C8F5  (sky blue)
   Typography: DM Sans
   ================================================================ */
pre {
    margin-bottom: 0;
    color: #DC3545
}
#step2-errors .invalid-feedback {
    color: #842029;
    font-size: 1em;
}
/* ── DM Sans Web Font ──────────────────────────────────────────── */
@font-face {
    font-family: 'DM Sans';
    font-weight: 400;
    font-style: normal;
    font-display: swap;
    src: url('../fonts/DMSans-Regular.ttf') format('truetype');
}
@font-face {
    font-family: 'DM Sans';
    font-weight: 500;
    font-style: normal;
    font-display: swap;
    src: url('../fonts/DMSans-Medium.ttf') format('truetype');
}
@font-face {
    font-family: 'DM Sans';
    font-weight: 600;
    font-style: normal;
    font-display: swap;
    src: url('../fonts/DMSans-SemiBold.ttf') format('truetype');
}
@font-face {
    font-family: 'DM Sans';
    font-weight: 700;
    font-style: normal;
    font-display: swap;
    src: url('../fonts/DMSans-Bold.ttf') format('truetype');
}
@font-face {
    font-family: 'DM Sans';
    font-weight: 800;
    font-style: normal;
    font-display: swap;
    src: url('../fonts/DMSans-ExtraBold.ttf') format('truetype');
}

/* ── CSS Variables ─────────────────────────────────────────────── */
:root {
    --jc-pink:        #FF0064;
    --jc-pink-dark:   #cc0050;
    --jc-pink-light:  #fff0f5;
    --jc-blue:        #001EB4;
    --jc-blue-dark:   #00178a;
    --jc-blue-light:  #f0f2ff;
    --jc-yellow:      #FFBE00;
    --jc-cyan:        #44C8F5;
    --jc-cyan-light:  #eaf8fe;
    --jc-text:        #111827;
    --jc-muted:       #6b7280;
    --jc-border:      #d1d5db;
    --jc-radius:      12px;
    --jc-radius-pill: 100px;
}

/* ── Base font for entire tigo form ────────────────────────────── */
.content {
    font-family: 'DM Sans', system-ui, -apple-system, sans-serif;
    color: var(--jc-text);
}

/* ── Page background ────────────────────────────────────────────── */
body {
    background-color: #f4f6fb;
}

/* ── Header / logo bar ──────────────────────────────────────────── */
.header {
    background: #fff;
    border-bottom: 3px solid var(--jc-pink);
}

.main-logo {
    max-width: 220px;
    height: auto;
    padding: 18px 0;
}

/* ── Intro text block ───────────────────────────────────────────── */
.invite-form-content.main-text {
    font-size: 16px;
    line-height: 1.6;
    color: var(--jc-text);
}

/* ── Form card ──────────────────────────────────────────────────── */
.invite-form {
    background-color: #fff;
    border-radius: var(--jc-radius);
    border-top: 4px solid var(--jc-pink);
    box-shadow: 0 4px 24px rgba(0, 30, 180, 0.08) !important;
    font-size: 16px;
}

/* ── Step badge ─────────────────────────────────────────────────── */
.tigo-step-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--jc-pink);
    margin-bottom: 4px;
}

/* ── Card titles ────────────────────────────────────────────────── */
.invite-form h4 {
    font-weight: 700;
    font-size: 1.35rem;
    color: var(--jc-blue);
    letter-spacing: -0.02em;
}

.invite-form #registration-subtitle {
    font-size: 15px;
    color: var(--jc-muted);
}

/* ── Form labels ────────────────────────────────────────────────── */
.invite-form .form-label {
    font-weight: 600;
    font-size: 14px;
    color: var(--jc-text);
    margin-bottom: 6px;
}

.invite-form .form-text {
    font-size: 13px;
    color: var(--jc-muted);
    line-height: 1.5;
}

/* ── Inputs & selects ───────────────────────────────────────────── */
.invite-form input[type=text],
.invite-form input[type=email],
.invite-form input[type=date] {
    border-radius: var(--jc-radius);
    height: 46px;
    border-color: var(--jc-border);
    font-family: 'DM Sans', sans-serif;
    font-size: 15px;
    color: var(--jc-text);
    transition: border-color .2s ease, box-shadow .2s ease;
}

.invite-form input[type=text]:focus,
.invite-form input[type=email]:focus,
.invite-form input[type=date]:focus {
    border-color: var(--jc-blue);
    box-shadow: 0 0 0 3px rgba(0, 30, 180, 0.12);
    outline: none;
}

.form-select {
    border-radius: var(--jc-radius);
    height: 46px;
    border-color: var(--jc-border);
    font-family: 'DM Sans', sans-serif;
    font-size: 15px;
    color: var(--jc-text);
    transition: border-color .2s ease, box-shadow .2s ease;
    line-height: normal;
}

.form-select:focus {
    border-color: var(--jc-blue);
    box-shadow: 0 0 0 3px rgba(0, 30, 180, 0.12);
}

/* selectpicker override */
.selectpicker {
    border-radius: var(--jc-radius);
    height: 46px;
    border-color: var(--jc-border);
}

.bootstrap-select > .dropdown-toggle {
    border-radius: var(--jc-radius);
    height: 46px;
    border-color: var(--jc-border);
    font-family: 'DM Sans', sans-serif;
    font-size: 15px;
}

/* ── Primary submit button ──────────────────────────────────────── */
.invite-form .form-submit {
    background-color: var(--jc-pink);
    border-color: var(--jc-pink);
    border-radius: var(--jc-radius-pill);
    height: 50px;
    font-family: 'DM Sans', sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0.01em;
    color: #fff;
    transition: background-color .2s ease, transform .1s ease;
}

.invite-form .form-submit:hover,
.invite-form .form-submit:focus {
    background-color: var(--jc-pink-dark);
    border-color: var(--jc-pink-dark);
    color: #fff;
    transform: translateY(-1px);
}

.invite-form .form-submit:active {
    transform: translateY(0);
}

/* ── Required asterisk ──────────────────────────────────────────── */
span.required-mark {
    color: var(--jc-pink);
}

/* ── Institution selector — section label ───────────────────────── */
.tigo-section-label {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--jc-blue);
}

/* ── Código lookup input-group ──────────────────────────────────── */
.invite-form .tigo-lookup-group input[type=text] {
    border-radius: var(--jc-radius) 0 0 var(--jc-radius);
}

.invite-form .tigo-lookup-group .btn {
    border-radius: 0 var(--jc-radius) var(--jc-radius) 0;
    border-color: var(--jc-blue);
    background-color: var(--jc-blue);
    color: #fff;
    height: 46px;
    font-size: 14px;
    font-weight: 600;
    font-family: 'DM Sans', sans-serif;
    transition: background-color .2s ease;
}

.invite-form .tigo-lookup-group .btn:hover {
    background-color: var(--jc-blue-dark);
    border-color: var(--jc-blue-dark);
}

/* ── Resolved institution info (success) ────────────────────────── */
#codigo-resolved-info.alert-success {
    background-color: var(--jc-cyan-light);
    border-color: var(--jc-cyan);
    color: var(--jc-blue);
    border-radius: var(--jc-radius);
}

/* ── Warning (not found) ────────────────────────────────────────── */
#codigo-lookup-error.alert-warning {
    background-color: #fffbeb;
    border-color: var(--jc-yellow);
    color: #7c5a00;
    border-radius: var(--jc-radius);
}

/* ── Current selection summary ──────────────────────────────────── */
#current-selection-summary .alert-info {
    background-color: var(--jc-blue-light);
    border-color: var(--jc-blue);
    border-radius: var(--jc-radius);
    color: var(--jc-blue);
}

/* ── Saved chain items (teacher mode) ───────────────────────────── */
.tigo-chain-item {
    background-color: var(--jc-blue-light);
    border: 1px solid rgba(0, 30, 180, 0.18);
    border-radius: var(--jc-radius);
    font-size: 14px;
}

.tigo-chain-item .btn-outline-danger {
    border-radius: 50%;
    width: 28px;
    height: 28px;
    padding: 0;
    line-height: 1;
    font-size: 16px;
}

/* ── Add selection button ───────────────────────────────────────── */
.tigo-add-chain-btn {
    border-radius: var(--jc-radius-pill);
    height: 46px;
    font-size: 15px;
    font-weight: 600;
    font-family: 'DM Sans', sans-serif;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    border-color: var(--jc-blue);
    color: var(--jc-blue);
    transition: background-color .2s ease, color .2s ease;
}

.tigo-add-chain-btn:hover {
    background-color: var(--jc-blue);
    color: #fff;
    border-color: var(--jc-blue);
}

/* ── Institution validation error ───────────────────────────────── */
.institutionSelections-invalid {
    display: none;
    color: #dc3545;
    font-size: 0.85em;
    margin-top: 4px;
}

/* ── Checkbox — override global border-radius: 25px ─────────────── */
.invite-form input[type=checkbox] {
    border-radius: 4px;
    height: 20px;
    width: 20px;
    border-color: var(--jc-border);
    cursor: pointer;
    flex-shrink: 0;
    margin-top: 0.15em;
}

.invite-form .form-check-input:checked {
    background-color: var(--jc-pink);
    border-color: var(--jc-pink);
}

.invite-form .form-check-input:focus {
    box-shadow: 0 0 0 3px rgba(255, 0, 100, 0.15);
    outline: none;
}

/* ── Checkbox label ─────────────────────────────────────────────── */
.invite-form .form-check-label {
    font-size: 14px;
    color: var(--jc-text);
    line-height: 1.5;
    padding-left: 0.4em;
}

/* ── Legal declaration text ─────────────────────────────────────── */
.tigo-legal-text {
    font-size: 13px;
    color: var(--jc-muted);
    line-height: 1.6;
    background-color: var(--jc-blue-light);
    border-left: 3px solid var(--jc-blue);
    border-radius: 0 var(--jc-radius) var(--jc-radius) 0;
    padding: 12px 14px;
}

/* ── Duplicate chain warning ────────────────────────────────────── */
#add-chain-duplicate-warning.alert-warning {
    background-color: #fffbeb;
    border-color: var(--jc-yellow);
    color: #7c5a00;
    border-radius: var(--jc-radius);
    font-size: 14px;
}

/* ── Step bottom spacing ────────────────────────────────────────── */
.invite-form-content .row.mb-5 {
    margin-bottom: 1.5rem !important;
}

/* ── reCAPTCHA mobile — centered, no clipping ───────────────────── */
@media only screen and (max-width: 500px) {
    .g-recaptcha {
        transform: scale(0.85);
        transform-origin: center top;
        display: flex;
        justify-content: center;
    }
    .g-recaptcha > div {
        margin: 0 auto;
    }
}