:root {
    --mr-ink: #302b2b;
    --mr-muted: #746b68;
    --mr-border: #e9e2de;
    --mr-paper: #fffdfa;
    --mr-warm: #f8f4ef;
    --mr-primary: #b5536a;
    --mr-primary-dark: #914053;
    --mr-primary-soft: #f8e9ec;
    --mr-focus: 0 0 0 4px rgba(181, 83, 106, .19);
}

/* Acceso */
.mr-auth-page { min-height:100vh; display:grid; place-items:center; margin:0; padding:24px; color:var(--mr-ink); background:radial-gradient(ellipse at 50% 0%, #fffaf5 0, #f8f4ef 72%); font-family:Inter, "Segoe UI", sans-serif; }
.mr-auth-card { box-sizing:border-box; width:min(100%, 420px); padding:38px 40px 34px; border:1px solid rgba(233,226,222,.9); border-radius:22px; background:var(--mr-paper); box-shadow:0 20px 55px rgba(67,46,40,.09); }
.mr-auth-brand { display:flex; align-items:center; justify-content:center; gap:10px; color:var(--mr-ink); font-family:"DM Serif Display", Georgia, serif; font-size:27px; text-decoration:none; }
.mr-auth-brand:hover { color:var(--mr-ink); text-decoration:none; }
.mr-auth-mark { display:grid; width:37px; height:37px; place-items:center; border-radius:13px; background:var(--mr-primary-soft); color:var(--mr-primary); font-size:16px; }
.mr-auth-tagline { margin:13px 0 29px; color:var(--mr-muted); font-size:13px; line-height:1.6; text-align:center; }
.mr-auth-card h1 { margin:0 0 23px; font-family:Inter, "Segoe UI", sans-serif; font-size:19px; font-weight:700; text-align:center; }
.mr-auth-notice { margin:-7px 0 18px; padding:11px 13px; border:1px solid #efc7ce; border-radius:10px; background:#fff1f2; color:#8c3546; font-size:13px; }
.mr-auth-field { margin-bottom:18px; }
.mr-auth-field > label { display:block; margin:0 0 7px; color:var(--mr-ink); font-size:13px; font-weight:650; }
.mr-auth-field input { box-sizing:border-box; width:100%; min-height:48px; padding:11px 13px; border:1px solid var(--mr-border); border-radius:10px; outline:0; background:#fff; color:var(--mr-ink); font:inherit; font-size:15px; transition:border-color .15s ease, box-shadow .15s ease; }
.mr-auth-field input:focus { border-color:var(--mr-primary); box-shadow:var(--mr-focus); }
.mr-auth-field input.is-invalid { border-color:#c74253; }
.mr-password-control { position:relative; }
.mr-password-control input { padding-right:52px; }
.mr-password-toggle { position:absolute; top:4px; right:4px; display:grid; width:42px; height:40px; place-items:center; border:0; border-radius:8px; background:transparent; color:var(--mr-muted); cursor:pointer; }
.mr-password-toggle:hover { background:var(--mr-warm); color:var(--mr-ink); }
.mr-password-toggle:focus-visible, .mr-auth-options a:focus-visible, .mr-auth-brand:focus-visible { outline:3px solid rgba(181,83,106,.38); outline-offset:3px; }
.mr-field-error { display:block; margin-top:6px; color:#a32d40; font-size:12px; }
.mr-auth-options { display:flex; align-items:center; justify-content:space-between; gap:10px; margin:3px 0 23px; font-size:12px; }
.mr-remember { display:flex; align-items:center; gap:8px; margin:0; color:var(--mr-muted); cursor:pointer; }
.mr-remember input { width:17px; height:17px; accent-color:var(--mr-primary); }
.mr-auth-options a { color:var(--mr-primary-dark); font-weight:650; text-decoration:none; }
.mr-auth-options a:hover { text-decoration:underline; }
.mr-auth-submit { display:flex; width:100%; min-height:50px; align-items:center; justify-content:center; gap:9px; border:0; border-radius:11px; background:var(--mr-primary); box-shadow:0 7px 15px rgba(181,83,106,.19); color:#fff; font:inherit; font-size:14px; font-weight:700; cursor:pointer; transition:background .15s ease, transform .15s ease, box-shadow .15s ease; }
.mr-auth-submit:hover:not(:disabled) { transform:translateY(-1px); background:var(--mr-primary-dark); box-shadow:0 9px 18px rgba(145,64,83,.2); }
.mr-auth-submit:focus-visible { outline:3px solid rgba(181,83,106,.4); outline-offset:3px; }
.mr-auth-submit:disabled { opacity:.72; cursor:wait; }
.mr-spinner { width:15px; height:15px; border:2px solid rgba(255,255,255,.5); border-top-color:#fff; border-radius:50%; animation:mr-spin .7s linear infinite; }
@keyframes mr-spin { to { transform:rotate(360deg); } }

/* Capa visual común sobre Bootstrap/AdminLTE */
body.mm-app { color:var(--mr-ink); background:var(--mr-warm); }
body.mm-app .main-sidebar, body.mm-app .main-header { background:var(--mr-paper); }
body.mm-app .main-sidebar { border-color:var(--mr-border); }
body.mm-app .nav-sidebar .nav-link { min-height:44px; }
body.mm-app .btn, body.mm-app .form-control, body.mm-app .custom-select { border-radius:9px; }
body.mm-app .btn { min-height:38px; font-weight:600; }
body.mm-app .btn:focus-visible, body.mm-app a:focus-visible, body.mm-app input:focus-visible, body.mm-app select:focus-visible, body.mm-app textarea:focus-visible { outline:3px solid rgba(181,83,106,.3); outline-offset:2px; }
body.mm-app .card, body.mm-app .info-box, body.mm-app .small-box { border:1px solid var(--mr-border); border-radius:14px; box-shadow:0 5px 18px rgba(67,46,40,.045); }
body.mm-app .table thead th { border-top:0; border-bottom:1px solid var(--mr-border); color:var(--mr-muted); font-size:11px; letter-spacing:.045em; text-transform:uppercase; }
body.mm-app .table td { vertical-align:middle; }
body.mm-app .alert { border-radius:11px; }
body.mm-app .breadcrumb { background:transparent; padding-left:0; }
.mm-empty-state, .mm-catalog-empty { max-width:620px; margin:20px auto; padding:35px 22px; border:1px dashed #d9cbc5; border-radius:16px; background:var(--mr-paper); text-align:center; }
.mm-empty-state > i, .mm-catalog-empty > i { display:grid; width:54px; height:54px; place-items:center; margin:0 auto 13px; border-radius:50%; background:var(--mr-primary-soft); color:var(--mr-primary); font-size:22px; }

/* Experiencia invitada: controles táctiles y lectura cómoda */
body.event-guest { min-height:100vh; color:var(--event-text, var(--mr-ink)); }
body.event-guest :is(button, .btn, a.action-card, input, select) { -webkit-tap-highlight-color:transparent; }
body.event-guest :is(button, .btn, input, select):focus-visible, body.event-guest a:focus-visible { outline:3px solid rgba(181,83,106,.42); outline-offset:2px; }
body.event-guest .action-card { min-height:82px; border:1px solid rgba(80,60,50,.07); }
body.event-guest .btn-upload-big { min-height:58px; }
body.event-guest .form-control, body.event-guest .form-select { min-height:48px; border-radius:10px; }
body.event-guest .upload-card { border:1px solid rgba(80,60,50,.08); }
body.event-guest .upload-dropzone { padding:clamp(20px, 6vw, 34px) clamp(14px, 4vw, 24px); background:rgba(255,255,255,.55); }
body.event-guest .upload-header { padding-top:max(18px, env(safe-area-inset-top)); }
body.event-guest .mr-recovery-card { padding:17px; border:1px solid rgba(181,83,106,.22); border-radius:14px; background:var(--mr-primary-soft); text-align:center; }
body.event-guest .mr-recovery-code { display:block; margin:7px 0; color:var(--mr-primary-dark); font-size:24px; font-weight:800; letter-spacing:.13em; }
@media (max-width:575px) {
    .mr-auth-page { padding:16px; }
    .mr-auth-card { padding:30px 23px 25px; border-radius:19px; }
    .mr-auth-tagline { margin-bottom:24px; }
    .mr-auth-options { font-size:11px; }
    body.mm-app .main-header { padding:0 12px; }
}
@media (prefers-reduced-motion:reduce) { *, *::before, *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; transition-duration:.01ms!important; } }
