:root {
    --mc-primary: #7d1733;
    --mc-primary-dark: #541023;
    --mc-accent: #d7a84b;
    --mc-sidebar: color-mix(in srgb, var(--mc-primary) 34%, #11131a);
    --mc-sidebar-end: color-mix(in srgb, var(--mc-primary) 46%, #11131a);
}

body {
    font-family: Inter, sans-serif;
}

/* Sistema visual compartido */
.app-content { padding-bottom: 2rem; }
.card { border: 1px solid #edf0f5; border-radius: 1rem; box-shadow: 0 .35rem 1.35rem rgba(35, 38, 45, .045); }
.card .card-header { min-height: 70px; }
.form-label { color: #3f4254; font-size: .78rem; font-weight: 650; margin-bottom: .55rem; }
.form-control, .form-select { border-color: #dfe3ea; border-radius: .7rem; min-height: 44px; padding: .7rem .9rem; transition: border-color .16s ease, box-shadow .16s ease, background .16s ease; }
textarea.form-control { min-height: 108px; resize: vertical; }
.form-control:focus, .form-select:focus { border-color: rgba(125, 23, 51, .55); box-shadow: 0 0 0 .22rem rgba(125, 23, 51, .09); }
.form-control:disabled, .form-select:disabled { background-color: #f3f4f7; color: #7e8299; }
.form-check-input:checked { background-color: var(--mc-primary); border-color: var(--mc-primary); }
.form-text { color: #8b90a3; font-size: .7rem; margin-top: .45rem; }
.input-group > .input-group-text { background: #f5f6f8; border-color: #dfe3ea; color: #7e8299; }
.btn { align-items: center; border-radius: .7rem; display: inline-flex; font-weight: 650; justify-content: center; min-height: 42px; }
.btn-sm { min-height: 34px; }
.table { margin-bottom: 0; }
.table thead th { color: #9297aa; font-size: .69rem; font-weight: 700; letter-spacing: .035em; padding-bottom: .9rem; text-transform: uppercase; white-space: nowrap; }
.table tbody td { border-color: #edf0f5; padding-bottom: 1rem; padding-top: 1rem; vertical-align: middle; }
.table tbody tr { transition: background .16s ease; }
.table tbody tr:hover { background: #fafafb; }
.badge { border-radius: 999px; font-weight: 650; padding: .42rem .65rem; }
.modal-content { border: 0; border-radius: 1.1rem; box-shadow: 0 1.5rem 5rem rgba(25, 28, 36, .22); }
.modal-header, .modal-footer { padding-left: 1.5rem; padding-right: 1.5rem; }
.mc-modal-icon { align-items: center; border-radius: 50%; display: flex; flex: 0 0 auto; font-size: 1rem; font-weight: 800; height: 38px; justify-content: center; width: 38px; }
.mc-modal-icon-warning { background: #fff4de; color: #e79b16; }
.mc-modal-icon-success { background: #e8fff3; color: #37b978; font-size: 1.4rem; height: 58px; width: 58px; }
.invalid-feedback, .text-danger.fs-7 { font-size: .7rem; margin-top: .4rem; }
.pagination { margin-bottom: 0; margin-top: 1.5rem; }

.app-sidebar {
    background: linear-gradient(165deg, var(--mc-sidebar) 0%, var(--mc-sidebar-end) 115%) !important;
    box-shadow: .6rem 0 2rem rgba(22, 21, 26, .12);
}

.app-sidebar .menu-link { color: rgba(255, 255, 255, .72) !important; }
.app-sidebar .menu-link .menu-title, .app-sidebar .menu-link .menu-icon i { color: inherit !important; }
.app-sidebar .menu-link:hover { background-color: rgba(255, 255, 255, .09) !important; color: #fff !important; }
.app-sidebar .menu-link.active { background: color-mix(in srgb, var(--mc-accent) 28%, rgba(255, 255, 255, .12)) !important; box-shadow: inset 3px 0 0 var(--mc-accent); color: #fff !important; }
.app-sidebar .menu-heading { color: rgba(255, 255, 255, .48) !important; }
.app-sidebar .app-sidebar-logo { border-bottom-color: rgba(255, 255, 255, .1) !important; }
.app-sidebar .app-sidebar-footer, .app-sidebar .app-sidebar-footer span { color: rgba(255, 255, 255, .5) !important; }

.app-header { background: linear-gradient(90deg, var(--mc-primary), color-mix(in srgb, var(--mc-primary) 86%, var(--mc-accent))) !important; border-bottom: 0 !important; box-shadow: 0 .35rem 1.3rem rgba(22, 21, 26, .14); }
.mc-header-title { color: #fff; }
.app-header .mc-header-action { background: rgba(255, 255, 255, .1) !important; border: 1px solid rgba(255, 255, 255, .13) !important; color: #fff !important; }
.app-header .mc-header-action:hover, .app-header .mc-header-action:focus { background: rgba(255, 255, 255, .18) !important; color: #fff !important; }
.app-header .mc-header-action i, .app-header .mc-header-action > span:not(.symbol) { color: #fff !important; }
.app-header .mc-header-avatar { background: var(--mc-accent) !important; color: #fff !important; }

.brand-mark {
    align-items: center;
    background: linear-gradient(135deg, var(--mc-primary), var(--mc-primary-dark));
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: .75rem;
    color: #fff;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: .95rem;
    font-weight: 800;
    height: 38px;
    justify-content: center;
    letter-spacing: .04em;
    width: 38px;
}

.brand-mark-lg {
    border-radius: 1.5rem;
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, .2);
    font-size: 2rem;
    height: 92px;
    width: 92px;
}

.auth-page {
    background-color: #f1f1f4;
}

.auth-hero {
    background-image: linear-gradient(135deg, rgba(43, 8, 20, .92), rgba(125, 23, 51, .78)), url('../media/auth/bg10.jpeg');
    background-position: center;
    background-size: cover;
    min-height: 280px;
}

.btn-primary {
    --bs-btn-bg: var(--mc-primary);
    --bs-btn-border-color: var(--mc-primary);
    --bs-btn-hover-bg: var(--mc-primary-dark);
    --bs-btn-hover-border-color: var(--mc-primary-dark);
    --bs-btn-active-bg: var(--mc-primary-dark);
    --bs-btn-active-border-color: var(--mc-primary-dark);
}

.btn.btn-primary {
    background-color: var(--mc-primary) !important;
    border-color: var(--mc-primary) !important;
}

.btn.btn-primary:hover,
.btn.btn-primary:focus,
.btn.btn-primary:active {
    background-color: var(--mc-primary-dark) !important;
    border-color: var(--mc-primary-dark) !important;
}

.link-primary,
.link-primary:hover {
    color: var(--mc-primary) !important;
}

.text-primary {
    color: var(--mc-primary) !important;
}

.bg-light-primary {
    background-color: rgba(125, 23, 51, .12) !important;
}

.mc-stat-icon {
    align-items: center;
    background: rgba(125, 23, 51, .1);
    border-radius: 1rem;
    color: var(--mc-primary);
    display: flex;
    height: 52px;
    justify-content: center;
    width: 52px;
}

.mc-petition-hero {
    background: linear-gradient(120deg, var(--mc-primary-dark), var(--mc-primary) 58%, #a32c50);
    border-radius: 1.25rem;
    box-shadow: 0 1rem 2.5rem rgba(84, 16, 35, .16);
    overflow: hidden;
    padding: 2rem;
    position: relative;
}

.mc-petition-hero::after {
    background: rgba(255, 255, 255, .07);
    border-radius: 50%;
    content: '';
    height: 240px;
    position: absolute;
    right: -60px;
    top: -110px;
    width: 240px;
}

.mc-folio-pill {
    background: rgba(255, 255, 255, .14);
    border: 1px solid rgba(255, 255, 255, .2);
    border-radius: 999px;
    color: #fff;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .04em;
    padding: .45rem .8rem;
}

.mc-petition-hero-stats {
    align-items: center;
    background: rgba(31, 5, 13, .22);
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 1rem;
    display: flex;
    flex: 0 0 auto;
    padding: 1rem;
    position: relative;
    z-index: 1;
}

.mc-petition-hero-stats > div { min-width: 115px; padding: 0 1rem; }
.mc-petition-hero-stats > div + div { border-left: 1px solid rgba(255, 255, 255, .15); }
.mc-petition-hero-stats span, .mc-petition-hero-stats strong { color: #fff; display: block; }
.mc-petition-hero-stats span { font-size: .72rem; opacity: .68; }
.mc-petition-hero-stats strong { font-size: .92rem; margin-top: .25rem; }

.mc-petition-description { color: #3f4254; font-size: 1rem; line-height: 1.85; min-height: 110px; white-space: pre-line; }
.mc-contact-row { align-items: flex-start; border-top: 1px dashed #e4e6ef; display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 0; }
.mc-contact-row span { color: #a1a5b7; font-size: .8rem; font-weight: 600; }
.mc-contact-row a, .mc-contact-row strong { color: #3f4254; font-size: .85rem; font-weight: 600; overflow-wrap: anywhere; text-align: right; }

.mc-tracking-item { display: flex; gap: .9rem; margin-bottom: 1.25rem; position: relative; }
.mc-tracking-item:not(:last-child)::after { background: #e4e6ef; content: ''; height: calc(100% + .8rem); left: 5px; position: absolute; top: 12px; width: 1px; }
.mc-tracking-dot { background: var(--mc-primary); border: 3px solid rgba(125, 23, 51, .15); border-radius: 50%; flex: 0 0 auto; height: 11px; margin-top: .25rem; width: 11px; }
.mc-tracking-item div span, .mc-tracking-item div strong { display: block; }
.mc-tracking-item div span { color: #a1a5b7; font-size: .75rem; margin-bottom: .2rem; }
.mc-tracking-item div strong { color: #3f4254; font-size: .85rem; }
.mc-internal-note { background: #fff8dd; border-left: 3px solid #f1bc00; border-radius: .65rem; color: #5e5440; line-height: 1.65; padding: 1rem; white-space: pre-line; }

.mc-empty-attachments { border: 1px dashed #d8dbe5; border-radius: 1rem; padding: 2.5rem 1rem; text-align: center; }
.mc-empty-attachments-icon { align-items: center; background: rgba(125, 23, 51, .1); border-radius: 50%; color: var(--mc-primary); display: inline-flex; height: 64px; justify-content: center; width: 64px; }
.mc-attachment-card { border: 1px solid #e9ebf1; border-radius: 1rem; display: grid; grid-template-columns: 112px minmax(0, 1fr); min-height: 140px; overflow: hidden; transition: border-color .2s ease, box-shadow .2s ease; }
.mc-attachment-card:hover { border-color: rgba(125, 23, 51, .28); box-shadow: 0 .5rem 1.5rem rgba(35, 38, 45, .08); }
.mc-attachment-preview { align-items: center; background: #f5f6f8; border: 0; display: flex; justify-content: center; min-height: 140px; overflow: hidden; padding: 0; position: relative; width: 100%; }
.mc-attachment-preview.js-preview-anexo { cursor: pointer; }
.mc-attachment-preview img { height: 100%; inset: 0; object-fit: cover; position: absolute; width: 100%; }
.mc-preview-hint { background: rgba(20, 20, 25, .72); border-radius: 99px; bottom: .5rem; color: #fff; font-size: .65rem; left: 50%; padding: .25rem .55rem; position: absolute; transform: translateX(-50%); white-space: nowrap; }
.mc-file-icon { align-items: center; background: #e9eaf0; border-radius: .75rem; color: #646776; display: flex; font-size: .72rem; font-weight: 800; height: 58px; justify-content: center; width: 48px; }
.mc-file-pdf { background: #ffe7eb; color: #c52e49; }
.mc-attachment-info { min-width: 0; padding: 1rem; }

.mc-upload-zone { align-items: center; background: #fafafa; border: 1px dashed #cfd2dc; border-radius: 1rem; cursor: pointer; display: flex; flex-direction: column; gap: .45rem; padding: 2rem 1rem; text-align: center; transition: background .2s ease, border-color .2s ease; }
.mc-upload-zone:hover { background: rgba(125, 23, 51, .035); border-color: var(--mc-primary); }
.mc-upload-zone strong { color: #3f4254; }
.mc-upload-zone span { color: #a1a5b7; font-size: .75rem; }
.mc-upload-zone input { height: 1px; opacity: 0; overflow: hidden; position: absolute; width: 1px; }
.mc-upload-selection { background: #fafafb; border: 1px solid #eff1f5; border-radius: .85rem; overflow: hidden; }
.mc-upload-file { align-items: center; display: flex; gap: 1rem; justify-content: space-between; padding: .75rem 1rem; }
.mc-upload-file + .mc-upload-file { border-top: 1px dashed #e4e6ef; }
.mc-upload-file strong { color: #3f4254; font-size: .75rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-upload-file span { color: #a1a5b7; flex: 0 0 auto; font-size: .68rem; }
.mc-viewer-modal { overflow: hidden; }
.mc-document-viewer { align-items: center; background: #23252b; display: flex; height: min(76vh, 850px); justify-content: center; }
.mc-document-viewer img { max-height: 100%; max-width: 100%; object-fit: contain; }
.mc-document-viewer iframe { background: #fff; border: 0; height: 100%; width: 100%; }

.mc-summary-card {
    background: #fff;
    border: 1px solid #edf0f5;
    border-radius: 1rem;
    box-shadow: 0 .35rem 1.25rem rgba(35, 38, 45, .04);
    min-height: 128px;
    overflow: hidden;
    padding: 1.35rem 1.5rem;
    position: relative;
}

.mc-summary-card span, .mc-summary-card strong, .mc-summary-card small { display: block; position: relative; z-index: 1; }
.mc-summary-card span { color: #7e8299; font-size: .75rem; font-weight: 700; text-transform: uppercase; }
.mc-summary-card strong { color: #181c32; font-size: 1.8rem; line-height: 1.2; margin: .35rem 0; }
.mc-summary-card small { color: #a1a5b7; font-size: .7rem; }
.mc-summary-orb { border-radius: 50%; height: 82px; opacity: .1; position: absolute; right: -20px; top: -18px; width: 82px; }
.mc-summary-primary .mc-summary-orb { background: var(--mc-primary); }
.mc-summary-info .mc-summary-orb { background: #009ef7; }
.mc-summary-danger .mc-summary-orb { background: #f1416c; }
.mc-summary-warning .mc-summary-orb { background: #ffc700; }

.mc-search-icon { color: #a1a5b7; font-size: 1.35rem; left: 1rem; position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; }
.mc-petitions-table thead th { border-bottom: 1px solid #eff2f5; padding: 1rem .75rem; }
.mc-petitions-table tbody td { border-bottom: 1px dashed #e4e6ef; padding: 1.3rem .75rem; }
.mc-petitions-table tbody tr { transition: background .18s ease; }
.mc-petitions-table tbody tr:hover { background: #fafafb; }
.mc-folio-small { background: rgba(125, 23, 51, .08); border-radius: 99px; color: var(--mc-primary); font-size: .67rem; font-weight: 700; letter-spacing: .02em; padding: .25rem .5rem; }
.mc-empty-list { padding: 3.5rem 1rem; text-align: center; }

.mc-form-intro { align-items: center; background: linear-gradient(100deg, rgba(125, 23, 51, .1), rgba(125, 23, 51, .025)); border: 1px solid rgba(125, 23, 51, .12); border-radius: 1rem; display: flex; gap: 1rem; padding: 1rem 1.25rem; }
.mc-form-intro-icon { align-items: center; background: var(--mc-primary); border-radius: 50%; color: #fff; display: flex; flex: 0 0 auto; font-family: serif; font-size: 1rem; font-weight: 700; height: 34px; justify-content: center; width: 34px; }
.mc-form-intro strong, .mc-form-intro span { display: block; }
.mc-form-intro strong { color: #3f4254; font-size: .85rem; margin-bottom: .15rem; }
.mc-form-intro span { color: #7e8299; font-size: .75rem; }
.mc-section-number { align-items: center; background: rgba(125, 23, 51, .1); border-radius: .75rem; color: var(--mc-primary); display: flex; flex: 0 0 auto; font-size: .85rem; font-weight: 800; height: 38px; justify-content: center; width: 38px; }
.mc-form-actions { align-items: center; background: #fff; border: 1px solid #e9ebf1; border-radius: 1rem; box-shadow: 0 .75rem 2rem rgba(35, 38, 45, .08); display: flex; gap: 1rem; justify-content: space-between; padding: 1rem 1.25rem; }
.mc-status-locked { align-items: center; background: #f7f8fa; border: 1px dashed #dfe2e9; border-radius: .75rem; display: flex; gap: .75rem; justify-content: space-between; padding: .8rem; }
.mc-status-locked small { color: #7e8299; font-size: .68rem; line-height: 1.35; text-align: right; }
.mc-current-owner { align-items: center; background: #f7f8fa; border-radius: .75rem; display: flex; justify-content: space-between; padding: .8rem 1rem; }
.mc-current-owner span { color: #a1a5b7; font-size: .72rem; }
.mc-current-owner strong { color: #3f4254; font-size: .78rem; }
.mc-followup-timeline { position: relative; }
.mc-followup-entry { display: grid; gap: .8rem; grid-template-columns: 12px minmax(0, 1fr); padding-bottom: 1.35rem; position: relative; }
.mc-followup-entry:not(:last-child)::before { background: #e4e6ef; content: ''; height: calc(100% - 2px); left: 5px; position: absolute; top: 12px; width: 2px; }
.mc-followup-dot { border: 3px solid #fff; border-radius: 50%; box-shadow: 0 0 0 2px #e4e6ef; height: 12px; margin-top: .3rem; position: relative; width: 12px; z-index: 1; }
.mc-followup-content { min-width: 0; padding-left: .25rem; }
.mc-followup-user { align-items: center; background: rgba(125, 23, 51, .06); border-radius: .8rem; display: flex; gap: .8rem; padding: .8rem; }
.mc-followup-user span, .mc-followup-user strong { display: block; }
.mc-followup-user span { color: #a1a5b7; font-size: .68rem; }
.mc-followup-user strong { color: #3f4254; font-size: .8rem; }

.mc-event-hero { align-items: center; background: linear-gradient(120deg, #35101d, var(--mc-primary) 64%, #aa3656); border-radius: 1.2rem; box-shadow: 0 .8rem 2rem rgba(67, 15, 32, .18); color: #fff; display: flex; gap: 1.5rem; justify-content: space-between; overflow: hidden; padding: 1.65rem 1.8rem; position: relative; }
.mc-event-hero::after { border: 1px solid rgba(255, 255, 255, .12); border-radius: 50%; content: ''; height: 190px; position: absolute; right: -55px; top: -85px; width: 190px; }
.mc-event-hero > * { position: relative; z-index: 1; }
.mc-choice-card { cursor: pointer; display: block; height: 100%; position: relative; }
.mc-choice-card input { opacity: 0; pointer-events: none; position: absolute; }
.mc-choice-card span { background: #fff; border: 1px solid #e4e6ef; border-radius: .9rem; color: #5e6278; display: flex; font-size: .8rem; font-weight: 700; height: 100%; justify-content: center; min-height: 58px; padding: .8rem; text-align: center; transition: all .18s ease; }
.mc-choice-card:hover span { border-color: rgba(125, 23, 51, .35); }
.mc-choice-card input:checked + span { background: rgba(125, 23, 51, .07); border-color: var(--mc-primary); box-shadow: 0 0 0 2px rgba(125, 23, 51, .08); color: var(--mc-primary); }
.mc-social-check { align-items: flex-start; background: #fafafb; border: 1px solid #eff1f5; border-radius: .8rem; cursor: pointer; display: flex; gap: .7rem; padding: .85rem; transition: border-color .18s ease, background .18s ease; }
.mc-social-check:hover { background: #fff; border-color: rgba(125, 23, 51, .28); }
.mc-social-check input { margin-top: .2rem; }
.mc-social-check span, .mc-social-check strong { display: block; }
.mc-social-check span { color: #a1a5b7; font-size: .68rem; margin-top: .15rem; }
.mc-social-check strong { color: #3f4254; font-size: .77rem; }
.mc-detail-block { background: #fafafb; border: 1px solid #eff1f5; border-radius: .85rem; height: 100%; padding: .9rem 1rem; }
.mc-detail-block span, .mc-detail-block strong { display: block; }
.mc-detail-block span { color: #a1a5b7; font-size: .68rem; font-weight: 700; margin-bottom: .3rem; text-transform: uppercase; }
.mc-detail-block strong { color: #3f4254; font-size: .82rem; overflow-wrap: anywhere; }
.mc-requirement-row { align-items: center; border-bottom: 1px dashed #e4e6ef; display: flex; gap: .85rem; justify-content: space-between; padding: .85rem 0; }
.mc-requirement-row:last-child { border-bottom: 0; }
.mc-conclusion-number { align-items: center; background: rgba(125, 23, 51, .08); border-radius: 1rem; color: var(--mc-primary); display: flex; flex-direction: column; justify-content: center; min-height: 98px; padding: 1rem; text-align: center; }
.mc-conclusion-number strong { font-size: 1.75rem; line-height: 1; }
.mc-conclusion-number span { color: #7e8299; font-size: .68rem; font-weight: 700; margin-top: .45rem; text-transform: uppercase; }
.mc-wizard-progress { align-items: center; background: #fff; border: 1px solid #edf0f5; border-radius: 1rem; box-shadow: 0 .35rem 1.25rem rgba(35, 38, 45, .04); display: flex; padding: 1.1rem 1.35rem; }
.mc-wizard-step { align-items: center; background: transparent; border: 0; display: flex; gap: .8rem; padding: 0; text-align: left; }
.mc-wizard-step > span { align-items: center; background: #f1f2f5; border-radius: 50%; color: #7e8299; display: flex; flex: 0 0 auto; font-size: .8rem; font-weight: 800; height: 36px; justify-content: center; transition: all .2s ease; width: 36px; }
.mc-wizard-step strong, .mc-wizard-step small { display: block; white-space: nowrap; }
.mc-wizard-step strong { color: #7e8299; font-size: .78rem; }
.mc-wizard-step small { color: #b5b5c3; font-size: .65rem; margin-top: .12rem; }
.mc-wizard-step.is-active > span { background: var(--mc-primary); box-shadow: 0 0 0 5px rgba(125, 23, 51, .08); color: #fff; }
.mc-wizard-step.is-active strong, .mc-wizard-step.is-complete strong { color: #3f4254; }
.mc-wizard-step.is-complete > span { background: #e8fff3; color: #50cd89; }
.mc-wizard-line { background: #e9ebf1; flex: 1 1 auto; height: 2px; margin: 0 1.3rem; min-width: 25px; }
.mc-wizard-panel { animation: mcWizardIn .2s ease; }
.mc-wizard-actions { align-items: center; background: #fff; border: 1px solid #e9ebf1; border-radius: 1rem; box-shadow: 0 .75rem 2rem rgba(35, 38, 45, .08); display: flex; padding: 1rem 1.25rem; }
.mc-review-grid { display: grid; gap: 1rem; grid-template-columns: 1fr 1fr; }
.mc-review-grid > div { background: #fafafb; border: 1px solid #eff1f5; border-radius: .85rem; padding: 1rem; }
.mc-review-grid span, .mc-review-grid strong { display: block; }
.mc-review-grid span { color: #a1a5b7; font-size: .66rem; font-weight: 700; margin-bottom: .35rem; text-transform: uppercase; }
.mc-review-grid strong { color: #3f4254; font-size: .82rem; }
.mc-draft-note { background: rgba(125, 23, 51, .06); border-radius: .8rem; padding: 1rem; }
.mc-draft-note span, .mc-draft-note strong { display: block; }
.mc-draft-note span { color: #a1a5b7; font-size: .68rem; }
.mc-draft-note strong { color: var(--mc-primary); margin-top: .2rem; }
@keyframes mcWizardIn { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }

@media (min-width: 1200px) {
    .mc-sticky-panel { position: sticky; top: 95px; }
}

@media (max-width: 991.98px) {
    .mc-petition-hero-stats { width: 100%; }
    .mc-petition-hero-stats > div { flex: 1 1 0; min-width: 0; }
}

@media (max-width: 575.98px) {
    .app-toolbar .page-title > .btn { width: 100%; }
    .card .card-body { padding: 1.25rem; }
    .modal-dialog { margin: .75rem; }
    .mc-petition-hero { padding: 1.4rem; }
    .mc-petition-hero-stats { align-items: stretch; flex-direction: column; }
    .mc-petition-hero-stats > div { padding: .65rem; }
    .mc-petition-hero-stats > div + div { border-left: 0; border-top: 1px solid rgba(255, 255, 255, .15); }
    .mc-attachment-card { grid-template-columns: 88px minmax(0, 1fr); }
    .mc-form-actions { align-items: stretch; flex-direction: column; }
    .mc-form-actions > div:last-child { display: grid !important; grid-template-columns: 1fr 1fr; }
    .mc-event-hero { align-items: flex-start; flex-direction: column; padding: 1.35rem; }
    .mc-wizard-progress { align-items: stretch; flex-direction: column; gap: .75rem; }
    .mc-wizard-line { height: 14px; margin: -8px 0 -8px 17px; min-height: 14px; width: 2px; }
    .mc-review-grid { grid-template-columns: 1fr; }
    .mc-wizard-actions { align-items: stretch; flex-direction: column; }
    .mc-wizard-actions > div { display: grid !important; grid-template-columns: 1fr 1fr; margin-left: 0 !important; width: 100%; }
}

@media (min-width: 992px) {
    .auth-hero {
        min-height: 100vh;
    }
}

.mc-brand-logo { height: 42px; object-fit: contain; width: 42px; }
.mc-brand-logo-lg { filter: drop-shadow(0 .5rem 1rem rgba(0, 0, 0, .14)); height: 120px; object-fit: contain; width: 120px; }
.mc-notification-count { align-items: center; background: #f1416c; border: 2px solid #fff; border-radius: 1rem; color: #fff; display: flex; font-size: .58rem; font-weight: 800; height: 20px; justify-content: center; min-width: 20px; padding: 0 4px; position: absolute; right: -5px; top: -5px; }
.mc-notification-menu-item { align-items: center; background: transparent; border: 0; border-radius: .7rem; display: flex; gap: .8rem; padding: .7rem .8rem; text-align: left; width: 100%; }
.mc-notification-menu-item:hover, .mc-notification-menu-item.is-unread { background: rgba(125, 23, 51, .06); }
.mc-notification-menu-item strong, .mc-notification-menu-item small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.mc-notification-menu-item strong { color: #3f4254; font-size: .76rem; }
.mc-notification-menu-item small { color: #a1a5b7; font-size: .65rem; margin-top: .15rem; }
.mc-notification-type { align-items: center; background: color-mix(in srgb, var(--mc-primary) 10%, white); border-radius: .7rem; color: var(--mc-primary); display: flex; flex: 0 0 auto; font-size: .75rem; font-weight: 800; height: 38px; justify-content: center; width: 38px; }
.mc-notification-row { align-items: center; background: #fff; border: 0; border-bottom: 1px solid #eff1f5; color: #7e8299; display: flex; gap: 1rem; padding: 1.25rem 1.5rem; text-align: left; transition: background .18s ease; width: 100%; }
.mc-notification-row:hover, .mc-notification-row.is-unread { background: color-mix(in srgb, var(--mc-primary) 4%, white); }
.mc-notification-row strong, .mc-notification-row span, .mc-notification-row small { display: block; }
.mc-notification-row strong { color: #3f4254; }
.mc-notification-row small { color: #a1a5b7; font-size: .68rem; margin-top: .3rem; }
.mc-unread-dot { background: var(--mc-primary); border-radius: 50%; display: inline-block; height: 7px; width: 7px; }
.mc-theme-card { cursor: pointer; display: block; height: 100%; position: relative; }
.mc-theme-card > input { opacity: 0; position: absolute; }
.mc-theme-card-body { background: #fafafb; border: 2px solid #eff1f5; border-radius: 1rem; display: block; height: 100%; padding: 1.1rem; transition: all .18s ease; }
.mc-theme-card:hover .mc-theme-card-body, .mc-theme-card > input:checked + .mc-theme-card-body { background: #fff; border-color: var(--mc-primary); box-shadow: 0 .5rem 1.5rem rgba(35, 38, 45, .08); }
.mc-theme-logo { align-items: center; background: #f4f5f8; border-radius: .75rem; display: flex; height: 82px; justify-content: center; padding: 1rem; }
.mc-theme-logo img { max-height: 54px; max-width: 100%; object-fit: contain; }
.mc-theme-swatches { display: flex; gap: .4rem; }
.mc-theme-swatches i { border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #ddd; height: 22px; width: 22px; }
.mc-color-control { align-items: center; display: flex; gap: .6rem; }
.mc-color-control input[type="color"] { background: #fff; border: 1px solid #e4e6ef; border-radius: .65rem; height: 43px; padding: .25rem; width: 54px; }
.mc-theme-preview { align-items: center; background: linear-gradient(120deg, var(--preview-primary), color-mix(in srgb, var(--preview-primary) 76%, black)); border-radius: 1rem; color: #fff; display: flex; gap: 1rem; padding: 1.2rem; }
.mc-theme-preview-frame { background: #f3f4f7; border: 1px solid rgba(255, 255, 255, .35); border-radius: .65rem; display: grid; flex: 0 0 auto; grid-template-columns: 28px 150px; height: 78px; overflow: hidden; }
.mc-theme-preview-sidebar { background: linear-gradient(180deg, color-mix(in srgb, var(--preview-primary) 34%, #11131a), color-mix(in srgb, var(--preview-primary) 46%, #11131a)); display: block; }
.mc-theme-preview-frame > span { display: flex; flex-direction: column; }
.mc-theme-preview-header { background: linear-gradient(90deg, var(--preview-primary), color-mix(in srgb, var(--preview-primary) 86%, var(--preview-secondary))); display: block; flex: 0 0 19px; }
.mc-theme-preview img { height: 38px; margin: auto; max-width: 120px; object-fit: contain; padding: .25rem; }
.mc-theme-preview span, .mc-theme-preview strong { display: block; }
.mc-theme-preview span { opacity: .7; font-size: .66rem; text-transform: uppercase; }
.mc-theme-preview button { background: var(--preview-secondary); border: 0; border-radius: .6rem; color: #fff; font-weight: 700; margin-left: auto; padding: .7rem 1rem; }
.mc-setting-toggle { align-items: center; border-bottom: 1px dashed #e4e6ef; display: flex; justify-content: space-between; padding: 1rem 0; }
.mc-setting-toggle strong, .mc-setting-toggle small { display: block; }
.mc-setting-toggle small { color: #a1a5b7; font-size: .67rem; margin-top: .2rem; }
@media (max-width: 575.98px) { .mc-theme-preview { align-items: flex-start; flex-direction: column; } .mc-theme-preview button { margin-left: 0; width: 100%; } }

.mc-analytics-hero { align-items: center; background: linear-gradient(120deg, var(--mc-primary-dark), var(--mc-primary) 60%, color-mix(in srgb, var(--mc-primary) 82%, var(--mc-accent))); border-radius: 1.25rem; box-shadow: 0 1rem 2.5rem color-mix(in srgb, var(--mc-primary) 20%, transparent); color: #fff; display: flex; gap: 2rem; justify-content: space-between; overflow: hidden; padding: 1.7rem 2rem; }
.mc-analytics-hero > div:first-child { max-width: 430px; }
.mc-analytics-hero > div:first-child > span { font-size: .68rem; font-weight: 700; opacity: .65; text-transform: uppercase; }
.mc-analytics-hero h2 { color: #fff; font-size: 1.45rem; margin: .3rem 0; }
.mc-analytics-hero p { margin: 0; opacity: .72; }
.mc-analytics-hero-grid { display: grid; gap: .65rem; grid-template-columns: repeat(4, minmax(105px, 1fr)); }
.mc-analytics-hero-grid > div { background: rgba(255, 255, 255, .1); border: 1px solid rgba(255, 255, 255, .12); border-radius: .9rem; min-width: 108px; padding: .8rem 1rem; }
.mc-analytics-hero-grid strong, .mc-analytics-hero-grid span, .mc-analytics-hero-grid small { display: block; }
.mc-analytics-hero-grid strong { color: #fff; font-size: 1.35rem; }
.mc-analytics-hero-grid span { font-size: .68rem; font-weight: 700; margin-top: .15rem; text-transform: uppercase; }
.mc-analytics-hero-grid small { font-size: .62rem; opacity: .62; }
.mc-analytics-tabs { background: #fff; border: 1px solid #edf0f5; border-radius: .85rem; display: inline-flex; gap: .35rem; padding: .4rem; }
.mc-analytics-tabs .nav-link { border-radius: .6rem; color: #7e8299; font-size: .76rem; font-weight: 700; padding: .7rem 1rem; }
.mc-analytics-tabs .nav-link.active { background: var(--mc-primary); color: #fff; }
.mc-column-chart { align-items: end; display: grid; gap: 1rem; grid-template-columns: repeat(6, 1fr); min-height: 220px; padding: 1rem 0 0; }
.mc-column-chart > div { align-items: center; display: flex; flex-direction: column; height: 190px; justify-content: end; }
.mc-column-chart i { background: linear-gradient(180deg, var(--mc-accent), var(--mc-primary)); border-radius: .45rem .45rem .1rem .1rem; display: block; max-height: 150px; min-height: 4px; width: min(44px, 65%); }
.mc-column-chart small { color: #a1a5b7; font-size: .61rem; margin-top: .55rem; text-align: center; }
.mc-column-value { color: #5e6278; font-size: .68rem; font-weight: 800; margin-bottom: .3rem; }
.mc-topic-chip { align-items: center; background: color-mix(in srgb, var(--mc-primary) 7%, white); border: 1px solid color-mix(in srgb, var(--mc-primary) 13%, white); border-radius: 99px; color: var(--mc-primary); display: inline-flex; gap: .45rem; margin: .25rem; padding: .48rem .7rem; }
.mc-topic-chip strong { font-size: .73rem; }
.mc-topic-chip small { align-items: center; background: #fff; border-radius: 50%; display: flex; font-size: .6rem; height: 20px; justify-content: center; width: 20px; }
.mc-analytic-kpi { background: #fff; border: 1px solid #edf0f5; border-radius: 1rem; box-shadow: 0 .35rem 1.35rem rgba(35, 38, 45, .045); height: 100%; padding: 1.25rem; }
.mc-analytic-kpi span, .mc-analytic-kpi strong { display: block; }
.mc-analytic-kpi span { color: #9297aa; font-size: .69rem; font-weight: 700; text-transform: uppercase; }
.mc-analytic-kpi strong { color: var(--mc-primary); font-size: 1.8rem; margin-top: .25rem; }
.mc-opinion-list blockquote { border-left: 3px solid var(--mc-accent); margin: 0 0 1rem; padding: .2rem 0 .2rem 1rem; }
.mc-opinion-list blockquote p { color: #3f4254; font-size: .8rem; margin: 0; }
.mc-opinion-list blockquote small { color: #a1a5b7; font-size: .62rem; }
.mc-horizontal-stat { margin-bottom: 1.1rem; }
.mc-horizontal-stat > div { display: flex; font-size: .73rem; justify-content: space-between; margin-bottom: .35rem; }
.mc-horizontal-stat > div span { color: #5e6278; }
.mc-horizontal-stat > div strong { color: #3f4254; }
.mc-horizontal-stat > i { background: #eff1f5; border-radius: 99px; display: block; height: 7px; overflow: hidden; }
.mc-horizontal-stat > i > b { background: linear-gradient(90deg, var(--mc-primary), var(--mc-accent)); border-radius: inherit; display: block; height: 100%; min-width: 4px; }
.mc-question-result { background: #fafafb; border: 1px solid #eff1f5; border-radius: .85rem; height: 100%; padding: 1rem; }
.mc-question-result > small, .mc-question-result > strong { display: block; }
.mc-question-result > small { color: var(--mc-primary); font-size: .62rem; font-weight: 700; }
.mc-question-result > strong { color: #3f4254; font-size: .76rem; margin: .3rem 0 .65rem; }
.mc-question-result > div { border-top: 1px dashed #e4e6ef; display: flex; font-size: .7rem; justify-content: space-between; padding: .45rem 0; }
.mc-news-item { align-items: flex-start; border-bottom: 1px solid #eff1f5; display: flex; gap: .9rem; padding: 1.1rem 0; }
.mc-news-item:first-child { padding-top: 0; }
.mc-news-item strong { color: #3f4254; }
.mc-news-item p { color: #7e8299; font-size: .73rem; line-height: 1.55; margin: .45rem 0; }
.mc-news-item small, .mc-news-item a { font-size: .65rem; margin-right: .8rem; }
.mc-news-sentiment { border-radius: 50%; flex: 0 0 auto; height: 11px; margin-top: .35rem; width: 11px; }
.mc-news-sentiment.is-positivo { background: #50cd89; }.mc-news-sentiment.is-neutral { background: #a1a5b7; }.mc-news-sentiment.is-negativo { background: #f1416c; }
.mc-source-item { align-items: flex-start; border-bottom: 1px dashed #e4e6ef; display: flex; gap: .75rem; justify-content: space-between; padding: .85rem 0; }
.mc-source-item strong, .mc-source-item span, .mc-source-item small { display: block; }
.mc-source-item strong { color: #3f4254; font-size: .76rem; }.mc-source-item span, .mc-source-item small { color: #a1a5b7; font-size: .63rem; margin-top: .15rem; }
.mc-message-suggestion { background: color-mix(in srgb, var(--mc-primary) 5%, white); border: 1px solid color-mix(in srgb, var(--mc-primary) 12%, white); border-radius: .9rem; height: 100%; padding: 1rem; }
.mc-message-suggestion > span, .mc-message-suggestion > strong { display: block; }.mc-message-suggestion > span { color: var(--mc-primary); font-size: .62rem; font-weight: 800; text-transform: uppercase; }.mc-message-suggestion > strong { color: #3f4254; font-size: .82rem; margin: .3rem 0; }.mc-message-suggestion p { color: #7e8299; font-size: .7rem; line-height: 1.55; }
@media (max-width: 1199.98px) { .mc-analytics-hero { align-items: flex-start; flex-direction: column; } .mc-analytics-hero-grid { width: 100%; } }
@media (max-width: 767.98px) { .mc-analytics-hero-grid { grid-template-columns: 1fr 1fr; } .mc-analytics-tabs { display: flex; overflow-x: auto; width: 100%; } .mc-analytics-tabs .nav-link { white-space: nowrap; } .mc-column-chart { gap: .35rem; } }

.mc-profile-avatar { align-items: center; background: linear-gradient(135deg, var(--mc-primary), color-mix(in srgb, var(--mc-primary) 70%, var(--mc-accent))); border: 5px solid color-mix(in srgb, var(--mc-primary) 9%, white); border-radius: 1.3rem; box-shadow: 0 .8rem 2rem color-mix(in srgb, var(--mc-primary) 18%, transparent); color: #fff; display: flex; font-size: 2rem; font-weight: 800; height: 96px; justify-content: center; width: 96px; }
.mc-profile-meta { background: #fafafb; border: 1px solid #eff1f5; border-radius: .9rem; padding: .25rem 1rem; text-align: left; }
.mc-profile-meta > div { align-items: center; border-bottom: 1px dashed #e4e6ef; display: flex; justify-content: space-between; padding: .8rem 0; }
.mc-profile-meta > div:last-child { border-bottom: 0; }.mc-profile-meta span { color: #a1a5b7; font-size: .68rem; }.mc-profile-meta strong { color: #3f4254; font-size: .72rem; }
.mc-section-danger { background: #fff1f2; color: #f1416c; }.mc-modal-icon-danger { background: #fff1f2; color: #f1416c; }

/* Inicio contextual */
.mc-home-hero { align-items: center; background: linear-gradient(125deg, var(--mc-primary), color-mix(in srgb, var(--mc-primary) 72%, #17213a)); border-radius: 1.25rem; box-shadow: 0 1.2rem 2.5rem color-mix(in srgb, var(--mc-primary) 20%, transparent); color: #fff; display: flex; justify-content: space-between; min-height: 260px; overflow: hidden; padding: 2.5rem 3rem; position: relative; }
.mc-home-hero::after { background: var(--mc-accent); border-radius: 50%; content: ''; height: 260px; opacity: .18; position: absolute; right: -80px; top: -100px; width: 260px; }
.mc-home-hero-copy { max-width: 760px; position: relative; z-index: 1; }.mc-home-eyebrow { color: color-mix(in srgb, var(--mc-accent) 72%, white); display: block; font-size: .72rem; font-weight: 800; letter-spacing: .14em; margin-bottom: .9rem; text-transform: uppercase; }
.mc-home-hero h2 { color: #fff; font-size: clamp(1.55rem, 2.6vw, 2.45rem); line-height: 1.16; margin: 0 0 1rem; max-width: 720px; }.mc-home-hero p { color: rgba(255,255,255,.76); font-size: .9rem; line-height: 1.75; margin: 0; max-width: 690px; }
.mc-home-hero .btn-light { background: rgba(255,255,255,.13); border-color: rgba(255,255,255,.22); color: #fff; }.mc-home-hero .btn-light:hover { background: #fff; color: var(--mc-primary); }
.mc-home-hero-mark { align-items: center; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.18); border-radius: 1.2rem; display: flex; flex: 0 0 145px; flex-direction: column; margin-left: 2rem; padding: 1.35rem; position: relative; text-align: center; z-index: 1; }.mc-home-hero-mark span { font-size: 2.8rem; font-weight: 800; line-height: 1; }.mc-home-hero-mark strong { color: var(--mc-accent); font-size: .92rem; margin-top: .35rem; text-transform: uppercase; }.mc-home-hero-mark small { color: rgba(255,255,255,.6); }
.mc-home-stat { transition: transform .2s ease, box-shadow .2s ease; }.mc-home-stat:hover { box-shadow: 0 1rem 2rem rgba(34,45,78,.1); transform: translateY(-3px); }.mc-home-stat span { color: #7e8299; display: block; font-size: .72rem; font-weight: 650; }.mc-home-stat strong { color: #181c32; display: block; font-size: 2rem; line-height: 1.2; margin-top: .35rem; }.mc-home-stat small { color: #a1a5b7; display: block; font-size: .66rem; margin-top: 1rem; }
.mc-start-grid { display: grid; gap: .8rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }.mc-start-item { align-items: center; border: 1px solid #e9eaef; border-radius: .85rem; color: inherit; display: flex; gap: .9rem; padding: 1.05rem; text-decoration: none; transition: border-color .2s ease, background .2s ease; }.mc-start-item:hover { background: color-mix(in srgb, var(--mc-primary) 4%, white); border-color: color-mix(in srgb, var(--mc-primary) 30%, #e9eaef); }.mc-start-number { color: #b5b5c3; font-size: .62rem; font-weight: 800; }.mc-start-icon { align-items: center; background: color-mix(in srgb, var(--mc-primary) 9%, white); border-radius: .7rem; color: var(--mc-primary); display: flex; height: 42px; justify-content: center; width: 42px; }.mc-start-item strong,.mc-start-item small { display: block; }.mc-start-item strong { color: #181c32; font-size: .78rem; }.mc-start-item small { color: #7e8299; font-size: .65rem; line-height: 1.45; margin-top: .25rem; }
.mc-context-flow > div { align-items: flex-start; display: flex; gap: .9rem; padding-bottom: 1.15rem; position: relative; }.mc-context-flow > div:not(:last-child)::after { background: #e4e6ef; content: ''; height: calc(100% - 2.1rem); left: 15px; position: absolute; top: 2rem; width: 1px; }.mc-context-flow > div > span { align-items: center; background: color-mix(in srgb, var(--mc-primary) 9%, white); border-radius: 50%; color: var(--mc-primary); display: flex; flex: 0 0 31px; font-size: .67rem; font-weight: 800; height: 31px; justify-content: center; }.mc-context-flow p { margin: 0; }.mc-context-flow strong,.mc-context-flow small { display: block; }.mc-context-flow strong { color: #3f4254; font-size: .76rem; }.mc-context-flow small { color: #7e8299; font-size: .65rem; line-height: 1.5; margin-top: .2rem; }
.mc-home-event { align-items: center; border-top: 1px dashed #e4e6ef; color: inherit; display: flex; gap: .9rem; padding: .75rem 0; text-decoration: none; }.mc-home-event > span { align-items: center; background: color-mix(in srgb, var(--mc-accent) 14%, white); border-radius: .65rem; color: var(--mc-primary); display: flex; flex: 0 0 44px; flex-direction: column; padding: .45rem; }.mc-home-event > span strong { font-size: .9rem; line-height: 1; }.mc-home-event > span small { font-size: .55rem; text-transform: uppercase; }.mc-home-event p { margin: 0; min-width: 0; }.mc-home-event p strong,.mc-home-event p small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.mc-home-event p strong { color: #3f4254; font-size: .72rem; }.mc-home-event p small { color: #a1a5b7; font-size: .62rem; margin-top: .2rem; }
@media (max-width: 767.98px) { .mc-home-hero { padding: 2rem 1.5rem; }.mc-home-hero-mark { display: none; }.mc-start-grid { grid-template-columns: 1fr; } }

/* Búsqueda geográfica de sedes */
.mc-geocode-results { background: #fafafb; border: 1px solid #e4e6ef; border-radius: .85rem; display: grid; gap: 0; overflow: hidden; }
.mc-geocode-result { align-items: center; background: transparent; border: 0; border-bottom: 1px solid #eff1f5; color: inherit; display: flex; gap: .9rem; padding: .9rem 1rem; text-align: left; transition: background .18s ease; width: 100%; }.mc-geocode-result:last-child { border-bottom: 0; }.mc-geocode-result:hover,.mc-geocode-result:focus { background: color-mix(in srgb, var(--mc-primary) 6%, white); outline: 0; }
.mc-geocode-result > span:first-child { align-items: center; background: color-mix(in srgb, var(--mc-primary) 10%, white); border-radius: 50%; color: var(--mc-primary); display: flex; flex: 0 0 32px; font-size: .68rem; font-weight: 800; height: 32px; justify-content: center; }.mc-geocode-result strong,.mc-geocode-result small { display: block; }.mc-geocode-result strong { color: #3f4254; font-size: .72rem; line-height: 1.45; }.mc-geocode-result small { color: #a1a5b7; font-family: monospace; font-size: .62rem; margin-top: .2rem; }
.mc-event-location-map { border: 1px solid #e4e6ef; border-radius: .85rem; height: 360px; min-height: 245px; overflow: hidden; }
.mc-event-location-map .leaflet-control-attribution { font-size: .62rem; }
