/* =====================================================================
   MediCore HIS - Estilos propios (sin frameworks adicionales a Bootstrap)
   Paleta clínica: azul petróleo + turquesa, neutros fríos. Modo claro/oscuro.
   ===================================================================== */
:root {
  --mc-primary: #0e7490;
  --mc-accent: #14b8a6;
  --sb-w: 264px;
  --sb-wc: 74px;
  --top-h: 60px;
  --mc-radius: 14px;
  --mc-bg: #f3f6fa;
  --mc-surface: #ffffff;
  --mc-border: #e3e8ef;
  --mc-muted: #64748b;
  --mc-sb-bg: #0b2530;
  --mc-sb-fg: #c9dbe2;
  --mc-shadow: 0 1px 2px rgba(16, 24, 40, .05), 0 1px 3px rgba(16, 24, 40, .06);
  --bs-primary: var(--mc-primary);
  --bs-link-color: var(--mc-primary);
  --bs-font-sans-serif: "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif;
}
[data-bs-theme=dark] {
  --mc-bg: #0f1720; --mc-surface: #16212c; --mc-border: #243241; --mc-muted: #93a4b5;
  --mc-sb-bg: #0a141c; --mc-shadow: 0 1px 3px rgba(0, 0, 0, .4);
  --bs-body-bg: #0f1720; --bs-tertiary-bg: #1b2835; --bs-secondary-bg: #1b2835;
}
body { background: var(--mc-bg); font-size: .935rem; }
.btn-primary { --bs-btn-bg: var(--mc-primary); --bs-btn-border-color: var(--mc-primary); --bs-btn-hover-bg: color-mix(in srgb, var(--mc-primary) 85%, #000); --bs-btn-hover-border-color: color-mix(in srgb, var(--mc-primary) 85%, #000); --bs-btn-active-bg: color-mix(in srgb, var(--mc-primary) 75%, #000); }
.btn-outline-primary { --bs-btn-color: var(--mc-primary); --bs-btn-border-color: var(--mc-primary); --bs-btn-hover-bg: var(--mc-primary); --bs-btn-hover-border-color: var(--mc-primary); }
.text-primary { color: var(--mc-primary) !important; }
.bg-primary { background-color: var(--mc-primary) !important; }
.form-control:focus, .form-select:focus { border-color: var(--mc-primary); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--mc-primary) 20%, transparent); }
.form-check-input:checked { background-color: var(--mc-primary); border-color: var(--mc-primary); }
.btn-icon { width: 40px; height: 40px; display: inline-flex; align-items: center; justify-content: center; border-radius: 10px; color: inherit; }
.btn-icon:hover { background: var(--bs-tertiary-bg); }

/* ---------------- Topbar ---------------- */
.mc-topbar { position: fixed; inset: 0 0 auto 0; height: var(--top-h); background: var(--mc-surface); border-bottom: 1px solid var(--mc-border); display: flex; align-items: center; gap: .5rem; padding: 0 .75rem; z-index: 1030; }
.mc-brand { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: inherit; font-weight: 600; max-width: 260px; }
.mc-brand img { height: 36px; max-width: 120px; object-fit: contain; }
.mc-brand-ico { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(135deg, var(--mc-primary), var(--mc-accent)); color: #fff; display: grid; place-items: center; font-size: 1.15rem; }
.mc-search { position: relative; width: min(440px, 40vw); margin-left: 1rem; }
.mc-search > i { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--mc-muted); }
.mc-search input { padding-left: 36px; border-radius: 10px; background: var(--bs-tertiary-bg); border-color: transparent; }
.mc-search-results { position: absolute; top: 110%; left: 0; right: 0; background: var(--mc-surface); border: 1px solid var(--mc-border); border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,.12); max-height: 60vh; overflow: auto; display: none; z-index: 1050; }
.mc-search-results a { display: flex; gap: .6rem; padding: .55rem .8rem; color: inherit; text-decoration: none; border-bottom: 1px solid var(--mc-border); }
.mc-search-results a:hover { background: var(--bs-tertiary-bg); }
.mc-user { display: flex; align-items: center; gap: .5rem; border: 0; padding: .25rem .5rem; border-radius: 12px; }
.mc-user:hover { background: var(--bs-tertiary-bg); }
.mc-avatar { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; }
.mc-avatar-ini { display: inline-grid; place-items: center; background: var(--mc-primary); color: #fff; font-weight: 700; }
.mc-dot { position: absolute; top: 4px; right: 2px; background: #ef4444; color: #fff; font-size: .62rem; border-radius: 10px; padding: 1px 5px; font-weight: 700; }
.mc-ai-btn i { background: linear-gradient(135deg, #7c3aed, var(--mc-accent)); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: 1.2rem; }

/* ---------------- Sidebar ---------------- */
.mc-sidebar { position: fixed; top: var(--top-h); bottom: 0; left: 0; width: var(--sb-w); background: var(--mc-sb-bg); color: var(--mc-sb-fg); display: flex; flex-direction: column; z-index: 1020; transition: width .22s ease, transform .22s ease; overflow: hidden; }
.mc-nav { flex: 1; overflow-y: auto; overflow-x: hidden; padding: .6rem .5rem 1rem; scrollbar-width: thin; scrollbar-color: #2a4552 transparent; }
.mc-group-btn { width: 100%; display: flex; align-items: center; gap: .75rem; background: none; border: 0; color: #e6f1f5; padding: .62rem .75rem; border-radius: 10px; font-weight: 600; font-size: .86rem; text-align: left; white-space: nowrap; }
.mc-group-btn > i:first-child { font-size: 1.1rem; width: 22px; text-align: center; color: #7dd3fc; }
.mc-group-btn:hover { background: rgba(255,255,255,.06); }
.mc-group-btn .mc-caret { margin-left: auto; font-size: .75rem; transition: transform .2s; opacity: .7; }
.mc-group-btn:not(.collapsed) { background: rgba(255,255,255,.07); }
.mc-group-btn:not(.collapsed) .mc-caret { transform: rotate(180deg); }
.mc-group-items { padding: .2rem 0 .5rem .4rem; }
.mc-mod-lbl { font-size: .68rem; text-transform: uppercase; letter-spacing: .06em; color: #6f8d99; padding: .55rem .9rem .2rem 2.3rem; white-space: nowrap; }
.mc-link { display: flex; align-items: center; gap: .7rem; padding: .45rem .75rem .45rem 2.1rem; color: var(--mc-sb-fg); text-decoration: none; border-radius: 9px; font-size: .86rem; white-space: nowrap; position: relative; }
.mc-link i { font-size: .95rem; opacity: .85; }
.mc-link:hover { background: rgba(255,255,255,.06); color: #fff; }
.mc-link.active { background: linear-gradient(90deg, color-mix(in srgb, var(--mc-primary) 75%, transparent), color-mix(in srgb, var(--mc-accent) 35%, transparent)); color: #fff; font-weight: 600; }
.mc-sb-foot { padding: .7rem 1rem; font-size: .72rem; color: #6f8d99; border-top: 1px solid rgba(255,255,255,.06); white-space: nowrap; }
.mc-main { margin-left: var(--sb-w); padding-top: var(--top-h); min-height: 100vh; transition: margin-left .22s ease; }
.mc-content { padding: 1.25rem; max-width: 1680px; margin: 0 auto; }
.mc-backdrop { display: none; }

/* Colapsado (escritorio): riel de iconos, el contenido crece */
@media (min-width: 992px) {
  body.sb-collapsed .mc-sidebar { width: var(--sb-wc); }
  body.sb-collapsed .mc-main { margin-left: var(--sb-wc); }
  body.sb-collapsed .mc-sidebar .mc-lbl, body.sb-collapsed .mc-sidebar .mc-caret, body.sb-collapsed .mc-sidebar .mc-mod-lbl { display: none; }
  body.sb-collapsed .mc-sidebar .mc-link { padding-left: .95rem; justify-content: flex-start; }
  body.sb-collapsed .mc-sidebar .mc-group-items { padding-left: 0; }
  body.sb-collapsed .mc-sidebar:hover { width: var(--sb-w); box-shadow: 8px 0 30px rgba(0,0,0,.25); }
  body.sb-collapsed .mc-sidebar:hover .mc-lbl, body.sb-collapsed .mc-sidebar:hover .mc-caret, body.sb-collapsed .mc-sidebar:hover .mc-mod-lbl { display: initial; }
  body.sb-collapsed .mc-sidebar:hover .mc-mod-lbl { display: block; }
  body.sb-collapsed .mc-sidebar:hover .mc-link { padding-left: 2.1rem; }
}
/* Móvil / tablet: menú deslizante */
@media (max-width: 991.98px) {
  .mc-sidebar { transform: translateX(-100%); width: min(86vw, 300px); }
  body.sb-open .mc-sidebar { transform: none; }
  body.sb-open .mc-backdrop { display: block; position: fixed; inset: var(--top-h) 0 0 0; background: rgba(0,0,0,.45); z-index: 1015; }
  .mc-main { margin-left: 0; }
  .mc-content { padding: .85rem; }
}

/* ---------------- Encabezados de página ---------------- */
.mc-page-head { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; margin-bottom: 1rem; }
.mc-page-head h1 { font-size: 1.35rem; font-weight: 700; margin: 0; display: flex; align-items: center; gap: .6rem; }
.mc-page-head h1 .mc-ph-ico { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: color-mix(in srgb, var(--mc-primary) 14%, transparent); color: var(--mc-primary); font-size: 1.2rem; }
.mc-page-head form { align-items: center; flex-wrap: wrap; }
.mc-page-head form .form-control, .mc-page-head form .form-select { width: auto; }
.mc-page-head .btn { white-space: nowrap; }
.mc-page-head .mc-desc { color: var(--mc-muted); font-size: .85rem; width: 100%; margin-top: -.4rem; }
.mc-toolbar { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; background: var(--mc-surface); border: 1px solid var(--mc-border); border-radius: var(--mc-radius); padding: .6rem; margin-bottom: 1rem; box-shadow: var(--mc-shadow); }
.mc-toolbar .mc-q { flex: 1 1 220px; min-width: 180px; }
.mc-toolbar .mc-filter { flex: 0 1 200px; min-width: 160px; }
.mc-toolbar input.mc-filter { flex: 0 1 165px; min-width: 140px; }
@media (max-width: 767.98px) { .mc-toolbar .mc-filter { flex: 1 1 45%; } }

/* ---------------- Tarjetas de registros (reemplazan tablas) ---------------- */
.mc-panel { background: var(--mc-surface); border: 1px solid var(--mc-border); border-radius: var(--mc-radius); box-shadow: var(--mc-shadow); }
.mc-panel-h { padding: .8rem 1rem; border-bottom: 1px solid var(--mc-border); display: flex; align-items: center; gap: .5rem; font-weight: 600; }
.mc-panel-b { padding: 1rem; }
.mc-rec { background: var(--mc-surface); border: 1px solid var(--mc-border); border-radius: var(--mc-radius); box-shadow: var(--mc-shadow); height: 100%; display: flex; flex-direction: column; transition: transform .12s, box-shadow .12s, border-color .12s; position: relative; overflow: hidden; }
.mc-rec:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(16,24,40,.09); border-color: color-mix(in srgb, var(--mc-primary) 35%, var(--mc-border)); }
.mc-rec-body { padding: .9rem 1rem; display: flex; gap: .85rem; flex: 1; cursor: pointer; }
.mc-rec-img { width: 52px; height: 52px; border-radius: 12px; object-fit: cover; flex-shrink: 0; background: var(--bs-tertiary-bg); }
.mc-rec-ico { width: 52px; height: 52px; border-radius: 12px; flex-shrink: 0; display: grid; place-items: center; font-size: 1.35rem; background: color-mix(in srgb, var(--mc-primary) 12%, transparent); color: var(--mc-primary); }
.mc-rec-title { font-weight: 650; line-height: 1.25; margin-bottom: .1rem; word-break: break-word; }
.mc-rec-sub { color: var(--mc-muted); font-size: .82rem; }
.mc-rec-meta { display: flex; flex-wrap: wrap; gap: .25rem .9rem; margin-top: .45rem; font-size: .8rem; color: var(--mc-muted); }
.mc-rec-meta b { color: var(--bs-body-color); font-weight: 600; }
.mc-rec-badges { display: flex; flex-wrap: wrap; gap: .3rem; margin-top: .45rem; }
.mc-rec-foot { display: flex; gap: .25rem; padding: .4rem .6rem; border-top: 1px solid var(--mc-border); background: color-mix(in srgb, var(--bs-tertiary-bg) 55%, transparent); flex-wrap: wrap; }
.mc-rec-foot .btn { --bs-btn-padding-y: .2rem; --bs-btn-padding-x: .5rem; --bs-btn-font-size: .8rem; }
.mc-rec-stripe { position: absolute; left: 0; top: 0; bottom: 0; width: 4px; }
.badge { font-weight: 600; letter-spacing: .01em; }
.mc-soft-primary { background: color-mix(in srgb, var(--mc-primary) 14%, transparent); color: var(--mc-primary); }
.mc-empty { text-align: center; padding: 3rem 1rem; color: var(--mc-muted); }
.mc-empty i { font-size: 3rem; opacity: .35; display: block; margin-bottom: .5rem; }

/* Lista de pares (detalle) */
.mc-kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: .9rem 1.2rem; }
.mc-kv .k { font-size: .7rem; text-transform: uppercase; letter-spacing: .05em; color: var(--mc-muted); }
.mc-kv .v { font-weight: 500; word-break: break-word; }
.mc-kv .full { grid-column: 1 / -1; }
.mc-rich { border-left: 3px solid var(--mc-border); padding-left: .8rem; }
.mc-detail-head { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; }
.mc-detail-img { width: 84px; height: 84px; border-radius: 18px; object-fit: cover; }
.mc-tabs { overflow-x: auto; flex-wrap: nowrap; white-space: nowrap; scrollbar-width: none; }
.mc-tabs .nav-link { color: var(--mc-muted); }
.mc-tabs .nav-link.active { color: var(--mc-primary); font-weight: 600; }

/* Mini filas de hijos (responsive, sin tablas) */
.mc-row { display: flex; flex-wrap: wrap; gap: .3rem 1rem; align-items: center; padding: .65rem .8rem; border: 1px solid var(--mc-border); border-radius: 12px; margin-bottom: .5rem; background: var(--mc-surface); }
.mc-row .mc-row-main { flex: 1 1 240px; min-width: 0; }
.mc-row .mc-row-act { display: flex; gap: .25rem; }

/* Galería */
.mc-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: .75rem; }
.mc-gal-item { border: 1px solid var(--mc-border); border-radius: 12px; overflow: hidden; background: var(--mc-surface); position: relative; }
.mc-gal-item img { width: 100%; height: 110px; object-fit: cover; display: block; cursor: zoom-in; }
.mc-gal-item .mc-gal-doc { height: 110px; display: grid; place-items: center; font-size: 2.4rem; color: var(--mc-muted); }
.mc-gal-item .mc-gal-cap { font-size: .75rem; padding: .35rem .5rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mc-gal-item .mc-gal-act { position: absolute; top: 4px; right: 4px; display: flex; gap: 3px; }
.mc-gal-item .mc-gal-act .btn { --bs-btn-padding-y: .1rem; --bs-btn-padding-x: .35rem; --bs-btn-font-size: .75rem; }

/* KPI / estadísticas */
.mc-stat { background: var(--mc-surface); border: 1px solid var(--mc-border); border-radius: var(--mc-radius); padding: 1rem; height: 100%; box-shadow: var(--mc-shadow); display: flex; gap: .8rem; align-items: flex-start; }
.mc-stat .ico { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; font-size: 1.25rem; flex-shrink: 0; }
.mc-stat .val { font-size: 1.55rem; font-weight: 750; line-height: 1.1; }
.mc-stat .lbl { color: var(--mc-muted); font-size: .8rem; }
.mc-stat .meta { font-size: .74rem; margin-top: .2rem; }
.mc-progress { height: 6px; border-radius: 6px; background: var(--bs-tertiary-bg); overflow: hidden; margin-top: .5rem; }
.mc-progress > span { display: block; height: 100%; border-radius: 6px; }
.ico-blue { background: #e0f2fe; color: #0369a1; } .ico-green { background: #dcfce7; color: #15803d; }
.ico-amber { background: #fef3c7; color: #b45309; } .ico-red { background: #fee2e2; color: #b91c1c; }
.ico-violet { background: #ede9fe; color: #6d28d9; } .ico-teal { background: #ccfbf1; color: #0f766e; }
[data-bs-theme=dark] .ico-blue { background: #0c2d44; } [data-bs-theme=dark] .ico-green { background: #0d2f1c; }
[data-bs-theme=dark] .ico-amber { background: #3a2a0a; } [data-bs-theme=dark] .ico-red { background: #3b1414; }
[data-bs-theme=dark] .ico-violet { background: #261a45; } [data-bs-theme=dark] .ico-teal { background: #0b302c; }

/* Tableros tipo kanban / camas / cola */
.mc-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1rem; }
.mc-col { background: color-mix(in srgb, var(--bs-tertiary-bg) 70%, transparent); border-radius: var(--mc-radius); padding: .75rem; min-height: 200px; }
.mc-col-h { font-weight: 650; display: flex; align-items: center; gap: .4rem; margin-bottom: .6rem; }
.mc-ticket { background: var(--mc-surface); border: 1px solid var(--mc-border); border-radius: 12px; padding: .7rem .8rem; margin-bottom: .55rem; border-left: 5px solid #94a3b8; }
.mc-beds { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: .7rem; }
.mc-bed { border-radius: 14px; padding: .75rem; border: 1px solid var(--mc-border); background: var(--mc-surface); cursor: pointer; position: relative; min-height: 112px; }
.mc-bed .code { font-weight: 750; font-size: 1.05rem; }
.mc-bed .st { font-size: .72rem; text-transform: uppercase; font-weight: 700; letter-spacing: .04em; }
.mc-bed i.big { position: absolute; right: .6rem; top: .5rem; font-size: 1.6rem; opacity: .35; }
.bed-Libre { border-color: #86efac; background: color-mix(in srgb, #22c55e 9%, var(--mc-surface)); } .bed-Libre .st { color: #15803d; }
.bed-Ocupada { border-color: #93c5fd; background: color-mix(in srgb, #3b82f6 10%, var(--mc-surface)); } .bed-Ocupada .st { color: #1d4ed8; }
.bed-Limpieza { border-color: #fcd34d; background: color-mix(in srgb, #f59e0b 10%, var(--mc-surface)); } .bed-Limpieza .st { color: #b45309; }
.bed-Mantenimiento { border-color: #fca5a5; background: color-mix(in srgb, #ef4444 9%, var(--mc-surface)); } .bed-Mantenimiento .st { color: #b91c1c; }
.bed-Reservada { border-color: #c4b5fd; background: color-mix(in srgb, #8b5cf6 9%, var(--mc-surface)); } .bed-Reservada .st { color: #6d28d9; }

/* Agenda */
.mc-agenda { display: grid; grid-template-columns: 70px 1fr; gap: 0; }
.mc-slot { display: flex; gap: .5rem; align-items: stretch; border-bottom: 1px dashed var(--mc-border); min-height: 46px; padding: .25rem 0; }
.mc-slot .h { width: 64px; flex-shrink: 0; font-size: .8rem; color: var(--mc-muted); padding-top: .35rem; font-variant-numeric: tabular-nums; }
.mc-slot .c { flex: 1; display: flex; flex-wrap: wrap; gap: .4rem; }
.mc-cita { border-radius: 10px; padding: .35rem .6rem; font-size: .82rem; cursor: pointer; border-left: 4px solid; background: var(--mc-surface); box-shadow: var(--mc-shadow); flex: 1 1 220px; }
.mc-slot-free { border: 1px dashed var(--mc-border); border-radius: 10px; color: var(--mc-muted); font-size: .8rem; padding: .35rem .6rem; cursor: pointer; flex: 1 1 140px; }
.mc-slot-free:hover { border-color: var(--mc-primary); color: var(--mc-primary); }

/* Timeline historia clínica */
.mc-tl { position: relative; padding-left: 1.6rem; }
.mc-tl::before { content: ""; position: absolute; left: .55rem; top: 0; bottom: 0; width: 2px; background: var(--mc-border); }
.mc-tl-item { position: relative; margin-bottom: 1rem; }
.mc-tl-item .dot { position: absolute; left: -1.45rem; top: .35rem; width: 1.1rem; height: 1.1rem; border-radius: 50%; border: 3px solid var(--mc-surface); box-shadow: 0 0 0 2px var(--mc-border); }

/* Asistente IA */
.mc-ai { --bs-offcanvas-width: min(460px, 100vw); }
.mc-ai-msgs { overflow-y: auto; }
.mc-msg { max-width: 92%; padding: .6rem .85rem; border-radius: 14px; margin-bottom: .6rem; white-space: pre-wrap; font-size: .9rem; line-height: 1.45; }
.mc-msg.u { margin-left: auto; background: var(--mc-primary); color: #fff; border-bottom-right-radius: 4px; }
.mc-msg.a { background: var(--bs-tertiary-bg); border-bottom-left-radius: 4px; }
.mc-ai-quick { display: flex; gap: .35rem; overflow-x: auto; padding-bottom: .5rem; }
.mc-ai-quick .btn { white-space: nowrap; }
#aiInput { resize: none; max-height: 140px; }

/* Formularios */
.modal-content { border-radius: 16px; border: 0; }
.modal-header { border-bottom: 1px solid var(--mc-border); }
.mc-form-sec { font-size: .72rem; font-weight: 700; color: var(--mc-primary); text-transform: uppercase; letter-spacing: .07em; border-bottom: 1px solid var(--mc-border); padding-bottom: .3rem; margin: .5rem 0 .2rem; }
.form-label { font-size: .8rem; font-weight: 600; margin-bottom: .25rem; color: var(--bs-secondary-color); }
.form-label .req { color: #dc2626; }
.mc-img-pick { display: flex; align-items: center; gap: .75rem; }
.mc-img-pick img { width: 72px; height: 72px; border-radius: 14px; object-fit: cover; border: 1px solid var(--mc-border); background: var(--bs-tertiary-bg); }
.select2-container--bootstrap-5 .select2-selection { min-height: calc(1.5em + .75rem + 2px); }
.select2-container { width: 100% !important; }
.s2-opt { display: flex; align-items: center; gap: .5rem; } .s2-opt img { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; }
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-selection, [data-bs-theme=dark] .select2-container--bootstrap-5 .select2-dropdown { background-color: var(--bs-body-bg); border-color: var(--mc-border); color: var(--bs-body-color); }
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-selection--single .select2-selection__rendered { color: var(--bs-body-color); }
[data-bs-theme=dark] .select2-container--bootstrap-5 .select2-dropdown .select2-results__options .select2-results__option.select2-results__option--highlighted { background: var(--mc-primary); color: #fff; }
[data-bs-theme=dark] .select2-search__field { background: var(--bs-tertiary-bg) !important; color: #fff !important; }
.tox-tinymce { border-radius: 10px !important; border-color: var(--mc-border) !important; }

/* Carga */
.mc-loading { display: flex; align-items: center; justify-content: center; padding: 4rem; color: var(--mc-muted); gap: .6rem; }
.mc-fab { position: fixed; right: 18px; bottom: 18px; width: 56px; height: 56px; border-radius: 50%; z-index: 1010; box-shadow: 0 8px 20px rgba(0,0,0,.25); display: none; }
@media (max-width: 767.98px) { .mc-fab { display: inline-flex; align-items: center; justify-content: center; } .mc-hide-sm { display: none !important; } }
.swal2-popup { border-radius: 16px !important; }
[data-bs-theme=dark] .swal2-popup { background: var(--mc-surface) !important; color: var(--bs-body-color) !important; }
.mc-alert-item { display: flex; gap: .6rem; padding: .65rem .7rem; border-radius: 12px; border: 1px solid var(--mc-border); margin-bottom: .5rem; text-decoration: none; color: inherit; background: var(--mc-surface); }
.mc-alert-item:hover { border-color: var(--mc-primary); }
.mc-chip { display: inline-flex; align-items: center; gap: .3rem; padding: .2rem .6rem; border-radius: 30px; background: var(--bs-tertiary-bg); font-size: .78rem; }
.mc-allergy { background: #fee2e2; color: #991b1b; border: 1px solid #fecaca; }
[data-bs-theme=dark] .mc-allergy { background: #3b1414; color: #fecaca; border-color: #7f1d1d; }
@media print { .mc-topbar, .mc-sidebar, .mc-toolbar, .mc-rec-foot, .btn { display: none !important; } .mc-main { margin: 0; padding: 0; } }

/* Botones claros en modo oscuro */
[data-bs-theme=dark] .btn-light { --bs-btn-bg: #1d2a37; --bs-btn-color: #dbe4ee; --bs-btn-border-color: #2b3b4b; --bs-btn-hover-bg: #26384a; --bs-btn-hover-color: #fff; --bs-btn-hover-border-color: #36506a; --bs-btn-active-bg: #2b4157; }
[data-bs-theme=dark] .text-bg-light { background-color: #26384a !important; color: #dbe4ee !important; }
[data-bs-theme=dark] .bg-body-tertiary { background-color: #1b2835 !important; }
.mc-rec-foot { flex-wrap: nowrap; }
