/* ============================================================
   MiClaro Fijo — Sistema visual
   Bootstrap 5.3 + tokens propios
   Versión producción (sin tweaks panel)
   Color primario: #e31d1a
   ============================================================ */

/* ---- Google Font: Hanken Grotesk ----
   Añadir en <head> ANTES de este CSS:
   <link href="https://fonts.googleapis.com/css2?family=Hanken+Grotesk:wght@400;500;600;700;800;900&display=swap" rel="stylesheet">
   ---- */

   :root{
    /* ---- Marca Claro ---- */
    --red:      #e31d1a;
    --red-600:  #C8120F;
    --red-700:  #A30D0B;
    --red-050:  #FDECEB;
  
    /* ---- Neutros ---- */
    --ink:      #15181C;
    --ink-2:    #3A4047;
    --muted:    #6B7280;
    --line:     #E6E8EC;
    --page:     #F4F5F7;
    --card:     #FFFFFF;
    --field:    #FFFFFF;
  
    /* ---- Forma ---- */
    --radius:      16px;
    --radius-sm:   10px;
    --radius-pill: 999px;
  
    /* ---- Sombras ---- */
    --shadow:    0 1px 2px rgba(20,24,28,.05), 0 10px 28px rgba(20,24,28,.07);
    --shadow-sm: 0 1px 2px rgba(20,24,28,.06), 0 4px 12px rgba(20,24,28,.05);
  
    /* ---- Header ---- */
    --header-bg:     var(--red);
    --header-fg:     #ffffff;
    --header-fg-dim: rgba(255,255,255,.78);
    --logo-fg:       #ffffff;
  
    /* ---- Tipografía ---- */
    --h-weight: 800;
  
    /* ---- Bootstrap overrides ---- */
    --bs-primary:          #e31d1a;
    --bs-primary-rgb:      227,29,26;
    --bs-body-color:       #15181C;
    --bs-body-bg:          #F4F5F7;
    --bs-border-color:     #E6E8EC;
    --bs-font-sans-serif:  "Hanken Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;
    --bs-link-color:       #C8120F;
    --bs-link-hover-color: #A30D0B;
    --bs-border-radius:    var(--radius-sm);
  }
  
  /* ============================================================ */
  *{ -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
  html,body{ background:var(--page); color:var(--ink); font-family:var(--bs-font-sans-serif); }
  body{ min-height:100vh; }
  ::selection{ background:var(--red); color:#fff; }
  
  h1,h2,h3,h4,h5,.fw-head{ font-weight:var(--h-weight); letter-spacing:-.015em; }
  .text-muted2{ color:var(--muted)!important; }
  .eyebrow{ font-size:.72rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--red); }
  a{ text-underline-offset:2px; }
  .fs-7{ font-size:.82rem; }
  .maxw{ max-width:1240px; }
  .divider-x{ height:1px; background:var(--line); }
  .hover-red:hover{ color:var(--red)!important; }
  .req{ color:var(--red); }
  
  /* ---- Logo MiClaro ---- */
  .mc-logo{ display:inline-flex; align-items:flex-start; gap:.04em;
    font-weight:800; font-size:1.55rem; line-height:1; letter-spacing:-.02em;
    color:var(--logo-fg); text-decoration:none; white-space:nowrap; }
  .mc-logo:hover{ color:var(--logo-fg); opacity:.9; }
  .mc-logo .mc-mi{ font-weight:500; opacity:.95; }
  .mc-logo .mc-claro{ font-weight:800; }
  .mc-logo .mc-tick{ width:.62em; height:.62em; margin-left:.05em; margin-top:-.12em; color:var(--logo-fg); flex:none; }
  .mc-logo.lg{ font-size:2.1rem; }
  
  /* ---- Topbar + mega menú ---- */
  .topbar{ background:var(--header-bg); color:var(--header-fg); position:sticky; top:0; z-index:1030; }
  .topbar .nav-link,.topbar .navbar-brand{ color:var(--header-fg); }
  .mega .nav-item > .nav-link{ color:var(--header-fg); font-weight:600; font-size:.95rem;
    padding:.5rem .85rem; border-radius:var(--radius-sm);
    display:inline-flex; align-items:center; gap:.3rem; cursor:pointer; }
  .mega .nav-item > .nav-link:hover,
  .mega .nav-item.open > .nav-link{ background:rgba(0,0,0,.10); }
  .mega .caret{ transition:transform .2s; font-size:.7em; }
  .mega .nav-item.open .caret{ transform:rotate(180deg); }
  
  .megapanel{ position:absolute; left:0; right:0; top:100%;
    background:#1C2128; color:rgba(255,255,255,.9); box-shadow:0 8px 32px rgba(0,0,0,.35);
    border-top:3px solid var(--red); display:none; z-index:1029; }
  .megapanel.show{ display:block; animation:megafade .18s ease; }
  @keyframes megafade{ from{ opacity:0; transform:translateY(-6px); } to{ opacity:1; transform:none; } }
  
  .megalink{ display:flex; align-items:center; gap:.7rem; padding:.7rem .9rem;
    border-radius:var(--radius-sm); color:rgba(255,255,255,.88); text-decoration:none;
    font-weight:600; transition:background .15s,color .15s; }
  .megalink:hover{ background:rgba(255,255,255,.08); color:#fff; }
  .megalink .mi{ width:38px; height:38px; border-radius:10px; flex:none;
    display:grid; place-items:center; background:rgba(255,255,255,.10); color:rgba(255,255,255,.8); }
  .megalink:hover .mi{ background:var(--red); color:#fff; }
  .megalink small{ display:block; font-weight:500; color:rgba(255,255,255,.45); font-size:.78rem; }
  
  /* ---- Botones ---- */
  .btn-claro{
    --bs-btn-bg:var(--red); --bs-btn-color:#fff;
    --bs-btn-hover-bg:var(--red-600); --bs-btn-hover-color:#fff;
    --bs-btn-active-bg:var(--red-700); --bs-btn-active-color:#fff;
    --bs-btn-border-color:var(--red); --bs-btn-hover-border-color:var(--red-600);
    --bs-btn-active-border-color:var(--red-700);
    --bs-btn-focus-shadow-rgb:227,29,26;
    font-weight:700; border-radius:var(--radius-sm); }
  .btn-claro-outline{
    --bs-btn-color:var(--red); --bs-btn-border-color:var(--red);
    --bs-btn-hover-bg:var(--red); --bs-btn-hover-color:#fff;
    --bs-btn-hover-border-color:var(--red);
    --bs-btn-active-bg:var(--red-700); --bs-btn-active-border-color:var(--red-700); --bs-btn-active-color:#fff;
    font-weight:700; border-radius:var(--radius-sm); }
  .btn-soft{ background:var(--red-050); color:var(--red); font-weight:700;
    border:1px solid transparent; border-radius:var(--radius-sm); }
  .btn-soft:hover{ background:var(--red); color:#fff; }
  .btn-lg{ --bs-btn-padding-y:.8rem; }
  
  /* ---- Formularios ---- */
  .form-control,.form-select{ border-radius:var(--radius-sm); border-color:var(--line);
    padding:.62rem .85rem; background-color:var(--field); font-weight:500; }
  .form-select{ padding-right:2.25rem; }
  .form-control:focus,.form-select:focus{ border-color:var(--red); box-shadow:0 0 0 .2rem rgba(227,29,26,.14); }
  .form-control::placeholder,.form-select::placeholder{ color:rgba(0,0,0,.28); font-weight:400; opacity:1; }
  .form-floating > label{ color:var(--muted); }
  .input-icon{ position:relative; }
  .input-icon .ic{ position:absolute; right:.85rem; top:50%; transform:translateY(-50%);
    color:var(--muted); pointer-events:none; }
  .input-icon .form-control{ padding-right:2.5rem; }
  /* Edge/Chrome inyectan su propio ícono nativo de "mostrar contraseña" sobre
     los input[type=password], que se superpone con nuestro botón data-toggle-pass. */
  input[type="password"]::-ms-reveal,
  input[type="password"]::-ms-clear{ display:none; }
  .form-label{ font-weight:600; font-size:.85rem; color:var(--ink-2); margin-bottom:.3rem; }
  .form-check-input:checked{ background-color:var(--red); border-color:var(--red); }
  .form-check-input:focus{ border-color:var(--red); box-shadow:0 0 0 .2rem rgba(227,29,26,.14); }

  /* ---- Encuesta de satisfacción (escala 1-10) ---- */
  .mc-rate-btn{ width:34px; height:34px; padding:0; display:flex; align-items:center; justify-content:center;
    border-radius:var(--radius-sm); font-weight:700; font-size:.85rem; color:var(--ink-2);
    border:1px solid var(--line); background:var(--field); }
  .mc-rate-btn:hover{ border-color:var(--red); color:var(--red); }
  .btn-check:checked + .mc-rate-btn{ background:var(--red); border-color:var(--red); color:#fff; }
  .btn-check:focus + .mc-rate-btn{ box-shadow:0 0 0 .2rem rgba(227,29,26,.14); }
  
  /* ---- Datepicker drill-down (Año → Mes → Día) ---- */
  .mc-dp{
    position:absolute; z-index:1200;
    background:var(--card); border:1px solid var(--line);
    border-radius:var(--radius); box-shadow:var(--shadow);
    width:272px; padding:14px; user-select:none;
  }
  .mc-dp-header{
    display:flex; align-items:center; justify-content:space-between;
    margin-bottom:12px; gap:4px;
  }
  .mc-dp-title{
    flex:1; text-align:center; font-weight:700; font-size:.88rem;
    color:var(--ink); cursor:pointer; padding:5px 8px;
    border-radius:var(--radius-sm); border:0; background:none;
    transition:background .12s, color .12s;
  }
  .mc-dp-title:hover{ background:var(--red-050); color:var(--red); }
  .mc-dp-title.no-click{ cursor:default; }
  .mc-dp-title.no-click:hover{ background:none; color:var(--ink); }
  .mc-dp-nav{
    border:0; background:none; color:var(--ink-2); cursor:pointer;
    width:32px; height:32px; border-radius:var(--radius-sm); flex-shrink:0;
    display:flex; align-items:center; justify-content:center;
    transition:background .12s, color .12s;
  }
  .mc-dp-nav:hover:not(:disabled){ background:var(--red-050); color:var(--red); }
  .mc-dp-nav:disabled{ opacity:.3; cursor:default; }
  /* Grids */
  .mc-dp-years{
    display:grid; grid-template-columns:repeat(4,1fr); gap:4px;
    max-height:220px; overflow-y:auto; scrollbar-width:thin;
    scrollbar-color:var(--line) transparent;
  }
  .mc-dp-months{ display:grid; grid-template-columns:repeat(3,1fr); gap:6px; }
  .mc-dp-dow{
    display:grid; grid-template-columns:repeat(7,1fr);
    text-align:center; font-size:.72rem; font-weight:700;
    color:var(--muted); margin-bottom:4px;
  }
  .mc-dp-days{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
  /* Celdas */
  .mc-dp-cell{
    border:0; background:none; border-radius:var(--radius-sm);
    padding:6px 2px; text-align:center; font-size:.82rem;
    cursor:pointer; font-weight:500; color:var(--ink); width:100%;
    transition:background .1s, color .1s;
  }
  .mc-dp-cell:hover:not(:disabled){ background:var(--red-050); color:var(--red); }
  .mc-dp-cell.sel{ background:var(--red); color:#fff; }
  .mc-dp-cell.sel:hover{ background:var(--red-600); color:#fff; }
  .mc-dp-cell.today{ box-shadow:inset 0 0 0 1.5px var(--red); color:var(--red); }
  .mc-dp-cell.today.sel{ color:#fff; box-shadow:none; }
  .mc-dp-cell:disabled{ color:var(--line); cursor:default; }
  
  /* Segmented control */
  .segment{ display:inline-flex; background:#EEF0F3; border-radius:var(--radius-pill); padding:4px; gap:2px; }
  .segment .seg{ border:0; background:transparent; padding:.45rem 1.1rem;
    border-radius:var(--radius-pill); font-weight:700; color:var(--ink-2);
    cursor:pointer; font-size:.9rem; transition:all .15s; white-space:nowrap; }
  .segment .seg.active{ background:#fff; color:var(--red); box-shadow:var(--shadow-sm); }
  
  /* ---- Cards ---- */
  .card-soft{ background:var(--card); border:1px solid transparent; border-radius:var(--radius); box-shadow:var(--shadow); }
  .card-flat{ background:var(--card); border:1px solid var(--line); border-radius:var(--radius); }
  .section-tag{ display:inline-flex; align-items:flex-end; gap:.5rem; font-weight:700; color:var(--ink); line-height:1; }
  .section-tag .dot{ width:1.5em; height:1.5em; background:url('../images/body/icons/IconoCut.png') center/contain no-repeat; border-radius:0; }
  .sec-title-white{ display:flex; align-items:flex-end; gap:.4rem; line-height:1; }
  .sec-title-white::before{ content:''; display:inline-block; width:1.5em; height:1.5em; flex-shrink:0;
    background:url('../images/body/icons/IconoCut.png') center/contain no-repeat;
    filter: brightness(0) invert(1); }
  
  /* ---- Login card ---- */
  .login-card{ background:var(--card); border-radius:var(--radius); box-shadow:var(--shadow); overflow:hidden; height:100%; }
  .login-head{ background:var(--red); color:#fff; padding:.75rem 1.4rem; }
  .login-link{ color:var(--muted); font-weight:600; font-size:.84rem; text-decoration:none; }
  .login-link:hover{ color:var(--red); }
  
  /* ---- Hero carrusel ---- */
  .hero-wrap{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); }
  .hero-slide{ position:relative; aspect-ratio:875/416; min-height:280px; max-height:500px; display:flex; align-items:center; color:#fff; padding:clamp(1.5rem,4vw,3.2rem); overflow:hidden; }
  .hero-slide img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
  .hero-slide > *:not(img){ position:relative; z-index:1; }
  .hero-slide.s1{ background:radial-gradient(120% 140% at 80% 10%, #FF5147 0%, #e31d1a 42%, #A30D0B 100%); }
  .hero-slide.s2{ background:radial-gradient(120% 140% at 10% 90%, #2B2F36 0%, #15181C 70%); }
  .hero-slide.s3{ background:linear-gradient(115deg,#A30D0B 0%, #e31d1a 60%, #FF6B5E 100%); }
  .hero-slide .badge-final{ background:#15181C; color:#fff; border-radius:14px; padding:.6rem 1rem; display:inline-flex; flex-direction:column; line-height:1; }
  .hero-slide .ph-strip{ display:flex; gap:.6rem; flex-wrap:wrap; }
  .hero-chip{ background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.25); border-radius:12px;
    padding:.7rem .9rem; backdrop-filter:blur(3px); display:flex; align-items:center; gap:.55rem; font-weight:600; font-size:.9rem; }
  .hero-chip .ph-ic{ width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.18);display:grid;place-items:center;flex:none; }
  .carousel-indicators [data-bs-target]{ width:9px;height:9px;border-radius:50%;border:0;opacity:.5; }
  .carousel-indicators .active{ opacity:1; background:#fff; }
  .carousel-control-prev,.carousel-control-next{ width:54px; }
  .carousel-control-prev-icon,.carousel-control-next-icon{ background-color:rgba(0,0,0,.35); border-radius:50%; background-size:55%; padding:14px; }
  
  /* ---- Info blocks ---- */
  .info-card{ background:var(--card); border-radius:var(--radius); overflow:hidden; color:var(--ink);
    box-shadow:var(--shadow); display:flex; flex-direction:column; height:100%; transition:transform .18s,box-shadow .18s; }
  .info-card:hover{ transform:translateY(-3px); box-shadow:0 6px 14px rgba(20,24,28,.08),0 26px 50px rgba(20,24,28,.10); }
  
  /* ---- Títulos de sección con ícono MiClaro ---- */
  .sec-title{ display:flex; align-items:flex-end; gap:.4rem; line-height:1; }
  .sec-title::before{ content:''; display:inline-block; width:1.5em; height:1.5em; flex-shrink:0;
    background:url('../images/body/icons/IconoCut.png') center/contain no-repeat; }
  .info-media{ height:190px; position:relative; overflow:hidden; display:grid; place-items:center; color:#fff; font-weight:700; }
  .info-media img{ width:100%; height:100%; object-fit:cover; display:block; }
  .info-media.m1{ background:linear-gradient(120deg,#2E7D32,#66BB6A); }
  .info-media.m2{ background:linear-gradient(120deg,#15181C,#3A4047); }
  .info-media.m3{ background:linear-gradient(120deg,#0277BD,#26C6DA); }
  .svc-item{ display:flex; gap:1rem; align-items:flex-start; color:var(--ink);
    border:1px solid var(--line); border-radius:var(--radius-sm); padding:1rem; height:100%; transition:box-shadow .18s,border-color .18s; }
  .svc-item:hover{ border-color:transparent; box-shadow:var(--shadow-sm); }
  .svc-icon{ width:48px; height:48px; min-width:48px; border-radius:var(--radius-sm); display:grid; place-items:center; color:#fff; font-size:1.3rem; }
  .svc-icon.m1{ background:linear-gradient(120deg,#2E7D32,#66BB6A); }
  .svc-icon.m2{ background:linear-gradient(120deg,#15181C,#3A4047); }
  .svc-icon.m3{ background:linear-gradient(120deg,#0277BD,#26C6DA); }
  .svc-text{ display:flex; flex-direction:column; }
  .svc-title{ font-weight:700; color:var(--ink); }
  .svc-desc{ color:var(--muted); font-size:.82rem; margin:.15rem 0 .4rem; }
  .svc-link{ color:var(--red); font-weight:700; font-size:.85rem; }
  .svc-item:hover .svc-link{ text-decoration:underline; }
  .ph-tag{ position:absolute; left:14px; top:14px; background:rgba(0,0,0,.28); border-radius:8px; padding:.2rem .5rem; font-size:.72rem; font-weight:600; letter-spacing:.04em; }
  .ph-img{ background:linear-gradient(135deg,rgba(0,0,0,.04) 25%,transparent 25%) -10px 0/20px 20px,
    linear-gradient(225deg,rgba(0,0,0,.04) 25%,transparent 25%) -10px 0/20px 20px, var(--line);
    display:grid; place-items:center; color:var(--muted); font-weight:600; }
  
  /* ---- Footer ---- */
  .site-footer{ background:#0F1114; color:#9aa1a9; }
  .site-footer a{ color:#cfd3d8; text-decoration:none; }
  .site-footer a:hover{ color:#fff; }
  .soc{ width:40px;height:40px;border-radius:50%; background:#1c2025; color:#cfd3d8; display:grid;place-items:center; transition:.15s; }
  .soc:hover{ background:var(--red); color:#fff; }
  .store-btn{ display:inline-flex; align-items:center; gap:.6rem; background:#15181C; color:#fff; border-radius:12px; padding:.55rem 1rem; text-decoration:none; font-weight:600; }
  .store-btn small{ display:block; font-size:.62rem; opacity:.7; font-weight:500; }
  .store-btn span{ white-space:nowrap; }
  .store-btn:hover{ color:#fff; background:#000; }
  
  /* ---- Badges ---- */
  .badge-soft{ background:var(--red-050); color:var(--red); font-weight:700; border-radius:var(--radius-pill); padding:.3rem .7rem; }
  .badge-ok{ background:#E7F6EC; color:#1B7A3D; }
  .badge-warn{ background:#FFF4E5; color:#9A5B00; }
  
  /* ---- KPI / tabla ---- */
  .kpi{ border-radius:var(--radius-sm); border:1px solid var(--line); padding:1.1rem 1.2rem; background:var(--card); }
  .kpi .v{ font-size:1.6rem; font-weight:800; letter-spacing:-.02em; }
  .table-clean th{ color:var(--muted); font-weight:600; font-size:.8rem; text-transform:uppercase; letter-spacing:.04em; }
  .table-clean td{ vertical-align:middle; }
  
  /* ---- Stepper ---- */
  .stepper{ display:flex; gap:0; }
  .stepper .st{ flex:1; text-align:center; position:relative; padding-top:34px; color:var(--muted); font-weight:600; font-size:.85rem; }
  .stepper .st::before{ content:attr(data-n); position:absolute; top:0; left:50%; transform:translateX(-50%);
    width:30px;height:30px;border-radius:50%; background:#fff; border:2px solid var(--line); color:var(--muted);
    display:grid;place-items:center; font-weight:700; z-index:2; }
  .stepper .st::after{ content:""; position:absolute; top:15px; left:-50%; width:100%; height:2px; background:var(--line); z-index:1; }
  .stepper .st:first-child::after{ display:none; }
  .stepper .st.active{ color:var(--red); }
  .stepper .st.active::before{ border-color:var(--red); color:var(--red); }
  .stepper .st.done::before{ content:"✓"; background:var(--red); border-color:var(--red); color:#fff; }
  .stepper .st.done{ color:var(--ink); }
  .stepper .st.done::after,.stepper .st.active::after{ background:var(--red); }
  
  /* ---- Modal global dinámico ---- */
  #mcModalHeader{ color:#fff; border-radius:var(--bs-modal-inner-border-radius) var(--bs-modal-inner-border-radius) 0 0; }
  
  /* ---- Panel de contenido (dashboard) ---- */
  .panel-head{ display:flex; align-items:center; justify-content:space-between; gap:.75rem; padding:1rem 1.25rem; border-bottom:1px solid var(--line); }
  .panel-head .crumb{ display:flex; align-items:flex-end; gap:.55rem; font-weight:700; min-width:0; flex-wrap:wrap; line-height:1; }
  .panel-head .crumb .br{ width:1.5em;height:1.5em;flex:none; }
  .panel-head .crumb .sep{ color:var(--muted); font-weight:500; }
  .panel-head .crumb .cur{ color:var(--ink); }
  .panel-head .back{ color:var(--red); font-weight:700; font-size:.85rem; text-decoration:none; white-space:nowrap; display:inline-flex; align-items:center; gap:.25rem; }
  .panel-head .back:hover{ color:var(--red-700); }
  .panel-body{ padding:1.25rem 1.25rem 1.5rem; }
  
  /* Card dashboard: scroll interno en el listado */
  #dash-content{
    max-height:60vh;
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:thin;
    scrollbar-color:var(--red-050) transparent;
  }
  #dash-content::-webkit-scrollbar{ width:5px; }
  #dash-content::-webkit-scrollbar-track{ background:transparent; }
  #dash-content::-webkit-scrollbar-thumb{ background:var(--red-050); border-radius:4px; }
  
  /* Promo lateral persistente */
  .promo-card{ border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow);
    background:linear-gradient(160deg,#e31d1a 0%,#A30D0B 100%); color:#fff; }
  .promo-card .pc-body{ padding:1.5rem 1.4rem; }
  .promo-card h5{ font-weight:800; line-height:1.15; }
  .promo-card .store-btn{ background:#0d0f12; }
  .promo-card .pc-art{ height:150px; display:grid; place-items:center; background:rgba(0,0,0,.12); }
  .promo-card .pc-art i{ font-size:4rem; opacity:.9; }
  
  /* ---- Listado de sucursales ---- */
  .suc-item{ display:flex; align-items:center; gap:1rem; padding:1rem 1.1rem;
    border:1px solid var(--line); border-radius:var(--radius-sm); background:var(--card);
    cursor:pointer; transition:border-color .15s,box-shadow .15s,transform .12s; text-decoration:none; color:inherit; }
  .suc-item:hover{ border-color:var(--red); box-shadow:var(--shadow-sm); transform:translateY(-1px); color:inherit; }
  .suc-item .suc-ic{ width:42px;height:42px;border-radius:11px; flex:none; display:grid; place-items:center; background:var(--red-050); color:var(--red); font-size:1.2rem; }
  .suc-item .suc-name{ font-weight:800; letter-spacing:-.01em; }
  .suc-item .suc-addr{ color:var(--muted); font-size:.82rem; }
  .svc-icons{ display:flex; gap:.45rem; margin-left:auto; flex:none; }
  .svc{ width:38px;height:38px;border-radius:10px; display:grid; place-items:center; border:1px solid var(--line); color:#C2C6CC; font-size:1.05rem; background:#fff; }
  .svc.on{ color:var(--red); border-color:var(--red); background:var(--red-050); }
  
  /* ---- Tiles de servicios ---- */
  .svc-tile{ border:1.5px solid var(--line); border-radius:var(--radius-sm); padding:1rem .5rem;
    text-align:center; cursor:pointer; font-weight:700; color:var(--ink-2); background:var(--card); transition:.15s; height:100%; }
  .svc-tile i{ font-size:1.7rem; display:block; margin-bottom:.4rem; color:var(--muted); }
  .svc-tile:hover{ border-color:var(--red); }
  .svc-tile.active{ border-color:var(--red); background:var(--red); color:#fff; box-shadow:var(--shadow-sm); }
  .svc-tile.active i{ color:#fff; }
  .contrata-card{ border:1px dashed var(--line); border-radius:var(--radius-sm); padding:2rem 1.5rem; text-align:center; background:#FAFBFC; }
  .contrata-card .q{ width:54px;height:54px;border-radius:50%; display:grid;place-items:center; margin:0 auto .8rem; background:#fff; border:1px solid var(--line); color:var(--muted); font-size:1.4rem; }
  
  /* ---- Dashboard hero ---- */
  .dash-hero{ background:linear-gradient(102deg,#e31d1a,#A30D0B); color:#fff; border-radius:var(--radius); box-shadow:var(--shadow); }
  .stat{ background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); border-radius:var(--radius-sm); padding:.9rem 1.1rem; }
  
  /* ---- Animaciones de transición ---- */
  .flash{ animation:flash .5s ease; }
  @keyframes flash{ 0%{ box-shadow:0 0 0 0 rgba(227,29,26,.45); } 100%{ box-shadow:var(--shadow); } }

  /* ---- Botones de acción de servicio (sección Datos del cliente) ---- */
  .svc-btn {
    display: flex; flex-direction: column; align-items: center; justify-content: flex-start;
    text-align: center; background: #fff; border: 1px solid var(--line);
    border-radius: var(--radius-sm); padding: .55rem .4rem .5rem;
    text-decoration: none !important; color: var(--dark) !important;
    min-width: 68px; flex: 1; font-size: .68rem; line-height: 1.2;
    transition: border-color .15s, box-shadow .15s; cursor: pointer;
  }
  .svc-btn:hover { border-color: var(--red); box-shadow: 0 2px 6px rgba(0,0,0,.08); color: var(--dark) !important; }
  .svc-btn img { width: 26px; height: 26px; object-fit: contain; margin-bottom: .28rem; }

  /* ---- Validación: quitar icono ✓/✗ de BS5, conservar border-color ---- */
  .form-control.is-valid,
  .was-validated .form-control:valid {
    background-image: none;
    padding-right: 0.75rem;
  }
  .form-control.is-invalid,
  .was-validated .form-control:invalid {
    background-image: none;
    padding-right: 0.75rem;
  }

/* ── Overlay de carga global AJAX ──────────────────────────── */
#mc-ajax-loading {
  position: fixed;
  inset: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10002;
  background: rgba(255,255,255,0.6);
}
.loading-gif-img-miclaro {
  width: 80px;
  height: 80px;
}
