﻿/* --- Patch 1 --- */
    .sidebar{overflow-y:auto!important;scrollbar-width:thin}
    .sidebar::-webkit-scrollbar{width:6px}
    .sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:3px}
    .sidebar::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.32)}
    .card,.stat-card,.login-card{box-shadow:0 8px 24px rgba(66,71,84,.08);border-color:var(--border)}
    .btn-primary,.submit-btn{background:var(--grad1)!important;box-shadow:0 8px 20px rgba(66,71,84,.18)!important}
    .nav-item.active{background:rgba(66,71,84,.1)!important;color:var(--graphite)!important}
    .garage-week-shell{border:1px solid var(--border2);border-radius:12px;overflow:hidden;background:var(--surface);box-shadow:0 8px 24px rgba(66,71,84,.08)}
    .garage-week-toolbar{display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--border);background:var(--warm)}
    .garage-week-title{font-size:22px;font-weight:900;color:var(--text)}
    .garage-week-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .garage-week-actions button,.garage-week-actions select{height:38px;border:1px solid var(--border2);border-radius:7px;background:var(--surface);color:var(--text);font-weight:700;padding:0 12px;cursor:pointer}
    .garage-week-actions .primary{background:#3f9eb3;color:#fff;border-color:#3f9eb3}
    .garage-grid{display:grid;grid-template-columns:68px repeat(7,minmax(135px,1fr));overflow:auto}
    .garage-head,.garage-time{background:var(--warm);border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:7px 8px;font-size:12px;color:var(--muted);text-align:center}
    .garage-time{min-height:54px;display:flex;align-items:center;justify-content:center}
    .garage-cell{min-height:54px;border-bottom:1px solid var(--border);border-right:1px solid var(--border);background:#fffdf8;position:relative;padding:4px}
    .garage-cell.today{background:rgba(216,210,198,.42)}
    .garage-event{border-radius:5px;padding:3px 6px;margin-bottom:3px;color:#fff;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer}
    .garage-event.occ{background:#65745f}
    .garage-event.block{background:#3f9eb3}
    .garage-event.full{background:#b9836a}
    .guest-request-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
    @media (max-width: 980px){
      .layout{display:block!important}
      .sidebar{position:fixed;left:-280px;top:0;bottom:0;z-index:90;transition:left .2s;width:270px}
      .sidebar.open{left:0}
      .main{margin-left:0!important;padding:1rem!important}
      .stats-grid,#dash-kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important}
      .row2,.guest-request-grid{grid-template-columns:1fr!important}
      .garage-grid{grid-template-columns:58px repeat(7,130px)}
    }
    @media (max-width: 620px){
      .main{padding:.75rem!important}
      .card{padding:1rem!important}
      .stats-grid,#dash-kpis{grid-template-columns:1fr!important}
      .page-title{font-size:22px!important}
      .garage-week-toolbar{align-items:flex-start;flex-direction:column}
      .garage-grid{grid-template-columns:52px repeat(7,118px)}
      .garage-week-title{font-size:19px}
      canvas{max-height:210px!important}
    }

/* --- Patch 2 --- */
    body{background:var(--bg)!important;color:var(--text)!important}
    .sidebar{background:linear-gradient(180deg,#111827 0%,#1e293b 100%)!important;color:#fff!important;border-right:0!important}
    .logo-text,.sidebar .nav-section{color:#fff!important}
    .sidebar .accent{color:#38bdf8!important}
    .nav-section{color:#93c5fd!important}
    .nav-item{color:rgba(226,232,240,.84)!important;font-weight:650!important;letter-spacing:.01em!important}
    .nav-item.active{font-weight:700!important}
    .nav-item svg{stroke:currentColor!important}
    .nav-item:hover{background:rgba(37,99,235,.22)!important;color:#fff!important;transform:translateX(2px)}
    .nav-item.active{background:#fff!important;color:#1d4ed8!important;box-shadow:0 10px 24px rgba(0,0,0,.18)!important}
    .nav-item.active::before{background:#38bdf8!important;width:4px!important}
    .sidebar-bottom{border-top-color:rgba(255,255,255,.14)!important}
    .user-chip{background:rgba(255,255,255,.08)!important;border-color:rgba(255,255,255,.12)!important}
    .user-name,.user-role{color:#fff!important}
    .card,.stat-card,.login-card{background:var(--surface)!important;border:1px solid var(--border)!important;box-shadow:var(--shadow-md)!important}
    .page-title{color:var(--ink)!important}
    .page-sub,.label,.stat-label{color:#64748b!important}
    input,select,textarea{background:#fff!important;border-color:rgba(15,23,42,.16)!important;color:#111827!important}
    input:focus,select:focus,textarea:focus{border-color:#2563eb!important;box-shadow:0 0 0 3px rgba(37,99,235,.16)!important}
    .btn-primary,.submit-btn,.export-btn{background:var(--grad1)!important;color:#fff!important;border:0!important;box-shadow:var(--shadow-accent)!important}
    .page-tab.active,.login-tab.active{background:var(--grad1)!important;color:#fff!important}
    .page-tab,.login-tab{background:var(--surface2)!important;color:#334155!important}
    .filter-btn.active{background:#2563eb!important;color:#fff!important}
    .stat-card.blue .stat-num{color:#2563eb!important}
    .stat-card.green .stat-num{color:#16a34a!important}
    .stat-card.warn .stat-num{color:#f59e0b!important}
    .stat-card.purple .stat-num{color:#5b21b6!important}
    .garage-week-shell{background:#fff!important;border-color:rgba(15,23,42,.12)!important}
    .garage-week-toolbar,.garage-head,.garage-time{background:#f1f5f9!important;color:#334155!important}
    .garage-cell{background:#fff!important}
    .garage-cell.today{background:rgba(37,99,235,.08)!important}
    .garage-event.occ{background:#2563eb!important}
    .garage-event.block{background:#64748b!important}
    .garage-event.full{background:#ef4444!important}
    .toast{background:#111827!important;color:#fff!important}

/* --- Patch 3 --- */
*{max-width:100%}
    img,iframe,canvas,video{max-width:100%}
    #chart-semana,#chart-estado,#chart-sw,#chart-hotel,#chart-tareas-dept,#chart-caja-semana{
      display:block!important;width:100%!important;max-height:260px!important;min-height:0!important;aspect-ratio:auto!important;
    }
    #chart-estado{max-height:230px!important}
    #chart-semana{max-height:220px!important}
    .main{width:100%;min-width:0}
    .page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}
    .stats-grid,#dash-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))!important;gap:12px!important}
    .row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))!important;gap:12px!important}
    .toolbar,.page-tabs{display:flex;flex-wrap:wrap;gap:8px}
    .page-tab{min-width:max-content}
    .sw-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}
    #cal-grid,#cal-plazas-grid,#park-grid,#turnos-grid,#np-stock-hoteles{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}
    #manual-list,#prov-lista,#ped-lista,#inc-list,#tareas-list,#stock-inventario-list,#stock-movimientos-list,#stock-alertas-list,#empleados-list,#mant-revisiones-list,#mant-equipos-list,#admin-users-list{min-width:0}
    table{display:block;overflow-x:auto;white-space:nowrap}
    input,select,textarea,button{font-size:16px}
    .garage-week-shell{overflow:hidden}
    .garage-grid{overflow-x:auto;grid-auto-flow:row}
    .guest-request-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))!important}
    #page-manuales > div[style*="grid-template-columns"]{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))!important}
    @media (max-width: 1100px){
      .layout{display:block!important}
      .sidebar{position:fixed!important;left:-290px;top:0;bottom:0;width:280px;z-index:100;transition:left .22s ease;overflow-y:auto}
      .sidebar.open{left:0}
      .overlay.show{display:block!important;position:fixed;inset:0;background:rgba(32,36,44,.35);z-index:80}
      .main{padding:1rem!important;margin:0!important}
      .menu-toggle{display:flex!important}
      .card{border-radius:12px!important}
    }
    @media (max-width: 760px){
      body{font-size:14px}
      .main{padding:.75rem!important}
      .page-title{font-size:22px!important;line-height:1.1}
      .page-sub{font-size:12px!important}
      .card{padding:1rem!important;margin-bottom:.85rem!important}
      .stats-grid,#dash-kpis{grid-template-columns:1fr 1fr!important;gap:8px!important}
      .stat-card{padding:.9rem!important}
      .stat-num{font-size:22px!important}
      .row2,.guest-request-grid{grid-template-columns:1fr!important}
      .toolbar{flex-direction:column;align-items:stretch}
      .page-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
      .page-tab{flex:0 0 auto}
      .garage-week-toolbar{flex-direction:column;align-items:stretch}
      .garage-week-actions{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}
      .garage-week-actions select{grid-column:1/-1}
      .garage-grid{grid-template-columns:82px repeat(7,150px)!important}
      #chart-semana,#chart-estado,#chart-sw,#chart-hotel,#chart-tareas-dept,#chart-caja-semana{height:190px!important;max-height:190px!important}
    }
    @media (max-width: 440px){
      .stats-grid,#dash-kpis{grid-template-columns:1fr!important}
      .main{padding:.55rem!important}
      .card{padding:.85rem!important}
      .page-title{font-size:20px!important}
      input,select,textarea,.submit-btn,.btn-primary{width:100%!important}
      .garage-grid{grid-template-columns:74px repeat(7,132px)!important}
    }

/* --- Patch 4 --- */
:root{
      --bg:#f7f8fb;
      --surface:#ffffff;
      --surface2:#f4f6fa;
      --surface3:#edf1f7;
      --border:#e7ebf1;
      --border2:#dce2eb;
      --text:#2d4052;
      --text2:#425466;
      --muted:#718096;
      --accent:#5b7def;
      --accent2:#4f6ee8;
      --accent3:#00b8a9;
      --accent-soft:rgba(91,125,239,.10);
      --accent-glow:rgba(91,125,239,.16);
      --success:#00b894;
      --warn:#ffa502;
      --danger:#ff3366;
      --purple:#5967d8;
      --grad1:#c4b5fd;
      --grad2:#c4b5fd;
      --font-display:'Aptos Display','Segoe UI Variable Display','Segoe UI',system-ui,sans-serif;
      --font-body:'Aptos','Segoe UI Variable Text','Segoe UI',system-ui,sans-serif;
      --font-mono:'Barlow','Segoe UI',system-ui,sans-serif;
      --shadow-sm:none;
      --shadow-md:none;
      --shadow-lg:0 10px 24px rgba(31,45,61,.06);
      --shadow-accent:0 8px 18px rgba(91,125,239,.22);
    }
    body{background:var(--bg)!important;color:var(--text)!important;font-size:14px!important;line-height:1.45!important;-webkit-font-smoothing:antialiased!important;text-rendering:geometricPrecision!important}
    .layout{background:var(--bg)!important}
    .sidebar{
      width:250px!important;
      background:#fff!important;
      border-right:1px solid var(--border)!important;
      box-shadow:none!important;
      padding:1.1rem .55rem!important;
      color:var(--text)!important;
    }
    .sidebar-logo{padding:.15rem 1rem 1rem!important;margin-bottom:.4rem!important}
    .logo-text{
      color:#00b8a9!important;
      font-family:var(--font-display)!important;
      font-size:26px!important;
      font-weight:800!important;
      letter-spacing:.02em!important;
    }
    .logo-text .accent{color:#00b8a9!important}
    .nav-section{
      color:#9aa8b7!important;
      font-size:10px!important;
      font-weight:800!important;
      margin:.7rem 1rem .5rem!important;
      letter-spacing:.13em!important;
    }
    .nav-item{
      color:#475569!important;
      font-size:13.5px!important;
      font-weight:650!important;
      letter-spacing:-0.01em!important;
      padding:10px 16px!important;
      margin:0 0 2px!important;
      border-radius:8px!important;
      gap:12px!important;
      box-shadow:none!important;
      transform:none!important;
      transition:background .13s,color .13s!important;
    }
    .nav-item svg{width:17px!important;height:17px!important;stroke:currentColor!important;flex-shrink:0!important}
    .nav-item:hover{
      background:#eef2ff!important;
      color:#3730a3!important;
      transform:none!important;
    }
    .nav-item.active{
      background:#c4b5fd!important;
      color:#fff!important;
      font-weight:750!important;
      box-shadow:0 4px 14px rgba(124,58,237,.28)!important;
    }
    .nav-item.active svg{stroke:#fff!important}
    .nav-item.active::before{display:none!important}
    .sidebar-bottom{border-top:1px solid var(--border)!important;padding-top:.8rem!important}
    .user-chip{
      background:#f6f8fb!important;
      border:1px solid var(--border)!important;
      border-radius:5px!important;
      color:var(--text)!important;
    }
    .user-name{color:var(--text)!important;font-weight:700!important}
    .user-role{color:var(--muted)!important}
    .main{
      margin-left:250px!important;
      padding:24px 30px!important;
      background:var(--bg)!important;
    }
    .page-header{margin-bottom:18px!important}
    .page-title{
      font-family:var(--font-body)!important;
      font-size:22px!important;
      font-weight:700!important;
      color:var(--text)!important;
      letter-spacing:0!important;
    }
    .page-sub{color:var(--muted)!important;font-size:13px!important}
    .card,.stat-card,.login-card{
      background:#fff!important;
      border:1px solid var(--border)!important;
      border-radius:4px!important;
      box-shadow:none!important;
    }
    .card{padding:1.25rem!important;margin-bottom:16px!important}
    .stat-card{padding:1.25rem 1.45rem!important}
    .stat-num{
      font-family:var(--font-body)!important;
      font-weight:800!important;
      font-size:24px!important;
    }
    .stat-card.blue .stat-num{color:#00b894!important}
    .stat-card.warn .stat-num{color:#ff3366!important}
    .stat-card.green .stat-num{color:#00b894!important}
    .stat-card.purple .stat-num{color:#ffa502!important}
    .label,.stat-label{
      color:#425466!important;
      font-size:13px!important;
      font-weight:700!important;
      letter-spacing:0!important;
      text-transform:none!important;
    }
    .page-tabs{
      background:#fff!important;
      border:1px solid var(--border)!important;
      border-radius:4px!important;
      padding:4px!important;
      box-shadow:none!important;
    }
    .page-tab,.login-tab{
      background:transparent!important;
      color:#64748b!important;
      border-radius:4px!important;
      font-weight:600!important;
    }
    .page-tab.active,.login-tab.active{
      background:#5b7def!important;
      color:#fff!important;
      box-shadow:none!important;
    }
    .filter-btn,.export-btn{
      border:1px solid var(--border2)!important;
      background:#fff!important;
      color:#425466!important;
      border-radius:4px!important;
      box-shadow:none!important;
      font-weight:600!important;
    }
    .filter-btn.active,.export-btn:hover{
      background:#5b7def!important;
      border-color:#5b7def!important;
      color:#fff!important;
    }
    .btn-primary,.submit-btn,.save-btn{
      background:#5b7def!important;
      color:#fff!important;
      border-radius:4px!important;
      box-shadow:none!important;
      font-family:var(--font-body)!important;
      font-weight:700!important;
    }
    input,select,textarea{
      background:#fff!important;
      border:1px solid var(--border2)!important;
      border-radius:4px!important;
      color:var(--text)!important;
      box-shadow:none!important;
    }
    input:focus,select:focus,textarea:focus{
      border-color:#5b7def!important;
      box-shadow:0 0 0 3px rgba(91,125,239,.13)!important;
    }
    .sw-btn,.prio-btn{
      border-radius:4px!important;
      box-shadow:none!important;
      background:#fff!important;
      border:1px solid var(--border)!important;
    }
    .sw-btn:hover,.sw-btn.active,.prio-btn:hover{
      border-color:#5b7def!important;
      background:#f5f7ff!important;
      transform:none!important;
    }
    #tasks-overview-card{
      padding:0!important;
      overflow:hidden!important;
    }
    #tasks-overview-card > div:first-child{
      padding:14px 16px!important;
      border-bottom:1px solid var(--border)!important;
      color:#425466!important;
    }
    #tasks-overview-card > div:nth-child(2){padding:0 18px!important}
    #tasks-overview-card > div:last-child{margin:0 22px 24px!important}
    .toast{
      background:#2d4052!important;
      color:#fff!important;
      border-radius:4px!important;
    }
    @media (max-width:1100px){
      .main{margin-left:0!important;padding:16px!important}
      .sidebar{width:270px!important}
    }

/* --- Patch 5 --- */
button,
    .btn-primary,
    .submit-btn,
    .save-btn,
    .filter-btn,
    .export-btn,
    .page-tab,
    .login-tab,
    .nav-item,
    .sw-btn,
    .prio-btn,
    .captcha-refresh,
    [role="button"]{
      border-radius:12px!important;
    }
    .nav-item{border-radius:10px!important}
    .page-tabs,.login-tabs{border-radius:14px!important}
    .page-tab,.login-tab{border-radius:10px!important}
    .filter-btn,.export-btn{border-radius:999px!important}
    .btn-primary,.submit-btn,.save-btn{border-radius:12px!important}
    button[style*="border-radius"]{border-radius:12px!important}

/* --- Patch 6 --- */
.sw-grid{gap:12px!important}
    .sw-btn{
      position:relative!important;
      overflow:hidden!important;
      min-height:82px!important;
      padding:16px 16px 14px!important;
      background:linear-gradient(135deg,rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.10),#fff)!important;
      border:1.5px solid rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.35)!important;
      box-shadow:0 8px 18px rgba(15,23,42,.04)!important;
    }
    .sw-btn::before{
      content:'';position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--sw-color,#5b7def);opacity:.9;
    }
    .sw-btn:hover{
      border-color:var(--sw-color,#5b7def)!important;
      background:linear-gradient(135deg,rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.16),#fff)!important;
      transform:translateY(-1px)!important;
    }
    .sw-btn.active{
      border-color:var(--sw-color,#5b7def)!important;
      background:linear-gradient(135deg,rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.18),#fff)!important;
      box-shadow:0 0 0 3px rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.18)!important;
    }
    .sw-dot{
      width:11px!important;height:11px!important;background:var(--sw-color,#5b7def)!important;
      box-shadow:0 0 0 5px rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.14)!important;
      margin-left:2px!important;
    }
    .sw-name{font-size:14px!important;font-weight:850!important;color:#172033!important;margin-top:12px!important;letter-spacing:.01em!important}
    .sw-sub{font-size:11px!important;color:var(--sw-color,#5b7def)!important;font-weight:700!important}
    .sw-btn[data-sw="Roomatik"]  {--sw-color:#2d5be3;--sw-r:45;--sw-g:91;--sw-b:227}
    .sw-btn[data-sw="SoulSuite"] {--sw-color:#c4b5fd;--sw-r:124;--sw-g:58;--sw-b:237}
    .sw-btn[data-sw="Reveniew"]  {--sw-color:#00a86b;--sw-r:0;--sw-g:168;--sw-b:107}
    .sw-btn[data-sw="Canary"]    {--sw-color:#f59e0b;--sw-r:245;--sw-g:158;--sw-b:11}
    .sw-btn[data-sw="Call Center"]{--sw-color:#e03050;--sw-r:224;--sw-g:48;--sw-b:80}
    .sw-btn[data-sw="Padlock"]   {--sw-color:#0891b2;--sw-r:8;--sw-g:145;--sw-b:178}

/* --- Patch 7 --- */
input,select,textarea{
      border-radius:12px!important;
    }
    textarea{border-radius:14px!important}
    .task-check{
      appearance:none!important;
      -webkit-appearance:none!important;
      width:18px!important;
      height:18px!important;
      margin:0 12px 0 0!important;
      border:1.5px solid #cfd7e3!important;
      border-radius:6px!important;
      background:#fff!important;
      vertical-align:middle!important;
      display:inline-grid!important;
      place-content:center!important;
      cursor:pointer!important;
    }
    .task-check:checked{
      background:#5b7def!important;
      border-color:#5b7def!important;
    }
    .task-check:checked::after{
      content:'';
      width:8px;
      height:4px;
      border-left:2px solid #fff;
      border-bottom:2px solid #fff;
      transform:rotate(-45deg);
      margin-top:-1px;
    }
    .task-id-pill{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-width:46px;
      padding:3px 9px;
      border-radius:999px;
      background:#f1f5f9;
      color:#425466;
      font-weight:700;
      font-size:12px;
    }

/* --- Patch 8 --- */
#page-incidencias .sw-btn{
      min-height:80px!important;
      padding:15px 16px!important;
      background:#fff!important;
      border:1px solid #dce4ef!important;
      box-shadow:0 1px 2px rgba(15,23,42,.04)!important;
      position:relative!important;
      overflow:hidden!important;
    }
    #page-incidencias .sw-btn::before{
      content:''!important;
      position:absolute!important;
      left:14px!important;
      right:14px!important;
      top:0!important;
      width:auto!important;
      height:3px!important;
      border-radius:0 0 999px 999px!important;
      background:var(--sw-color,#5b7def)!important;
      opacity:.75!important;
    }
    #page-incidencias .sw-btn:hover{
      background:#f8fbff!important;
      border-color:#b9c8dc!important;
      box-shadow:0 8px 18px rgba(15,23,42,.07)!important;
      transform:translateY(-1px)!important;
    }
    #page-incidencias .sw-btn.active{
      background:#fff!important;
      border-color:#5b7def!important;
      box-shadow:0 0 0 3px rgba(91,125,239,.12),0 8px 20px rgba(15,23,42,.07)!important;
    }
    #page-incidencias .sw-dot{
      width:42px!important;
      height:42px!important;
      border-radius:12px!important;
      background:rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.12)!important;
      border:1px solid rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.28)!important;
      box-shadow:none!important;
      margin:0 0 10px!important;
      display:flex!important;
      align-items:center!important;
      justify-content:center!important;
      color:var(--sw-color,#5b7def)!important;
    }
    #page-incidencias .sw-dot svg{stroke:var(--sw-color,#5b7def)!important}
    #page-incidencias .sw-dot::after{
      display:none!important;
      content:''!important;
      width:0!important;
      height:0!important;
    }
    #page-incidencias .sw-name{
      margin-top:0!important;
      color:#172033!important;
      font-size:13px!important;
      font-weight:800!important;
      letter-spacing:0!important;
    }
    #page-incidencias .sw-sub{
      color:#6b7890!important;
      font-size:11px!important;
      font-weight:600!important;
    }
    #submit-btn{
      width:auto!important;
      min-width:260px!important;
      max-width:340px!important;
      padding-left:28px!important;
      padding-right:28px!important;
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      margin:1.35rem auto 0!important;
    }

/* --- Patch 9 --- */
.recaptcha-box{
      width:300px;
      max-width:100%;
      height:74px;
      border:1px solid #d8d8d8;
      background:#fafafa;
      border-radius:2px!important;
      display:flex;
      align-items:center;
      justify-content:space-between;
      padding:0 12px;
      margin:12px auto;
      box-shadow:0 1px 2px rgba(0,0,0,.08);
      color:#1f2933;
      user-select:none;
    }
    .recaptcha-left{display:flex;align-items:center;gap:12px}
    .recaptcha-check{
      appearance:none!important;
      -webkit-appearance:none!important;
      width:28px!important;
      height:28px!important;
      min-width:28px!important;
      border:2px solid #555!important;
      border-radius:0!important;
      background:#fff!important;
      display:grid!important;
      place-content:center!important;
      cursor:pointer!important;
      margin:0!important;
      box-shadow:none!important;
      padding:0!important;
    }
    .recaptcha-check:checked{
      border-color:#2f7d32!important;
      background:#fff!important;
    }
    .recaptcha-check:checked::after{
      content:'';
      width:16px;
      height:8px;
      border-left:3px solid #2f7d32;
      border-bottom:3px solid #2f7d32;
      transform:rotate(-45deg);
      margin-top:-3px;
    }
    .recaptcha-text{font-size:14px;color:#202124;font-weight:400;white-space:nowrap}
    .recaptcha-brand{width:64px;text-align:center;color:#777;font-size:9px;line-height:1.1;display:flex;flex-direction:column;align-items:center;justify-content:center}
    .recaptcha-logo{
      width:30px;height:30px;margin:0 auto 4px;position:relative;border-radius:4px;
      background:linear-gradient(135deg,#5b7def 0%,#00bfae 100%);
      overflow:hidden;
      box-shadow:0 2px 6px rgba(91,125,239,.25);
    }
    .recaptcha-logo::after{
      content:'';position:absolute;left:8px;right:8px;top:8px;height:3px;background:#fff;border-radius:999px;box-shadow:0 10px 0 #fff;transform:none;border:0;
    }
    .recaptcha-logo::before{
      content:'';position:absolute;left:9px;top:8px;width:13px;height:13px;border-right:3px solid #fff;border-bottom:3px solid #fff;transform:skewX(-18deg);
    }
    .recaptcha-brand-name{font-size:10px;font-weight:800;color:#334155;letter-spacing:.02em}
    .recaptcha-privacy{font-size:8px;color:#888;margin-top:1px;white-space:nowrap}

/* --- Patch 10 --- */
#task-detail-modal input,
      #task-detail-modal select,
      #task-detail-modal textarea{
        width:100%!important;
        min-height:44px!important;
        border:1px solid #d8e1ee!important;
        background:#fff!important;
        border-radius:14px!important;
        padding:11px 14px!important;
        font-size:14px!important;
        color:#172033!important;
        box-shadow:0 1px 2px rgba(15,23,42,.03)!important;
      }
      #task-detail-modal input:focus,
      #task-detail-modal select:focus,
      #task-detail-modal textarea:focus{
        border-color:#5b7def!important;
        box-shadow:0 0 0 3px rgba(91,125,239,.12)!important;
      }
      #task-detail-modal input[type="datetime-local"]{
        font-family:var(--font-body)!important;
        letter-spacing:0!important;
        padding-right:42px!important;
      }
      #task-detail-modal input[type="datetime-local"]::-webkit-calendar-picker-indicator{
        width:18px;
        height:18px;
        padding:4px;
        border-radius:8px;
        background-color:#eef4ff;
        cursor:pointer;
        opacity:.9;
      }
      .task-date-field{position:relative}

/* --- Patch 11 --- */
    body,
    button,
    input,
    select,
    textarea,
    table,
    .nav-item,
    .page-tab,
    .login-tab,
    .filter-btn,
    .export-btn,
    .submit-btn,
    .btn-primary{
      font-family:var(--font-body)!important;
      letter-spacing:0!important;
    }
    .page-title,
    .stat-num,
    .logo-text,
    .inc-title,
    .user-name,
    h1,h2,h3{
      font-family:var(--font-display)!important;
      letter-spacing:0!important;
    }
    [style*="font-family:var(--font-mono)"],
    .inc-meta,
    code,pre{
      font-family:var(--font-mono)!important;
    }

/* --- Patch 12 --- */
#page-mantenimiento input,#page-mantenimiento select,#page-mantenimiento textarea{
      width:100%!important;min-height:44px!important;border-radius:14px!important;padding:11px 14px!important;
      border:1px solid #d8e1ee!important;background:#fff!important;font-size:14px!important;
    }
    #page-mantenimiento textarea{min-height:92px!important}
    .mant-icon{width:36px;height:36px;border-radius:12px;background:#eef4ff;color:#4f6ee8;display:inline-grid;place-items:center;flex-shrink:0}
    .mant-icon svg{width:19px;height:19px}
    .mant-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:.8rem}
    @media(max-width:900px){.mant-grid-3{grid-template-columns:1fr}}

/* --- Patch 13 --- */
#page-solicitud-huespedes .card > div[style*="grid-template-columns"]{
      width:100%!important;
    }
    #page-solicitud-huespedes input,
    #page-solicitud-huespedes select{
      width:100%!important;
      min-height:44px!important;
      border-radius:14px!important;
      padding:11px 14px!important;
      font-size:14px!important;
    }
    #page-solicitud-huespedes #guest-detail{
      width:100%!important;
    }
    #page-solicitud-huespedes .guest-form-row-main{
      display:grid!important;
      grid-template-columns:1fr 1fr 1fr 180px!important;
      gap:14px!important;
      align-items:end!important;
    }
    #page-solicitud-huespedes .guest-form-row-details{
      display:grid!important;
      grid-template-columns:1fr 1fr 1fr!important;
      gap:14px!important;
      margin-top:14px!important;
      align-items:end!important;
    }
    #page-solicitud-huespedes .guest-detail-row{
      margin-top:14px!important;
    }
    @media(max-width:1000px){
      #page-solicitud-huespedes .guest-form-row-main,
      #page-solicitud-huespedes .guest-form-row-details{grid-template-columns:1fr!important}
    }

/* --- Patch 14 --- */
input[type="checkbox"],
    input[type="radio"],
    .task-check{
      width:14px!important;
      height:14px!important;
      min-width:14px!important;
      min-height:14px!important;
      border-width:1.5px!important;
    }
    .task-check{
      border-radius:5px!important;
      margin-right:8px!important;
    }
    .task-check:checked::after{
      width:6px!important;
      height:3px!important;
      border-left-width:1.5px!important;
      border-bottom-width:1.5px!important;
    }
    .recaptcha-check{
      width:16px!important;
      height:16px!important;
      min-width:16px!important;
      min-height:16px!important;
      border-width:1.5px!important;
    }
    .recaptcha-check:checked::after{
      width:9px!important;
      height:5px!important;
      border-left-width:2px!important;
      border-bottom-width:2px!important;
      margin-top:-2px!important;
    }

/* --- Patch 15 --- */
:root{
      --compact-sidebar:204px;
      --compact-page-pad:18px;
    }
    body{font-size:14px!important}
    .sidebar{
      width:var(--compact-sidebar)!important;
      padding:12px 10px!important;
      overflow-y:auto!important;
      scrollbar-width:thin!important;
    }
    .sidebar-logo{
      margin-bottom:12px!important;
      padding:0 6px!important;
      min-height:34px!important;
    }
    .sidebar-logo svg{
      max-width:118px!important;
      height:auto!important;
    }
    .nav-section{
      margin:8px 0 4px!important;
      padding:0 8px!important;
      font-size:9px!important;
      letter-spacing:.08em!important;
    }
    .nav-item{
      min-height:34px!important;
      padding:7px 10px!important;
      margin-bottom:2px!important;
      gap:9px!important;
      border-radius:8px!important;
      font-size:13px!important;
      line-height:1.12!important;
    }
    .nav-item svg{
      width:16px!important;
      height:16px!important;
    }
    .sidebar-bottom{
      padding-top:8px!important;
      margin-top:10px!important;
    }
    .user-chip{
      padding:8px!important;
      gap:8px!important;
      border-radius:8px!important;
    }
    .user-avatar{
      width:28px!important;
      height:28px!important;
      font-size:11px!important;
    }
    .user-name{font-size:12px!important}
    .user-role{font-size:9px!important}
    .main{
      margin-left:var(--compact-sidebar)!important;
      padding:var(--compact-page-pad)!important;
    }
    .page-header{
      margin-bottom:14px!important;
      gap:12px!important;
    }
    .page-title{font-size:20px!important}
    .page-sub{font-size:12px!important}
    .card{padding:16px!important;margin-bottom:14px!important}
    .stat-card{padding:15px 16px!important}
    .stat-num{font-size:24px!important}
    .stats-grid{gap:12px!important}
    .grid-2,.grid-3,.reports-grid,.dashboard-grid{gap:14px!important}
    input,select,textarea,.field input,.field select{
      min-height:40px!important;
      padding:9px 12px!important;
      font-size:13px!important;
    }
    .field label,.label{
      margin-bottom:6px!important;
      font-size:10px!important;
    }
    .btn-primary,.submit-btn,.save-btn{
      min-height:40px!important;
      padding:10px 14px!important;
      font-size:13px!important;
    }
    .filter-btn,.export-btn,.page-tab{
      min-height:34px!important;
      padding:7px 12px!important;
      font-size:12px!important;
    }
    .chart-box,.chart-card canvas,.card canvas{
      max-height:260px!important;
    }
    @media (max-width:1366px){
      :root{
        --compact-sidebar:188px;
        --compact-page-pad:14px;
      }
      body{font-size:13px!important}
      .sidebar{padding:10px 8px!important}
      .sidebar-logo svg{max-width:105px!important}
      .nav-item{
        min-height:31px!important;
        padding:6px 9px!important;
        gap:8px!important;
        font-size:12px!important;
      }
      .nav-item svg{width:15px!important;height:15px!important}
      .page-title{font-size:19px!important}
      .card{padding:14px!important}
      .stat-num{font-size:22px!important}
      .chart-box,.chart-card canvas,.card canvas{max-height:230px!important}
    }
    @media (max-height:760px) and (min-width:901px){
      .sidebar{padding-top:8px!important;padding-bottom:8px!important}
      .sidebar-logo{margin-bottom:8px!important}
      .nav-item{
        min-height:29px!important;
        padding:5px 8px!important;
        font-size:11.5px!important;
      }
      .nav-section{margin:6px 0 3px!important}
      .sidebar-bottom{padding-top:6px!important}
    }
    @media (max-width:900px){
      .sidebar{
        width:min(78vw,260px)!important;
        transform:translateX(-100%)!important;
      }
      .sidebar.open{transform:translateX(0)!important}
      .main{
        margin-left:0!important;
        padding:58px 12px 14px!important;
      }
      .menu-toggle{display:flex!important}
    }

/* --- Patch 16 --- */
@media (min-width:901px){
      :root{
        --compact-sidebar:214px;
        --compact-page-pad:18px;
      }
      .sidebar{
        width:var(--compact-sidebar)!important;
        padding:14px 12px 16px!important;
        display:flex!important;
        flex-direction:column!important;
        overflow:hidden!important;
      }
      .sidebar-logo{
        margin-bottom:14px!important;
        padding:0 8px!important;
        flex:0 0 auto!important;
      }
      .sidebar-logo svg{max-width:122px!important}
      .sidebar > .nav-item,
      .sidebar > .nav-section{
        flex:0 0 auto!important;
      }
      .nav-item{
        min-height:35px!important;
        padding:7px 11px!important;
        margin-bottom:3px!important;
        gap:10px!important;
        font-size:12.5px!important;
        border-radius:9px!important;
      }
      .nav-item svg{
        width:16px!important;
        height:16px!important;
      }
      .sidebar-bottom{
        margin-top:auto!important;
        padding-top:14px!important;
        border-top:1px solid #dce2ea!important;
        flex:0 0 auto!important;
        background:#fff!important;
      }
      .user-chip{
        padding:11px 10px!important;
        border-radius:9px!important;
        background:#f8fafc!important;
        border:1px solid #dfe5ee!important;
        box-shadow:none!important;
      }
      .user-avatar{
        width:34px!important;
        height:34px!important;
        font-size:12px!important;
      }
      .user-name{
        font-size:12.5px!important;
        line-height:1.15!important;
      }
      .user-role{
        font-size:10px!important;
        margin-top:2px!important;
      }
      .main{
        margin-left:var(--compact-sidebar)!important;
        padding:var(--compact-page-pad)!important;
      }
    }
    @media (max-width:1366px) and (min-width:901px){
      :root{
        --compact-sidebar:206px;
        --compact-page-pad:16px;
      }
      .sidebar{padding:12px 10px 14px!important}
      .nav-item{
        min-height:34px!important;
        padding:7px 10px!important;
        font-size:12px!important;
      }
      .sidebar-bottom{padding-top:12px!important}
      .user-chip{padding:10px!important}
    }
    @media (max-height:720px) and (min-width:901px){
      .sidebar{
        overflow-y:auto!important;
        scrollbar-width:thin!important;
      }
      .nav-item{
        min-height:31px!important;
        padding:5px 9px!important;
        margin-bottom:2px!important;
      }
      .sidebar-bottom{margin-top:16px!important}
    }

/* --- Patch 17 --- */
html{font-size:15px!important}
    *{box-sizing:border-box!important}
    .card,.stat-card,.user-chip,.filter-btn,.export-btn,.page-tab,.btn-primary,.submit-btn,.save-btn,input,select,textarea{
      border-radius:12px!important;
    }
    .nav-item{border-radius:14px!important}
    .page-tabs{border-radius:14px!important}
    .task-id-pill{
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      min-width:58px!important;
      height:30px!important;
      padding:0 13px!important;
      border-radius:999px!important;
      background:#eef3f7!important;
      color:#415064!important;
      font-size:12px!important;
      font-weight:800!important;
      margin-left:12px!important;
      vertical-align:middle!important;
    }
    input[type="checkbox"],
    .task-check,
    .recaptcha-check{
      appearance:none!important;
      -webkit-appearance:none!important;
      width:24px!important;
      height:24px!important;
      min-width:24px!important;
      border:2px solid #c7d2e2!important;
      border-radius:10px!important;
      background:#fff!important;
      display:inline-grid!important;
      place-content:center!important;
      padding:0!important;
      margin:0!important;
      vertical-align:middle!important;
      box-shadow:inset 0 1px 0 rgba(255,255,255,.9)!important;
      cursor:pointer!important;
      transition:border-color .15s,background .15s,box-shadow .15s!important;
    }
    input[type="checkbox"]:hover,
    .task-check:hover,
    .recaptcha-check:hover{
      border-color:#7d8aa2!important;
      box-shadow:0 0 0 4px rgba(125,138,162,.12)!important;
    }
    input[type="checkbox"]:checked,
    .task-check:checked,
    .recaptcha-check:checked{
      border-color:#5b7def!important;
      background:#5b7def!important;
    }
    input[type="checkbox"]:checked::after,
    .task-check:checked::after,
    .recaptcha-check:checked::after{
      content:''!important;
      width:10px!important;
      height:6px!important;
      border-left:2px solid #fff!important;
      border-bottom:2px solid #fff!important;
      transform:rotate(-45deg)!important;
      margin-top:-2px!important;
    }
    .recaptcha-box{
      height:auto!important;
      min-height:68px!important;
      border-radius:14px!important;
      border-color:#d9e1ec!important;
      box-shadow:0 8px 24px rgba(31,41,55,.08)!important;
      padding:12px 14px!important;
      gap:12px!important;
    }
    .recaptcha-check{
      width:28px!important;
      height:28px!important;
      min-width:28px!important;
      border-radius:11px!important;
    }
    #page-tareas-table .card{
      overflow:hidden!important;
    }
    #page-tareas-table table{
      width:100%!important;
      border-collapse:separate!important;
      border-spacing:0!important;
      table-layout:auto!important;
      white-space:normal!important;
    }
    #page-tareas-table th{
      padding:11px 12px!important;
      font-size:12px!important;
      font-weight:800!important;
      background:#fbfcfd!important;
      border-bottom:1px solid #e3e8ef!important;
      white-space:nowrap!important;
    }
    #page-tareas-table td{
      padding:10px 12px!important;
      font-size:12.5px!important;
      vertical-align:middle!important;
    }
    #page-tareas-table td:nth-child(2){
      min-width:220px!important;
      max-width:360px!important;
    }
    #page-tareas-table .export-btn{
      min-height:34px!important;
      border-radius:10px!important;
      white-space:nowrap!important;
    }
    #page-tareas-table .card > div:first-child{
      gap:10px!important;
    }
    #page-tareas-table .card > div:first-child > div{
      min-width:0!important;
    }
    #tareas-table-search{
      width:min(220px,100%)!important;
      border-radius:12px!important;
    }
    @media (max-width:1440px) and (min-width:901px){
      html{font-size:14px!important}
      .main{padding:16px!important}
      .card{padding:15px!important}
      #page-tareas-table th{padding:10px 10px!important;font-size:11.5px!important}
      #page-tareas-table td{padding:9px 10px!important;font-size:12px!important}
      #page-tareas-table td:nth-child(2){min-width:190px!important}
      .task-id-pill{min-width:52px!important;height:28px!important;margin-left:9px!important}
    }
    @media (max-width:1180px) and (min-width:901px){
      :root{--compact-sidebar:200px!important;--compact-page-pad:14px!important}
      .grid-2,.grid-3,.reports-grid,.dashboard-grid,.stats-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
      }
      #page-tareas-table .card > div:first-child{
        align-items:flex-start!important;
      }
      #page-tareas-table .card > div:first-child > div:last-child{
        width:100%!important;
        justify-content:flex-start!important;
        flex-wrap:wrap!important;
      }
    }
    @media (max-width:760px){
      html{font-size:14px!important}
      body{font-size:13px!important}
      .main{
        padding:58px 10px 14px!important;
        width:100%!important;
        overflow-x:hidden!important;
      }
      .page-header{
        flex-direction:column!important;
        align-items:flex-start!important;
      }
      .page-title{font-size:19px!important}
      .card{padding:13px!important;border-radius:14px!important}
      .grid-2,.grid-3,.reports-grid,.dashboard-grid,.stats-grid,.row2{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
      }
      .page-tabs{
        overflow-x:auto!important;
        flex-wrap:nowrap!important;
        gap:6px!important;
        padding:5px!important;
      }
      .page-tab{flex:0 0 auto!important}
      input,select,textarea,.field input,.field select{
        width:100%!important;
        min-width:0!important;
        font-size:16px!important;
      }
      .filter-btn,.export-btn,.submit-btn,.save-btn,.btn-primary{
        width:auto!important;
        max-width:100%!important;
        white-space:normal!important;
      }
      #page-tareas-table .card{
        padding:0!important;
        background:transparent!important;
        border:0!important;
        box-shadow:none!important;
      }
      #page-tareas-table .card > div:first-child{
        background:#fff!important;
        border:1px solid #e2e8f0!important;
        border-radius:14px!important;
        margin-bottom:12px!important;
        padding:12px!important;
      }
      #page-tareas-table .card > div:first-child > div{
        width:100%!important;
        justify-content:flex-start!important;
      }
      #tareas-table-search{width:100%!important}
      #page-tareas-table table,
      #page-tareas-table thead,
      #page-tareas-table tbody,
      #page-tareas-table tr,
      #page-tareas-table td{
        display:block!important;
        width:100%!important;
      }
      #page-tareas-table table{
        background:transparent!important;
        overflow:visible!important;
      }
      #page-tareas-table thead{display:none!important}
      #page-tareas-table tbody{
        display:grid!important;
        gap:12px!important;
      }
      #page-tareas-table tr{
        background:#fff!important;
        border:1px solid #e2e8f0!important;
        border-radius:16px!important;
        padding:10px!important;
        box-shadow:0 8px 22px rgba(31,41,55,.06)!important;
      }
      #page-tareas-table td{
        border:0!important;
        padding:8px 4px!important;
        white-space:normal!important;
        min-width:0!important;
        max-width:none!important;
        display:flex!important;
        justify-content:space-between!important;
        align-items:flex-start!important;
        gap:12px!important;
        color:#415064!important;
      }
      #page-tareas-table td::before{
        content:''!important;
        flex:0 0 96px!important;
        color:#7d8aa2!important;
        font-size:10px!important;
        font-weight:800!important;
        text-transform:uppercase!important;
        letter-spacing:.05em!important;
      }
      #page-tareas-table td:nth-child(1)::before{content:'ID'!important}
      #page-tareas-table td:nth-child(2)::before{content:'Titulo'!important}
      #page-tareas-table td:nth-child(3)::before{content:'Inicio'!important}
      #page-tareas-table td:nth-child(4)::before{content:'Final'!important}
      #page-tareas-table td:nth-child(5)::before{content:'Hito'!important}
      #page-tareas-table td:nth-child(6)::before{content:'Relacionado'!important}
      #page-tareas-table td:nth-child(7)::before{content:'Creador'!important}
      #page-tareas-table td:nth-child(8)::before{content:'Asignado'!important}
      #page-tareas-table td:nth-child(9)::before{content:'Equipo'!important}
      #page-tareas-table td:nth-child(10)::before{content:'Estado'!important}
      #page-tareas-table td:nth-child(11)::before{content:'Acciones'!important}
      #page-tareas-table td:nth-child(1){
        align-items:center!important;
        justify-content:flex-start!important;
      }
      #page-tareas-table td:nth-child(1)::before{display:none!important}
      #page-tareas-table td:nth-child(2){
        color:#0f55a8!important;
        font-size:13.5px!important;
        font-weight:750!important;
      }
      #page-tareas-table td:nth-child(11){
        justify-content:flex-end!important;
        padding-top:12px!important;
      }
      #page-tareas-table td:nth-child(11)::before{display:none!important}
      .task-id-pill{
        min-width:58px!important;
        height:30px!important;
        margin-left:10px!important;
      }
      .task-check{
        width:26px!important;
        height:26px!important;
        min-width:26px!important;
      }
      .recaptcha-box{
        width:100%!important;
        min-height:64px!important;
      }
      .recaptcha-text{font-size:13px!important;white-space:normal!important}
      .recaptcha-brand{width:58px!important;flex:0 0 58px!important}
    }
    @media (max-width:420px){
      .main{padding-left:8px!important;padding-right:8px!important}
      .card{padding:11px!important}
      .page-title{font-size:18px!important}
      #page-tareas-table .card > div:first-child{
        padding:10px!important;
      }
      #page-tareas-table .card > div:first-child > div:first-child,
      #page-tareas-table .card > div:first-child > div:last-child{
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:8px!important;
      }
      #page-tareas-table .card > div:first-child > div:last-child input{
        grid-column:1/-1!important;
      }
      #page-tareas-table td{
        font-size:12.5px!important;
        gap:8px!important;
      }
      #page-tareas-table td::before{
        flex-basis:78px!important;
        font-size:9px!important;
      }
      .task-id-pill{
        min-width:52px!important;
        height:28px!important;
        font-size:11px!important;
      }
      .recaptcha-brand{display:none!important}
    }

/* --- Patch 18 --- */
.recaptcha-left{
      align-items:center!important;
    }
    .recaptcha-check{
      width:14px!important;
      height:14px!important;
      min-width:14px!important;
      max-width:14px!important;
      min-height:14px!important;
      max-height:14px!important;
      aspect-ratio:1 / 1!important;
      border-radius:50%!important;
      border:3px solid #c6d1df!important;
      background:#fff!important;
      flex:0 0 14px!important;
      display:inline-grid!important;
      place-items:center!important;
      padding:0!important;
      margin:0!important;
      box-shadow:0 0 0 6px #eef3f8!important;
    }
    .recaptcha-check:hover{
      border-color:#7d8aa2!important;
      box-shadow:0 0 0 6px #eef3f8,0 0 0 10px rgba(125,138,162,.13)!important;
    }
    .recaptcha-check:checked{
      border-color:#5b7def!important;
      background:#5b7def!important;
      box-shadow:0 0 0 6px #eef3f8!important;
    }
    .recaptcha-check:checked::after{
      content:''!important;
      width:12px!important;
      height:7px!important;
      border-left:2.5px solid #fff!important;
      border-bottom:2.5px solid #fff!important;
      transform:rotate(-45deg)!important;
      margin-top:-2px!important;
    }
    @media (max-width:420px){
      .recaptcha-check{
        width:30px!important;
        height:30px!important;
        min-width:30px!important;
        max-width:30px!important;
        min-height:30px!important;
        max-height:30px!important;
        flex-basis:30px!important;
      }
    }

/* --- Patch 19 --- */
input[type="checkbox"],
    input[type="checkbox"][style],
    #wa-alertas-config input[type="checkbox"],
    .recaptcha-check,
    .task-check{
      appearance:none!important;
      -webkit-appearance:none!important;
      box-sizing:border-box!important;
      width:14px!important;
      height:14px!important;
      min-width:14px!important;
      max-width:14px!important;
      min-height:14px!important;
      max-height:14px!important;
      aspect-ratio:1 / 1!important;
      flex:0 0 14px!important;
      border-radius:999px!important;
      border:1.5px solid #c8d3e1!important;
      background:#fff!important;
      display:inline-grid!important;
      place-items:center!important;
      padding:0!important;
      margin:0!important;
      line-height:1!important;
      vertical-align:middle!important;
      box-shadow:none!important;
      cursor:pointer!important;
      overflow:hidden!important;
    }
    input[type="checkbox"]:hover,
    #wa-alertas-config input[type="checkbox"]:hover,
    .recaptcha-check:hover,
    .task-check:hover{
      border-color:#8090a6!important;
      box-shadow:0 0 0 3px rgba(128,144,166,.10)!important;
    }
    input[type="checkbox"]:checked,
    #wa-alertas-config input[type="checkbox"]:checked,
    .recaptcha-check:checked,
    .task-check:checked{
      background:#5b7def!important;
      border-color:#5b7def!important;
      box-shadow:none!important;
    }
    input[type="checkbox"]:checked::after,
    #wa-alertas-config input[type="checkbox"]:checked::after,
    .recaptcha-check:checked::after,
    .task-check:checked::after{
      content:''!important;
      width:6px!important;
      height:3px!important;
      border-left:1.5px solid #fff!important;
      border-bottom:1.5px solid #fff!important;
      transform:rotate(-45deg)!important;
      margin-top:-2px!important;
      display:block!important;
    }
    #wa-alertas-config{
      gap:10px!important;
    }
    #wa-alertas-config label{
      min-height:44px!important;
      gap:12px!important;
      font-size:15px!important;
      align-items:center!important;
    }
    .recaptcha-check{
      width:14px!important;
      height:14px!important;
      min-width:14px!important;
      max-width:14px!important;
      min-height:14px!important;
      max-height:14px!important;
      flex-basis:14px!important;
      box-shadow:none!important;
    }
    .recaptcha-check:checked{
      box-shadow:none!important;
    }
    @media (min-width:901px){
      #sidebar,
      .sidebar{
        min-height:100vh!important;
        height:100vh!important;
        display:flex!important;
        flex-direction:column!important;
      }
      #sidebar .sidebar-bottom,
      .sidebar .sidebar-bottom{
        margin-top:auto!important;
        margin-bottom:8px!important;
        padding-top:18px!important;
        border-top:1px solid #dce2ea!important;
        transform:translateY(18px)!important;
      }
    }
    @media (max-height:760px) and (min-width:901px){
      #sidebar .sidebar-bottom,
      .sidebar .sidebar-bottom{
        transform:translateY(8px)!important;
        margin-bottom:4px!important;
      }
    }
    @media (max-width:520px){
      input[type="checkbox"],
      input[type="checkbox"][style],
      #wa-alertas-config input[type="checkbox"],
      .recaptcha-check,
      .task-check{
        width:14px!important;
        height:14px!important;
        min-width:14px!important;
        max-width:14px!important;
        min-height:14px!important;
        max-height:14px!important;
        flex-basis:14px!important;
      }
    }

/* --- Patch 20 --- */
#page-tareas-table{max-width:100%!important;overflow:hidden!important}
    #page-tareas-table .card{max-width:100%!important;overflow:hidden!important}
    #page-tareas-table .card > div[style*="overflow-x"]{overflow-x:hidden!important;width:100%!important}
    #page-tareas-table table{width:100%!important;min-width:0!important;table-layout:fixed!important;display:table!important;white-space:normal!important}
    #page-tareas-table th,#page-tareas-table td{padding:9px 8px!important;white-space:normal!important;overflow-wrap:anywhere!important;font-size:12px!important}
    #page-tareas-table td:nth-child(1){width:96px!important}
    #page-tareas-table td:nth-child(2){min-width:0!important;width:22%!important}
    #page-tareas-table td:nth-child(3),#page-tareas-table td:nth-child(4){width:90px!important}
    #page-tareas-table td:nth-child(10){width:104px!important}
    #page-tareas-table td:nth-child(11){width:82px!important}
    #page-tareas-table .task-id-pill{min-width:44px!important;height:26px!important;margin-left:6px!important;padding:0 8px!important}
    #page-tareas-table .export-btn{padding:6px 8px!important;font-size:11px!important}
    @media(max-width:1366px) and (min-width:761px){
      #page-tareas-table th:nth-child(5),#page-tareas-table td:nth-child(5),
      #page-tareas-table th:nth-child(6),#page-tareas-table td:nth-child(6),
      #page-tareas-table th:nth-child(7),#page-tareas-table td:nth-child(7),
      #page-tareas-table th:nth-child(9),#page-tareas-table td:nth-child(9){display:none!important}
      #page-tareas-table td:nth-child(2){width:34%!important}
    }
    @media(max-width:760px){
      #page-tareas-table .card > div[style*="overflow-x"]{overflow:visible!important}
      #page-tareas-table table,#page-tareas-table thead,#page-tareas-table tbody,#page-tareas-table tr,#page-tareas-table td{display:block!important;width:100%!important}
      #page-tareas-table thead{display:none!important}
      #page-tareas-table tbody{display:grid!important;gap:12px!important}
      #page-tareas-table tr{border:1px solid #e2e8f0!important;border-radius:16px!important;background:#fff!important;padding:10px!important}
      #page-tareas-table td{display:flex!important;justify-content:space-between!important;gap:10px!important;border:0!important;padding:7px 4px!important}
      #page-tareas-table td::before{flex:0 0 88px;color:#7d8aa2;font-size:10px;font-weight:800;text-transform:uppercase}
      #page-tareas-table td:nth-child(1)::before{content:'ID'}
      #page-tareas-table td:nth-child(2)::before{content:'Titulo'}
      #page-tareas-table td:nth-child(3)::before{content:'Inicio'}
      #page-tareas-table td:nth-child(4)::before{content:'Final'}
      #page-tareas-table td:nth-child(5)::before{content:'Hito'}
      #page-tareas-table td:nth-child(6)::before{content:'Relacionado'}
      #page-tareas-table td:nth-child(7)::before{content:'Creador'}
      #page-tareas-table td:nth-child(8)::before{content:'Asignado'}
      #page-tareas-table td:nth-child(9)::before{content:'Equipo'}
      #page-tareas-table td:nth-child(10)::before{content:'Estado'}
      #page-tareas-table td:nth-child(11)::before{content:'Acciones'}
    }

/* --- Patch 21 --- */
.recaptcha-check{
      width:14px!important;
      height:14px!important;
      min-width:14px!important;
      max-width:14px!important;
      min-height:14px!important;
      max-height:14px!important;
      flex:0 0 14px!important;
      border-radius:50%!important;
      border-width:1.5px!important;
      box-shadow:none!important;
    }
    .recaptcha-check:hover{
      box-shadow:0 0 0 3px rgba(128,144,166,.10)!important;
    }
    .recaptcha-check:checked{
      box-shadow:none!important;
    }
    .recaptcha-check:checked::after{
      width:6px!important;
      height:3px!important;
      border-left-width:1.5px!important;
      border-bottom-width:1.5px!important;
      margin-top:-2px!important;
    }

/* --- Patch 22 --- */
#wa-alertas-config input[type="checkbox"],
    #page-reportes input[type="checkbox"],
    .task-check,
    .card label input[type="checkbox"]:not(.recaptcha-check):not(.task-check){
      width:14px!important;
      height:14px!important;
      min-width:14px!important;
      max-width:14px!important;
      min-height:14px!important;
      max-height:14px!important;
      flex:0 0 14px!important;
      border-radius:50%!important;
      border-width:1.5px!important;
      box-shadow:none!important;
    }
    #wa-alertas-config input[type="checkbox"]:hover,
    #page-reportes input[type="checkbox"]:hover,
    .task-check:hover,
    .card label input[type="checkbox"]:not(.recaptcha-check):not(.task-check):hover{
      box-shadow:0 0 0 3px rgba(128,144,166,.10)!important;
    }
    #wa-alertas-config input[type="checkbox"]:checked::after,
    #page-reportes input[type="checkbox"]:checked::after,
    .task-check:checked::after,
    .card label input[type="checkbox"]:not(.recaptcha-check):not(.task-check):checked::after{
      width:6px!important;
      height:3px!important;
      border-left-width:1.5px!important;
      border-bottom-width:1.5px!important;
      margin-top:-2px!important;
    }

/* --- Patch 23 --- */
#page-incidencias{
      --inc-gap:14px;
    }
    #page-incidencias .page-header{
      margin-bottom:14px!important;
    }
    #page-incidencias #stats-grid{
      grid-template-columns:repeat(4,minmax(0,1fr))!important;
      gap:10px!important;
      margin-bottom:14px!important;
    }
    #page-incidencias #stats-grid .stat-card{
      min-height:74px!important;
      padding:14px 16px!important;
      border-radius:16px!important;
    }
    #page-incidencias #stats-grid .stat-num{
      font-size:23px!important;
      line-height:1!important;
      margin-bottom:6px!important;
    }
    #page-incidencias .page-tabs{
      margin-bottom:14px!important;
      padding:4px!important;
      border-radius:18px!important;
      background:#fff!important;
      border:1px solid var(--border2)!important;
      box-shadow:var(--shadow-sm)!important;
    }
    #page-incidencias .page-tab{
      min-height:38px!important;
      border-radius:14px!important;
      font-size:13px!important;
    }
    #page-incidencias #tab-nueva{
      display:grid!important;
      grid-template-columns:minmax(340px,.95fr) minmax(420px,1.25fr)!important;
      gap:var(--inc-gap)!important;
      align-items:start!important;
    }
    #page-incidencias #tab-nueva > .card{
      margin:0!important;
      padding:14px 18px!important;
      border-radius:16px!important;
      box-shadow:none!important;
    }
    #page-incidencias #tab-nueva > .card:nth-of-type(1){
      grid-column:1!important;
      grid-row:1!important;
    }
    #page-incidencias #tab-nueva > .card:nth-of-type(2){
      grid-column:2!important;
      grid-row:1 / span 3!important;
    }
    #page-incidencias #tab-nueva > .card:nth-of-type(3){
      grid-column:1!important;
      grid-row:2!important;
    }
    #page-incidencias .row2{
      gap:10px!important;
    }
    #page-incidencias input,
    #page-incidencias select,
    #page-incidencias textarea{
      min-height:38px!important;
      border-radius:14px!important;
      font-size:14px!important;
      padding:8px 13px!important;
    }
    #page-incidencias textarea#desc{
      min-height:82px!important;
      resize:vertical!important;
    }
    #page-incidencias .sw-grid{
      display:grid!important;
      grid-template-columns:repeat(2,minmax(0,1fr))!important;
      gap:10px!important;
      margin-top:10px!important;
    }
    #page-incidencias .sw-btn{
      min-height:54px!important;
      padding:10px 14px!important;
      border-radius:16px!important;
      background:#fff!important;
      box-shadow:none!important;
    }
    #page-incidencias .sw-btn.active{
      background:linear-gradient(135deg,rgba(0,184,169,.10),rgba(86,116,232,.08))!important;
      border-color:#00b8a9!important;
      box-shadow:inset 4px 0 0 #00b8a9!important;
    }
    #page-incidencias .prio-row{
      display:grid!important;
      grid-template-columns:repeat(2,minmax(0,1fr))!important;
      gap:9px!important;
      margin-bottom:12px!important;
    }
    #page-incidencias .prio-btn{
      min-height:38px!important;
      border-radius:14px!important;
      padding:8px 12px!important;
      font-size:13px!important;
    }
    #page-incidencias #submit-btn{
      grid-column:1!important;
      grid-row:3!important;
      justify-self:center!important;
      width:auto!important;
      min-width:220px!important;
      max-width:280px!important;
      min-height:44px!important;
      padding:12px 22px!important;
      margin:0!important;
      border-radius:16px!important;
      background:#fff!important;
      border:1.5px solid #c4b5fd!important;
      color:#5b21b6!important;
      box-shadow:0 4px 14px rgba(196,181,253,.45)!important;
      font-size:14px!important;
      letter-spacing:0!important;
    }
    #page-incidencias #submit-btn:hover{
      transform:translateY(-2px)!important;
      border-color:#a78bfa!important;
      background:#faf5ff!important;
      box-shadow:0 6px 18px rgba(196,181,253,.55)!important;
    }
    @media (max-width:980px){
      #page-incidencias #stats-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
      }
      #page-incidencias #tab-nueva{
        grid-template-columns:1fr!important;
      }
      #page-incidencias #tab-nueva > .card,
      #page-incidencias #submit-btn{
        grid-column:1!important;
        grid-row:auto!important;
      }
      #page-incidencias #submit-btn{
        justify-self:stretch!important;
        max-width:none!important;
      }
    }

/* --- Patch 24 --- */
#chart-tareas-dept{
      display:none!important;
      width:0!important;
      height:0!important;
      min-height:0!important;
      max-height:0!important;
      opacity:0!important;
      pointer-events:none!important;
    }
    .dashboard-tasks-card-final{
      min-height:254px!important;
      padding:0!important;
      overflow:hidden!important;
      border-radius:16px!important;
      background:#fff!important;
    }
    .dash-task-title-final{
      display:flex!important;
      align-items:center!important;
      gap:8px!important;
      margin:0!important;
      padding:16px 18px!important;
      border-bottom:1px solid #edf1f6!important;
      color:#334155!important;
      font-size:14px!important;
      text-transform:none!important;
      letter-spacing:0!important;
      font-weight:700!important;
    }
    .dash-task-icon{
      color:#64748b;
      font-size:16px;
      line-height:1;
    }
    #dashboard-tasks-overview-final{
      padding:18px 22px 24px!important;
    }
    .dash-task-metrics-final{
      display:grid;
      grid-template-columns:repeat(3,1fr);
      align-items:center;
      text-align:center;
      margin:0 0 34px;
      background:#fbfcfe;
      border:1px solid #edf1f6;
      border-radius:16px;
      overflow:hidden;
    }
    .dash-task-metrics-final>div{
      min-height:78px;
      display:flex;
      flex-direction:column;
      align-items:center;
      justify-content:center;
      border-right:1px solid #e8edf4;
    }
    .dash-task-metrics-final>div:last-child{
      border-right:0;
    }
    .dash-task-metrics-final strong{
      display:block;
      font-size:26px;
      line-height:1;
      font-weight:800;
      margin-bottom:9px;
    }
    .dash-task-metrics-final strong.open{color:#00b8a9}
    .dash-task-metrics-final strong.done{color:#ff2f63}
    .dash-task-metrics-final strong.hold{color:#f5a400}
    .dash-task-metrics-final span{
      color:#334155;
      font-size:13px;
      font-weight:600;
    }
    .dash-task-progress-shell-final{
      position:relative;
      height:38px;
      border:2px solid #27c39f;
      border-radius:999px;
      overflow:hidden;
      background:#fff;
      display:flex;
      align-items:center;
      justify-content:center;
      color:#334155;
      font-size:14px;
      font-weight:600;
      box-shadow:0 6px 18px rgba(39,195,159,.12);
    }
    .dash-task-progress-segments-final{
      position:absolute;
      inset:6px auto 6px 6px;
      right:6px;
      border-radius:999px;
      overflow:hidden;
      display:flex;
      background:#eef4f8;
    }
    .dash-task-segment-open-final,
    .dash-task-segment-done-final,
    .dash-task-segment-hold-final{
      min-width:0;
      height:100%;
      transition:width .35s ease;
    }
    .dash-task-segment-open-final{
      background:linear-gradient(90deg,rgba(0,184,169,.38),rgba(0,184,169,.24));
    }
    .dash-task-segment-done-final{
      background:linear-gradient(90deg,rgba(255,47,99,.55),rgba(255,47,99,.36));
    }
    .dash-task-segment-hold-final{
      background:linear-gradient(90deg,rgba(245,164,0,.58),rgba(245,164,0,.36));
    }
    .dash-task-progress-fill-final{
      display:none!important;
      max-width:calc(100% - 12px);
    }
    .dash-task-progress-shell-final span{
      position:relative;
      z-index:1;
    }
    .dash-task-legend-final{
      display:flex;
      justify-content:center;
      gap:20px;
      flex-wrap:wrap;
      margin-top:13px;
      color:#64748b;
      font-size:12px;
      font-weight:600;
    }
    .dash-task-legend-final span{
      display:inline-flex;
      align-items:center;
      gap:6px;
    }
    .dash-task-legend-final i{
      width:9px;
      height:9px;
      border-radius:50%;
      display:inline-block;
    }
    .dash-task-legend-final i.open{background:#00b8a9}
    .dash-task-legend-final i.done{background:#ff2f63}
    .dash-task-legend-final i.hold{background:#f5a400}
    .dash-task-category-bars-final{
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:12px;
      margin-top:18px;
    }
    .dash-task-bar-label-final{
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:8px;
      margin-bottom:7px;
      color:#334155;
      font-size:12px;
      font-weight:700;
    }
    .dash-task-bar-label-final strong{
      color:#64748b;
      font-size:12px;
      font-weight:800;
    }
    .dash-task-mini-track-final{
      height:10px;
      border-radius:999px;
      overflow:hidden;
      background:#eef3f8;
      border:1px solid #e2e8f0;
    }
    .dash-task-mini-track-final i{
      display:block;
      height:100%;
      border-radius:999px;
      min-width:4px;
      transition:width .35s ease;
    }
    .dash-task-mini-track-final i.open{
      background:#00b8a9;
    }
    .dash-task-mini-track-final i.done{
      background:#ff2f63;
    }
    .dash-task-mini-track-final i.hold{
      background:#f5a400;
    }
    @media(max-width:720px){
      .dash-task-metrics-final{margin-bottom:22px}
      .dash-task-metrics-final strong{font-size:20px}
      .dash-task-metrics-final span{font-size:13px}
    }

/* --- Patch 25 --- */
#page-tareas-table{
      padding-bottom:0!important;
    }
    #page-tareas-table .card{
      display:block!important;
      margin-bottom:0!important;
      padding:0!important;
      overflow:hidden!important;
      border:1px solid #dbe3ee!important;
      border-radius:16px!important;
      background:#fff!important;
      box-shadow:0 8px 22px rgba(15,23,42,.035)!important;
    }
    #page-tareas-table .card > div:first-child{
      min-height:54px!important;
      padding:10px 14px!important;
      border-bottom:1px solid #dfe7f1!important;
      background:#fff!important;
    }
    #page-tareas-table .card > div[style*="overflow-x"]{
      overflow-x:hidden!important;
      overflow-y:hidden!important;
      width:100%!important;
      border-radius:0 0 16px 16px!important;
    }
    #page-tareas-table table{
      width:100%!important;
      table-layout:fixed!important;
      border-collapse:collapse!important;
      margin:0!important;
      background:#fff!important;
    }
    #page-tareas-table thead tr{
      height:40px!important;
    }
    #page-tareas-table tbody tr{
      height:48px!important;
    }
    #page-tareas-table th,
    #page-tareas-table td{
      padding:8px 10px!important;
      line-height:1.25!important;
      vertical-align:middle!important;
      border-bottom:1px solid #e6edf5!important;
    }
    #page-tareas-table tbody tr:last-child td{
      border-bottom:0!important;
    }
    #page-tareas-table th{
      background:#fbfcfe!important;
      color:#24364f!important;
      font-size:12px!important;
      font-weight:800!important;
    }
    #page-tareas-table td{
      color:#24364f!important;
      font-size:12px!important;
    }
    #page-tareas-table th:nth-child(1),
    #page-tareas-table td:nth-child(1){width:92px!important}
    #page-tareas-table th:nth-child(2),
    #page-tareas-table td:nth-child(2){width:16%!important;min-width:0!important}
    #page-tareas-table th:nth-child(3),
    #page-tareas-table td:nth-child(3),
    #page-tareas-table th:nth-child(4),
    #page-tareas-table td:nth-child(4){width:90px!important}
    #page-tareas-table th:nth-child(5),
    #page-tareas-table td:nth-child(5){width:105px!important}
    #page-tareas-table th:nth-child(6),
    #page-tareas-table td:nth-child(6){width:135px!important}
    #page-tareas-table th:nth-child(7),
    #page-tareas-table td:nth-child(7),
    #page-tareas-table th:nth-child(8),
    #page-tareas-table td:nth-child(8){width:110px!important}
    #page-tareas-table th:nth-child(9),
    #page-tareas-table td:nth-child(9){width:110px!important}
    #page-tareas-table th:nth-child(10),
    #page-tareas-table td:nth-child(10){width:104px!important}
    #page-tareas-table th:nth-child(11),
    #page-tareas-table td:nth-child(11){width:92px!important;text-align:right!important}
    #page-tareas-table td:nth-child(2),
    #page-tareas-table td:nth-child(6),
    #page-tareas-table td:nth-child(7),
    #page-tareas-table td:nth-child(8),
    #page-tareas-table td:nth-child(9){
      overflow:hidden!important;
      text-overflow:ellipsis!important;
    }
    #page-tareas-table .task-id-pill{
      min-width:42px!important;
      height:24px!important;
      margin-left:6px!important;
      padding:0 8px!important;
      font-size:11px!important;
    }
    #page-tareas-table .task-check{
      width:12px!important;
      height:12px!important;
      min-width:12px!important;
      max-width:12px!important;
      min-height:12px!important;
      max-height:12px!important;
      vertical-align:middle!important;
    }
    #page-tareas-table .export-btn{
      min-height:30px!important;
      padding:6px 12px!important;
      border-radius:12px!important;
      font-size:12px!important;
    }

/* --- Patch 26 --- */
.dashboard-tasks-card-final{
      min-height:auto!important;
      border:1px solid #dfe7f1!important;
      box-shadow:0 10px 26px rgba(15,23,42,.04)!important;
    }
    #dashboard-tasks-overview-final{
      padding:16px 18px 18px!important;
    }
    .dash-task-metrics-final{
      gap:10px!important;
      background:transparent!important;
      border:0!important;
      border-radius:0!important;
      margin:0 0 18px!important;
      overflow:visible!important;
    }
    .dash-task-metrics-final>div{
      min-height:76px!important;
      border:1px solid #e5edf6!important;
      border-right:1px solid #e5edf6!important;
      border-radius:16px!important;
      background:linear-gradient(180deg,#ffffff,#fbfdff)!important;
      box-shadow:0 8px 18px rgba(15,23,42,.035)!important;
    }
    .dash-task-metrics-final strong{
      font-size:25px!important;
      margin-bottom:7px!important;
    }
    .dash-task-metrics-final span{
      font-size:12.5px!important;
      color:#24364f!important;
    }
    .dash-task-progress-shell-final{
      height:32px!important;
      border:1.5px solid #00b8a9!important;
      box-shadow:none!important;
      background:#f7fbfb!important;
      margin-bottom:16px!important;
    }
    .dash-task-progress-segments-final{
      inset:5px!important;
      background:#eaf2f6!important;
    }
    .dash-task-progress-shell-final span{
      font-size:13px!important;
      font-weight:800!important;
      color:#24364f!important;
    }
    .dash-task-category-bars-final{
      grid-template-columns:repeat(3,minmax(0,1fr))!important;
      gap:14px!important;
      margin-top:0!important;
      padding-top:2px!important;
    }
    .dash-task-category-bars-final>div{
      padding:11px 12px!important;
      border:1px solid #e5edf6!important;
      border-radius:14px!important;
      background:#fbfdff!important;
    }
    .dash-task-bar-label-final{
      margin-bottom:9px!important;
      font-size:12px!important;
      color:#24364f!important;
    }
    .dash-task-bar-label-final strong{
      color:#24364f!important;
      font-size:12px!important;
    }
    .dash-task-mini-track-final{
      height:8px!important;
      border:0!important;
      background:#e9f0f7!important;
    }
    .dash-task-mini-track-final i{
      min-width:0!important;
    }
    .dash-task-legend-final{
      margin-top:14px!important;
      padding-top:12px!important;
      border-top:1px solid #edf2f7!important;
      gap:22px!important;
      font-size:11.5px!important;
    }
    @media(max-width:760px){
      .dash-task-metrics-final,
      .dash-task-category-bars-final{
        grid-template-columns:1fr!important;
      }
    }

/* --- Patch 27 --- */
#page-tareas-table .card > div[style*="overflow-x"]{
      overflow-x:auto!important;
      overflow-y:hidden!important;
      padding-bottom:0!important;
    }
    #page-tareas-table table{
      min-width:1180px!important;
      table-layout:fixed!important;
    }
    #page-tareas-table th:nth-child(11),
    #page-tareas-table td:nth-child(11){
      width:124px!important;
      min-width:124px!important;
      max-width:124px!important;
      text-align:center!important;
      padding-left:14px!important;
      padding-right:18px!important;
    }
    #page-tareas-table th:nth-child(11){
      text-align:center!important;
    }
    #page-tareas-table td:nth-child(11) .export-btn,
    #page-tareas-table td:nth-child(11) button{
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      min-width:64px!important;
      margin:0 auto!important;
    }

/* --- Patch 28 --- */
#page-incidencias #tab-nueva{
      grid-template-columns:minmax(420px,1fr) minmax(420px,1.28fr)!important;
      align-items:stretch!important;
    }
    #page-incidencias #tab-nueva > .card:nth-of-type(1),
    #page-incidencias #tab-nueva > .card:nth-of-type(3){
      width:100%!important;
    }
    #page-incidencias #tab-nueva > .card:nth-of-type(1){
      min-height:92px!important;
    }
    #page-incidencias #tab-nueva > .card:nth-of-type(2){
      height:100%!important;
      min-height:334px!important;
      display:flex!important;
      flex-direction:column!important;
    }
    #page-incidencias #tab-nueva > .card:nth-of-type(3){
      min-height:226px!important;
    }
    #page-incidencias .sw-grid{
      flex:1!important;
      align-content:stretch!important;
      grid-auto-rows:1fr!important;
    }
    #page-incidencias .sw-btn{
      height:100%!important;
      min-height:76px!important;
      display:flex!important;
      flex-direction:column!important;
      justify-content:center!important;
      align-items:flex-start!important;
    }
    #page-incidencias #tab-nueva > .card:nth-of-type(3) .row2{
      margin-bottom:14px!important;
    }
    #page-incidencias #tab-nueva > .card:nth-of-type(3) .prio-row{
      margin-bottom:14px!important;
    }
    #page-incidencias textarea#desc{
      min-height:76px!important;
      height:76px!important;
    }
    #page-incidencias #submit-btn{
      align-self:start!important;
      transform:translateY(-2px)!important;
    }
    @media(max-width:980px){
      #page-incidencias #tab-nueva{
        grid-template-columns:1fr!important;
        align-items:start!important;
      }
      #page-incidencias #tab-nueva > .card:nth-of-type(2),
      #page-incidencias #tab-nueva > .card:nth-of-type(3){
        min-height:auto!important;
        height:auto!important;
      }
      #page-incidencias .sw-btn{
        min-height:60px!important;
      }
      #page-incidencias textarea#desc{
        height:auto!important;
        min-height:88px!important;
      }
    }

/* --- Patch 29 --- */
.zoplie-brand-svg{
      width:166px!important;
      height:auto!important;
      max-width:100%!important;
      filter:drop-shadow(0 10px 18px rgba(45,91,227,.10));
    }
    .logo-text.zoplie-wordmark{
      display:inline-flex!important;
      align-items:center!important;
      gap:2px!important;
      color:#fff!important;
      font-family:var(--font-display)!important;
      font-size:18px!important;
      font-weight:850!important;
      letter-spacing:.04em!important;
      line-height:1!important;
    }
    .logo-text.zoplie-wordmark .zoplie-e-mark{
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      width:28px!important;
      height:27px!important;
      margin-left:3px!important;
      border-radius:9px!important;
      background:linear-gradient(135deg,#00b8a9,#5b7def)!important;
      color:#fff!important;
      font-size:18px!important;
      font-weight:900!important;
      letter-spacing:0!important;
      box-shadow:0 8px 18px rgba(0,184,169,.22)!important;
      transform:translateY(-1px)!important;
      position:relative!important;
      overflow:hidden!important;
    }
    .logo-text.zoplie-wordmark .zoplie-e-mark::before{
      content:''!important;
      position:absolute!important;
      left:6px!important;
      top:6px!important;
      width:2px!important;
      height:15px!important;
      border-radius:999px!important;
      background:rgba(255,255,255,.46)!important;
    }
    .login-logo .zoplie-brand-svg{
      margin-bottom:4px!important;
    }

/* --- Patch 30 --- */
#dashboard-tasks-overview-final{
      display:grid!important;
      grid-template-columns:1fr!important;
      gap:18px!important;
    }
    .dash-task-metrics-final,
    .dash-task-category-bars-final{
      width:100%!important;
      display:grid!important;
      grid-template-columns:repeat(3,minmax(0,1fr))!important;
      gap:14px!important;
      margin:0!important;
    }
    .dash-task-metrics-final>div,
    .dash-task-category-bars-final>div{
      width:100%!important;
      min-width:0!important;
      height:74px!important;
      min-height:74px!important;
      max-height:74px!important;
      border-radius:16px!important;
      display:flex!important;
      flex-direction:column!important;
      justify-content:center!important;
    }
    .dash-task-category-bars-final>div{
      padding:13px 14px!important;
    }
    .dash-task-progress-shell-final{
      width:100%!important;
      margin:0!important;
    }
    .dash-task-legend-final{
      margin-top:0!important;
    }
    @media(max-width:760px){
      .dash-task-metrics-final,
      .dash-task-category-bars-final{
        grid-template-columns:1fr!important;
      }
    }

/* --- Patch 31 --- */
.guest-empty-final{
      min-height:150px!important;
      display:flex!important;
      flex-direction:column!important;
      align-items:center!important;
      justify-content:center!important;
      gap:8px!important;
      color:#7d8aa2!important;
      font-size:13px!important;
      font-weight:600!important;
    }
    .guest-empty-final .empty-icon{
      width:34px!important;
      height:34px!important;
      display:flex!important;
      align-items:center!important;
      justify-content:center!important;
      border-radius:50%!important;
      background:#f1f5f9!important;
      border:1px solid #e2e8f0!important;
      color:#94a3b8!important;
      font-size:18px!important;
      line-height:1!important;
      margin:0!important;
    }

/* --- Patch 32 --- */
.logout-profile-btn{
      border-color:rgba(224,48,80,.28)!important;
      color:#e03050!important;
      background:rgba(224,48,80,.06)!important;
    }
    .logout-profile-btn:hover{
      background:rgba(224,48,80,.12)!important;
      border-color:rgba(224,48,80,.42)!important;
    }
    .logout-btn{
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
    }

/* --- Patch 33 --- */
.login-logo{
      margin-bottom:1.45rem!important;
    }
    .login-logo .zoplie-login-img-final{
      width:min(270px,82vw)!important;
      height:auto!important;
      display:block!important;
      margin:0 auto 10px!important;
      object-fit:contain!important;
      filter:drop-shadow(0 12px 26px rgba(15,30,61,.10));
    }
    .sidebar-logo{
      justify-content:center!important;
      padding:4px 0 18px!important;
      margin-bottom:10px!important;
    }
    .sidebar-logo .zoplie-app-e-final{
      width:64px!important;
      height:64px!important;
      border-radius:20px!important;
      background:linear-gradient(145deg,#00c7b6 0%,#1584f4 100%)!important;
      display:grid!important;
      place-items:center!important;
      color:#fff!important;
      font-family:var(--font-display)!important;
      font-size:43px!important;
      font-weight:950!important;
      line-height:1!important;
      letter-spacing:-.06em!important;
      box-shadow:0 16px 32px rgba(21,132,244,.26)!important;
      position:relative!important;
      overflow:hidden!important;
    }
    .sidebar-logo .zoplie-app-e-final::before{
      content:''!important;
      position:absolute!important;
      inset:0!important;
      background:linear-gradient(145deg,rgba(255,255,255,.22),transparent 45%)!important;
    }
    .sidebar-logo .zoplie-app-e-final span{
      position:relative!important;
      z-index:1!important;
      transform:skewX(-7deg) translateX(-1px)!important;
    }
    .sidebar-logo #notif-btn{
      position:absolute!important;
      top:18px!important;
      right:16px!important;
    }

/* --- Patch 34 --- */
.login-logo{
      position:relative!important;
      padding:0!important;
    }
    .login-logo::before{
      content:''!important;
      position:absolute!important;
      left:50%!important;
      top:38%!important;
      width:330px!important;
      height:118px!important;
      transform:translate(-50%,-50%)!important;
      background:radial-gradient(circle,rgba(255,255,255,.76),rgba(238,243,255,.30) 58%,transparent 72%)!important;
      filter:blur(8px)!important;
      z-index:-1!important;
      pointer-events:none!important;
    }
    .login-logo .zoplie-login-img-final{
      background:transparent!important;
      border:0!important;
      box-shadow:none!important;
      mix-blend-mode:multiply!important;
      filter:contrast(1.04) saturate(1.05) drop-shadow(0 10px 24px rgba(15,30,61,.08))!important;
    }
    .recaptcha-brand{
      width:64px!important;
      flex:0 0 64px!important;
    }
    .recaptcha-logo{
      width:31px!important;
      height:31px!important;
      border-radius:8px!important;
      background:linear-gradient(145deg,#00c7b6 0%,#1584f4 100%)!important;
      display:grid!important;
      place-items:center!important;
      box-shadow:0 8px 18px rgba(21,132,244,.20)!important;
      transform:none!important;
    }
    .recaptcha-logo::before{
      content:'E'!important;
      position:static!important;
      width:auto!important;
      height:auto!important;
      border:0!important;
      transform:skewX(-8deg) translateX(-1px)!important;
      color:#fff!important;
      font-family:var(--font-display)!important;
      font-size:22px!important;
      font-weight:950!important;
      line-height:1!important;
      letter-spacing:-.08em!important;
      background:transparent!important;
    }
    .recaptcha-logo::after{
      content:''!important;
      position:absolute!important;
      left:7px!important;
      top:7px!important;
      width:2px!important;
      height:17px!important;
      border-radius:999px!important;
      background:rgba(255,255,255,.42)!important;
      box-shadow:none!important;
      transform:none!important;
    }
    .recaptcha-brand-name{
      color:#0f1e3d!important;
      font-weight:900!important;
      margin-top:1px!important;
    }

/* --- Patch 35 --- */
#login-screen{
      background:
        radial-gradient(circle at 50% 8%,rgba(91,125,239,.18),transparent 34%),
        linear-gradient(160deg,#eaf0ff 0%,#f4f7ff 52%,#e9f1ff 100%)!important;
    }
    .login-logo::before,
    .login-logo .zoplie-login-img-final{
      display:none!important;
    }
    .zoplie-login-wordmark-final{
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      gap:11px!important;
      margin:0 auto 10px!important;
      padding:4px 0!important;
      background:transparent!important;
      filter:drop-shadow(0 12px 24px rgba(15,30,61,.10));
    }
    .zoplie-login-wordmark-final .zoplie-login-letters-final{
      font-family:var(--font-display)!important;
      font-size:43px!important;
      font-weight:950!important;
      letter-spacing:.11em!important;
      line-height:1!important;
      color:#071d45!important;
    }
    .zoplie-login-wordmark-final .zoplie-login-e-final{
      width:58px!important;
      height:58px!important;
      border-radius:18px!important;
      background:linear-gradient(145deg,#00c7b6 0%,#1584f4 100%)!important;
      display:grid!important;
      place-items:center!important;
      color:#fff!important;
      font-family:var(--font-display)!important;
      font-size:41px!important;
      font-weight:950!important;
      line-height:1!important;
      letter-spacing:-.08em!important;
      box-shadow:0 18px 34px rgba(21,132,244,.24)!important;
      position:relative!important;
      overflow:hidden!important;
    }
    .zoplie-login-wordmark-final .zoplie-login-e-final::before{
      content:''!important;
      position:absolute!important;
      left:12px!important;
      top:12px!important;
      width:3px!important;
      height:33px!important;
      border-radius:999px!important;
      background:rgba(255,255,255,.42)!important;
    }
    .zoplie-login-wordmark-final .zoplie-login-e-final span{
      position:relative!important;
      z-index:1!important;
      transform:skewX(-8deg) translateX(-1px)!important;
    }
    .recaptcha-brand{
      width:36px!important;
      flex:0 0 36px!important;
      display:flex!important;
      align-items:center!important;
      justify-content:center!important;
    }
    .recaptcha-brand-name,
    .recaptcha-privacy{
      display:none!important;
    }
    .recaptcha-logo{
      margin:0!important;
    }

/* --- Patch 36 --- */
.recaptcha-logo{
      display:flex!important;
      align-items:center!important;
      justify-content:center!important;
      text-align:center!important;
      padding:0!important;
    }
    .recaptcha-logo::before{
      transform:skewX(-7deg) translateX(0)!important;
      width:100%!important;
      text-align:center!important;
      display:block!important;
      margin-left:0!important;
      font-size:21px!important;
      line-height:31px!important;
    }
    .recaptcha-logo::after{
      left:7px!important;
      top:7px!important;
      height:17px!important;
      opacity:.32!important;
    }

/* --- Patch 37 --- */
#page-dashboard .dashboard-brand-header-final{
      display:flex!important;
      align-items:center!important;
      gap:16px!important;
    }
    #page-dashboard .dashboard-brand-logo-final{
      display:inline-flex!important;
      align-items:center!important;
      gap:8px!important;
      flex:0 0 auto!important;
      padding:4px 0!important;
      filter:drop-shadow(0 8px 18px rgba(15,30,61,.08));
    }
    #page-dashboard .dashboard-brand-letters-final{
      font-family:var(--font-display)!important;
      color:#071d45!important;
      font-size:26px!important;
      font-weight:950!important;
      letter-spacing:.09em!important;
      line-height:1!important;
    }
    #page-dashboard .dashboard-brand-e-final{
      width:39px!important;
      height:39px!important;
      border-radius:13px!important;
      background:linear-gradient(145deg,#00c7b6 0%,#1584f4 100%)!important;
      display:grid!important;
      place-items:center!important;
      color:#fff!important;
      font-family:var(--font-display)!important;
      font-size:29px!important;
      font-weight:950!important;
      line-height:1!important;
      letter-spacing:-.08em!important;
      box-shadow:0 10px 22px rgba(21,132,244,.22)!important;
      position:relative!important;
      overflow:hidden!important;
    }
    #page-dashboard .dashboard-brand-e-final::before{
      content:''!important;
      position:absolute!important;
      left:8px!important;
      top:8px!important;
      width:2px!important;
      height:23px!important;
      border-radius:999px!important;
      background:rgba(255,255,255,.40)!important;
    }
    #page-dashboard .dashboard-brand-e-final span{
      position:relative!important;
      z-index:1!important;
      transform:skewX(-7deg)!important;
    }
    @media(max-width:760px){
      #page-dashboard .dashboard-brand-header-final{
        align-items:flex-start!important;
      }
      #page-dashboard .dashboard-brand-logo-final{
        margin-bottom:4px!important;
      }
      #page-dashboard .dashboard-brand-letters-final{
        font-size:22px!important;
      }
      #page-dashboard .dashboard-brand-e-final{
        width:34px!important;
        height:34px!important;
        font-size:25px!important;
      }
    }

/* --- Patch 38 --- */
.zoplie-login-wordmark-final{
      gap:8px!important;
    }
    .zoplie-login-wordmark-final .zoplie-login-e-final{
      width:46px!important;
      height:46px!important;
      border-radius:14px!important;
      font-size:32px!important;
      box-shadow:0 12px 24px rgba(21,132,244,.20)!important;
    }
    .zoplie-login-wordmark-final .zoplie-login-e-final::before{
      left:9px!important;
      top:9px!important;
      height:27px!important;
      width:2px!important;
    }
    #page-dashboard .dashboard-brand-e-final{
      width:32px!important;
      height:32px!important;
      border-radius:10px!important;
      font-size:23px!important;
    }
    #page-dashboard .dashboard-brand-e-final::before{
      left:7px!important;
      top:7px!important;
      height:18px!important;
      width:2px!important;
    }

/* --- Patch 39 --- */
.login-box{
      transform:translateY(-26px)!important;
    }
    .login-logo{
      margin-bottom:1.25rem!important;
    }
    .zoplie-login-wordmark-final{
      width:300px!important;
      max-width:86vw!important;
      justify-content:center!important;
      align-items:center!important;
      gap:8px!important;
      filter:none!important;
      margin-bottom:8px!important;
    }
    .zoplie-login-wordmark-final .zoplie-login-letters-final{
      font-size:40px!important;
      line-height:46px!important;
      height:46px!important;
      display:inline-flex!important;
      align-items:center!important;
      letter-spacing:.105em!important;
    }
    .zoplie-login-wordmark-final .zoplie-login-e-final{
      width:40px!important;
      height:40px!important;
      border-radius:12px!important;
      font-size:28px!important;
      box-shadow:none!important;
      transform:translateY(0)!important;
      align-self:center!important;
    }
    .zoplie-login-wordmark-final .zoplie-login-e-final::before{
      left:8px!important;
      top:8px!important;
      height:24px!important;
    }
    .login-logo p{
      width:300px!important;
      max-width:86vw!important;
      margin:0 auto!important;
      text-align:justify!important;
      text-align-last:justify!important;
      letter-spacing:.035em!important;
      font-size:13px!important;
      color:#6f7f99!important;
    }

/* --- Patch 40 --- */
.login-logo{
      display:flex!important;
      flex-direction:column!important;
      align-items:center!important;
      gap:0!important;
    }
    .zoplie-login-wordmark-final{
      margin-bottom:10px!important;
    }
    .login-logo p{
      width:auto!important;
      max-width:300px!important;
      margin:0 auto!important;
      text-align:center!important;
      text-align-last:center!important;
      letter-spacing:.01em!important;
      word-spacing:0!important;
      white-space:nowrap!important;
      font-size:13px!important;
      color:#6f7f99!important;
    }

/* --- Patch 41 --- */
#page-dashboard .dashboard-brand-header-final{
      gap:12px!important;
      align-items:center!important;
    }
    #page-dashboard .dashboard-brand-logo-final{
      gap:6px!important;
      transform:translateY(-1px)!important;
      filter:none!important;
      margin-right:2px!important;
    }
    #page-dashboard .dashboard-brand-letters-final{
      font-size:21px!important;
      letter-spacing:.105em!important;
      font-weight:900!important;
    }
    #page-dashboard .dashboard-brand-e-final{
      width:25px!important;
      height:25px!important;
      border-radius:8px!important;
      font-size:18px!important;
      box-shadow:none!important;
    }
    #page-dashboard .dashboard-brand-e-final::before{
      left:5px!important;
      top:5px!important;
      height:15px!important;
      width:1.5px!important;
    }

/* --- Patch 42 --- */
.sidebar-logo .zoplie-app-e-final{
      display:none!important;
    }
    .sidebar-logo{
      min-height:44px!important;
      padding:8px 0 12px!important;
      margin-bottom:6px!important;
    }
    .sidebar-logo #notif-btn{
      position:static!important;
      margin-left:auto!important;
      margin-right:8px!important;
    }
    #page-dashboard .dashboard-brand-header-final{
      gap:0!important;
    }
    #page-dashboard .dashboard-brand-header-final .page-title{
      display:none!important;
    }
    #page-dashboard .dashboard-brand-logo-final{
      margin-right:0!important;
    }

/* --- Patch 43 --- */
#page-dashboard .dashboard-brand-logo-final{
      display:none!important;
    }
    #page-dashboard .dashboard-brand-header-final .page-title{
      display:block!important;
    }
    .sidebar-logo{
      min-height:48px!important;
      display:flex!important;
      align-items:center!important;
      justify-content:space-between!important;
      gap:10px!important;
      padding:4px 8px 14px!important;
      margin-bottom:10px!important;
      position:relative!important;
    }
    .sidebar-logo .zoplie-sidebar-word-final{
      display:inline-flex!important;
      align-items:center!important;
      gap:5px!important;
      color:#fff!important;
      font-family:var(--font-display)!important;
      font-size:18px!important;
      font-weight:950!important;
      letter-spacing:.08em!important;
      line-height:1!important;
      white-space:nowrap!important;
    }
    .sidebar-logo .zoplie-sidebar-word-final .e{
      width:22px!important;
      height:22px!important;
      border-radius:7px!important;
      background:linear-gradient(145deg,#00c7b6,#1584f4)!important;
      color:#fff!important;
      display:inline-grid!important;
      place-items:center!important;
      font-size:16px!important;
      font-weight:950!important;
      letter-spacing:-.08em!important;
      transform:skewX(-7deg)!important;
    }
    .sidebar-logo #notif-btn{
      position:relative!important;
      top:auto!important;
      right:auto!important;
      margin:0!important;
      flex:0 0 auto!important;
      width:36px!important;
      height:36px!important;
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      background:#fff!important;
      color:#53647d!important;
      border:1px solid #d8e2ef!important;
      border-radius:13px!important;
      box-shadow:0 8px 18px rgba(15,23,42,.06)!important;
    }
    .sidebar-logo #notif-badge{
      display:flex!important;
      position:absolute!important;
      top:-7px!important;
      right:-7px!important;
      width:17px!important;
      height:17px!important;
      border-radius:50%!important;
      background:#ff2f63!important;
      color:#fff!important;
      font-size:10px!important;
      font-weight:900!important;
      align-items:center!important;
      justify-content:center!important;
      border:2px solid #fff!important;
      line-height:1!important;
      z-index:2!important;
    }

/* --- Patch 44 --- */
#page-dashboard .page-header > div{
      gap:22px!important;
    }
    #page-dashboard .page-header > div > div:last-child{
      gap:14px!important;
      align-items:center!important;
    }
    #dash-hotel-filter{
      min-width:236px!important;
      height:48px!important;
      padding:0 42px 0 16px!important;
      border-radius:15px!important;
      background-color:#fff!important;
      border:1px solid #d9e3f0!important;
      box-shadow:0 8px 18px rgba(15,23,42,.035)!important;
      font-weight:600!important;
    }
    #page-dashboard .page-header button[onclick="initDashboard()"]{
      height:48px!important;
      min-width:128px!important;
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      gap:8px!important;
      padding:0 17px!important;
      border-radius:15px!important;
      border:0!important;
      background:linear-gradient(135deg,#edf4ff,#ffffff)!important;
      color:#2d5be3!important;
      font-size:13px!important;
      font-weight:800!important;
      box-shadow:0 8px 20px rgba(45,91,227,.12), inset 0 0 0 1px #d9e3f0!important;
    }
    #page-dashboard .page-header button[onclick="initDashboard()"]::before{
      content:'↻'!important;
      width:24px!important;
      height:24px!important;
      border-radius:50%!important;
      display:inline-grid!important;
      place-items:center!important;
      background:#2d5be3!important;
      color:#fff!important;
      font-size:14px!important;
      line-height:1!important;
    }
    #page-dashboard .page-header button[onclick="initDashboard()"]:hover{
      transform:translateY(-1px)!important;
      box-shadow:0 12px 26px rgba(45,91,227,.18), inset 0 0 0 1px #cddbf0!important;
    }

/* --- Patch 45 --- */
.sidebar-logo{
      min-height:52px!important;
      padding:6px 8px 14px!important;
      gap:8px!important;
    }
    .sidebar-logo .zoplie-sidebar-word-final{
      display:inline-flex!important;
      align-items:center!important;
      gap:5px!important;
      flex:1 1 auto!important;
      min-width:0!important;
      color:#071d45!important;
      font-family:var(--font-display)!important;
      font-size:17px!important;
      font-weight:950!important;
      letter-spacing:.075em!important;
      line-height:1!important;
      white-space:nowrap!important;
      transform:none!important;
    }
    .sidebar-logo .zoplie-sidebar-word-final .e{
      width:22px!important;
      height:22px!important;
      border-radius:7px!important;
      background:linear-gradient(145deg,#00c7b6,#1584f4)!important;
      color:#fff!important;
      display:inline-grid!important;
      place-items:center!important;
      font-size:16px!important;
      font-weight:950!important;
      letter-spacing:-.08em!important;
      transform:skewX(-7deg)!important;
      flex:0 0 22px!important;
    }
    .sidebar-logo #notif-btn{
      flex:0 0 34px!important;
      width:34px!important;
      height:34px!important;
    }
    @media(max-width:1180px) and (min-width:901px){
      .sidebar-logo .zoplie-sidebar-word-final{
        font-size:15px!important;
        letter-spacing:.045em!important;
      }
      .sidebar-logo .zoplie-sidebar-word-final .e{
        width:20px!important;
        height:20px!important;
        font-size:14px!important;
      }
    }

/* --- Patch 46 --- */
.recaptcha-brand{
      transform:translateX(-14px)!important;
    }

/* --- Patch 47 --- */
#dashboard-tasks-overview-final{
      padding:18px!important;
      display:block!important;
    }
    #dashboard-tasks-overview-final .dash-task-metrics-final,
    #dashboard-tasks-overview-final .dash-task-progress-shell-final,
    #dashboard-tasks-overview-final .dash-task-legend-final{
      display:none!important;
    }
    #dashboard-tasks-overview-final .dash-task-category-bars-final{
      display:grid!important;
      grid-template-columns:repeat(3,minmax(0,1fr))!important;
      gap:16px!important;
      margin:0!important;
      padding:0!important;
    }
    #dashboard-tasks-overview-final .dash-task-category-bars-final>div{
      height:86px!important;
      min-height:86px!important;
      max-height:86px!important;
      padding:16px 17px!important;
      border:1px solid #dfe8f3!important;
      border-radius:16px!important;
      background:linear-gradient(180deg,#fff,#fbfdff)!important;
      box-shadow:none!important;
      display:flex!important;
      flex-direction:column!important;
      justify-content:center!important;
    }
    #dashboard-tasks-overview-final .dash-task-bar-label-final{
      margin:0 0 13px!important;
      display:flex!important;
      align-items:center!important;
      justify-content:space-between!important;
      color:#0f1e3d!important;
      font-size:13px!important;
      font-weight:800!important;
    }
    #dashboard-tasks-overview-final .dash-task-bar-label-final strong{
      font-size:13px!important;
      font-weight:900!important;
      color:#0f1e3d!important;
    }
    #dashboard-tasks-overview-final .dash-task-mini-track-final{
      height:9px!important;
      width:100%!important;
      border-radius:999px!important;
      background:#e9f0f7!important;
      border:0!important;
      overflow:hidden!important;
    }
    #dashboard-tasks-overview-final .dash-task-mini-track-final i{
      height:100%!important;
      display:block!important;
      border-radius:999px!important;
      min-width:0!important;
    }
    #dashboard-tasks-overview-final .dash-task-mini-track-final i.open{background:#00b8a9!important}
    #dashboard-tasks-overview-final .dash-task-mini-track-final i.done{background:#ff2f63!important}
    #dashboard-tasks-overview-final .dash-task-mini-track-final i.hold{background:#f5a400!important}
    @media(max-width:900px){
      #dashboard-tasks-overview-final .dash-task-category-bars-final{
        grid-template-columns:1fr!important;
      }
    }

/* --- Patch 48 --- */
.recaptcha-box{
      width:238px!important;
      height:58px!important;
      min-height:58px!important;
      padding:0 14px!important;
      margin:12px auto 14px!important;
      border-radius:14px!important;
      border:1px solid #d9e3f0!important;
      background:#fff!important;
      box-shadow:0 8px 20px rgba(15,23,42,.045)!important;
      justify-content:center!important;
      gap:18px!important;
    }
    .recaptcha-left{
      gap:9px!important;
      flex:0 0 auto!important;
    }
    .recaptcha-check{
      width:13px!important;
      height:13px!important;
      min-width:13px!important;
      max-width:13px!important;
      min-height:13px!important;
      max-height:13px!important;
      border-radius:50%!important;
      border:1.4px solid #b8c7db!important;
    }
    .recaptcha-text{
      font-size:13px!important;
      color:#0f1e3d!important;
      font-weight:500!important;
    }
    .recaptcha-brand{
      width:31px!important;
      flex:0 0 31px!important;
      transform:none!important;
    }
    .recaptcha-logo{
      width:30px!important;
      height:30px!important;
      border-radius:9px!important;
      box-shadow:0 8px 18px rgba(21,132,244,.16)!important;
    }

/* --- Patch 49 --- */
.email-imap-grid-final{display:grid;grid-template-columns:1.15fr .85fr;gap:14px;align-items:start}
    .email-imap-card-final{border-radius:16px!important}
    .email-imap-note-final{padding:10px 12px;border-radius:14px;background:#f3f7ff;border:1px solid #dfe8f7;color:#60708c;font-size:12px;font-weight:600}
    .email-imap-row-final{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid #e6edf5}
    .email-imap-row-final:last-child{border-bottom:0}
    .email-imap-title-final{font-size:14px;font-weight:850;color:#0f1e3d}
    .email-imap-meta-final{font-size:12px;color:#6f7f99;margin-top:3px}
    .email-imap-actions-final{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}
    .email-imap-actions-final span{padding:5px 9px;border-radius:999px;background:#fff7ed;color:#e07c00;font-size:11px;font-weight:850}
    @media(max-width:980px){.email-imap-grid-final{grid-template-columns:1fr}}

/* --- Patch 50 --- */
.dashboard-tasks-card-final{
      min-height:auto!important;
    }
    #dashboard-tasks-overview-final{
      padding:18px!important;
    }
    #dashboard-tasks-overview-final .dash-task-category-bars-final{
      display:grid!important;
      grid-template-columns:1fr!important;
      gap:12px!important;
      max-width:100%!important;
    }
    #dashboard-tasks-overview-final .dash-task-category-bars-final>div{
      height:62px!important;
      min-height:62px!important;
      max-height:62px!important;
      display:grid!important;
      grid-template-columns:180px 1fr!important;
      align-items:center!important;
      gap:18px!important;
      padding:13px 16px!important;
    }
    #dashboard-tasks-overview-final .dash-task-bar-label-final{
      margin:0!important;
      display:flex!important;
      justify-content:space-between!important;
      gap:12px!important;
      min-width:0!important;
    }
    #dashboard-tasks-overview-final .dash-task-mini-track-final{
      height:10px!important;
    }
    @media(max-width:720px){
      #dashboard-tasks-overview-final .dash-task-category-bars-final>div{
        grid-template-columns:1fr!important;
        height:auto!important;
        max-height:none!important;
        gap:9px!important;
      }
    }

/* --- Patch 51 --- */
.recaptcha-logo{
      box-shadow:none!important;
      filter:none!important;
    }

/* --- Patch 52 --- */
.zoplie-login-wordmark-final,
    .zoplie-sidebar-word-final,
    .dashboard-brand-logo-final{
      display:none!important;
    }
    .login-logo .zoplie-login-img-final{
      display:block!important;
      width:min(260px,82vw)!important;
      height:auto!important;
      margin:0 auto 10px!important;
      object-fit:contain!important;
      mix-blend-mode:multiply!important;
      filter:none!important;
      box-shadow:none!important;
      background:transparent!important;
    }
    .sidebar-logo .zoplie-sidebar-png-final{
      display:block!important;
      width:126px!important;
      height:auto!important;
      object-fit:contain!important;
      mix-blend-mode:multiply!important;
      filter:none!important;
      background:transparent!important;
      flex:1 1 auto!important;
      min-width:0!important;
    }
    .recaptcha-brand-name,
    .recaptcha-privacy{
      display:none!important;
    }
    .recaptcha-brand{
      width:31px!important;
      flex:0 0 31px!important;
      transform:none!important;
    }
    .recaptcha-logo{
      box-shadow:none!important;
      filter:none!important;
    }

/* --- Patch 53 --- */
.login-logo .zoplie-login-img-final{
      display:none!important;
    }
    .login-logo .zoplie-login-wordmark-final{
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      gap:10px!important;
      width:auto!important;
      margin:0 auto 10px!important;
      padding:0!important;
      background:transparent!important;
      filter:none!important;
      box-shadow:none!important;
    }
    .login-logo .zoplie-login-letters-final{
      display:inline-flex!important;
      align-items:center!important;
      height:45px!important;
      color:#071d45!important;
      font-family:var(--font-display)!important;
      font-size:39px!important;
      font-weight:950!important;
      line-height:1!important;
      letter-spacing:.105em!important;
    }
    .login-logo .zoplie-login-e-final{
      width:48px!important;
      height:48px!important;
      border-radius:15px!important;
      background:linear-gradient(145deg,#00c7b6 0%,#1584f4 100%)!important;
      position:relative!important;
      display:block!important;
      overflow:hidden!important;
      box-shadow:none!important;
      transform:none!important;
    }
    .login-logo .zoplie-login-e-final span{
      display:none!important;
    }
    .login-logo .zoplie-login-e-final::before,
    .login-logo .zoplie-login-e-final::after{
      content:''!important;
      position:absolute!important;
      left:14px!important;
      width:22px!important;
      height:6px!important;
      background:#fff!important;
      border-radius:1px!important;
      transform:skewX(-13deg)!important;
      box-shadow:none!important;
    }
    .login-logo .zoplie-login-e-final::before{
      top:13px!important;
    }
    .login-logo .zoplie-login-e-final::after{
      top:29px!important;
    }
    .login-logo .zoplie-login-e-final i{
      display:block!important;
      position:absolute!important;
      left:13px!important;
      top:21px!important;
      width:18px!important;
      height:6px!important;
      background:#fff!important;
      border-radius:1px!important;
      transform:skewX(-13deg)!important;
    }
    .recaptcha-logo{
      width:30px!important;
      height:30px!important;
      border-radius:9px!important;
      background:linear-gradient(145deg,#00c7b6 0%,#1584f4 100%)!important;
      position:relative!important;
      display:block!important;
      overflow:hidden!important;
      box-shadow:none!important;
      filter:none!important;
    }
    .recaptcha-logo::before,
    .recaptcha-logo::after{
      content:''!important;
      position:absolute!important;
      left:9px!important;
      width:14px!important;
      height:4px!important;
      background:#fff!important;
      border-radius:1px!important;
      transform:skewX(-13deg)!important;
      box-shadow:none!important;
    }
    .recaptcha-logo::before{
      top:8px!important;
    }
    .recaptcha-logo::after{
      top:19px!important;
    }
    .recaptcha-logo i{
      display:block!important;
      position:absolute!important;
      left:8px!important;
      top:13px!important;
      width:12px!important;
      height:4px!important;
      background:#fff!important;
      border-radius:1px!important;
      transform:skewX(-13deg)!important;
    }

/* --- Patch 54 --- */
#page-email-corporativo .page-header{display:flex;align-items:center;justify-content:space-between;gap:14px}.email-top-actions-final{display:flex;gap:10px;align-items:center}
    .email-app-shell-final{display:grid;grid-template-columns:230px minmax(360px,.95fr) minmax(340px,1fr);min-height:590px;border:1px solid #dfe7f1;border-radius:18px;background:#fff;overflow:hidden}
    .email-mailbox-sidebar-final{background:#f8fbff;border-right:1px solid #e4ebf4;padding:16px}.email-compose-final{width:100%;height:42px;border:0;border-radius:14px;background:#5674e8;color:#fff;font-weight:850;margin-bottom:18px;cursor:pointer}
    .email-folder-final{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:12px;color:#334155;font-weight:750;font-size:13px}.email-folder-final.active{background:#eaf1ff;color:#2d5be3}
    .email-account-strip-final{margin-top:18px;padding-top:14px;border-top:1px solid #e4ebf4;font-size:12px;color:#334155}.email-account-strip-final div{padding:8px 0}.email-account-strip-final small{display:block;color:#7d8aa2;margin-top:2px}
    .email-message-list-final{border-right:1px solid #e4ebf4;min-width:0}.email-list-toolbar-final{padding:16px;border-bottom:1px solid #e4ebf4;display:flex;align-items:center;justify-content:space-between;gap:12px}.email-list-toolbar-final input{width:190px}
    .email-title-final{font-size:16px;font-weight:900;color:#0f1e3d}.email-muted-final{font-size:12px;color:#7d8aa2;margin-top:2px}
    .email-row-final{width:100%;display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;padding:13px 16px;border:0;border-bottom:1px solid #edf2f7;background:#fff;text-align:left;cursor:pointer}.email-row-final:hover{background:#f8fbff}
    .email-avatar-final{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#eaf1ff;color:#2d5be3;font-weight:900}.email-avatar-final.big{width:44px;height:44px}
    .email-row-main-final strong{display:block;color:#0f1e3d;font-size:13px}.email-row-main-final small{display:block;color:#7d8aa2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:330px}
    .email-row-side-final{text-align:right}.email-row-side-final em{display:block;font-style:normal;color:#00a86b;font-size:11px;font-weight:850}.email-row-side-final small{color:#7d8aa2}
    .email-preview-final{padding:20px;background:#fff}.email-empty-preview-final{height:100%;display:grid;place-items:center;text-align:center;color:#7d8aa2}.email-empty-preview-final span{display:block;font-size:12px;max-width:260px}.email-preview-icon-final{width:54px;height:54px;border-radius:16px;background:linear-gradient(145deg,#00c7b6,#1584f4);color:#fff;display:grid;place-items:center;font-size:32px;font-weight:950;margin:auto auto 10px}
    .email-preview-head-final{display:flex;gap:12px;align-items:center;border-bottom:1px solid #edf2f7;padding-bottom:16px;margin-bottom:18px}.email-preview-head-final h3{font-size:18px;color:#0f1e3d}.email-preview-head-final p{font-size:12px;color:#7d8aa2}
    .email-preview-body-final{font-size:14px;line-height:1.65;color:#334155}.email-signature-placeholder-final{margin-top:28px;padding:14px;border-radius:14px;background:#f8fbff;border:1px dashed #cfd9e7;color:#7d8aa2;font-size:12px}
    .email-settings-modal-final{position:fixed;inset:0;z-index:260;background:rgba(15,23,42,.42);align-items:center;justify-content:center;padding:20px}.email-settings-card-final{width:min(760px,96vw);background:#fff;border-radius:18px;padding:18px;border:1px solid #dfe7f1;box-shadow:0 22px 60px rgba(15,23,42,.20)}.email-settings-head-final{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
    @media(max-width:1180px){.email-app-shell-final{grid-template-columns:190px 1fr}.email-preview-final{display:none}}@media(max-width:760px){#page-email-corporativo .page-header{display:block}.email-top-actions-final{margin-top:12px}.email-app-shell-final{grid-template-columns:1fr}.email-mailbox-sidebar-final{border-right:0;border-bottom:1px solid #e4ebf4}.email-list-toolbar-final{display:block}.email-list-toolbar-final input{width:100%;margin-top:10px}}

/* --- Patch 55 --- */
#stock-tab-proveedores #page-proveedores{
      display:block!important;
    }
    #stock-tab-proveedores #page-proveedores>.page-header{
      display:none!important;
    }
    #stock-tab-proveedores{
      margin-top:0!important;
    }

/* --- Patch 56 --- */
#page-email-corporativo .email-top-actions-final .submit-btn{
      display:none!important;
    }
    #page-email-corporativo .email-top-actions-final .export-btn{
      min-width:148px!important;
      height:44px!important;
      border:0!important;
      border-radius:15px!important;
      background:linear-gradient(135deg,#5674e8,#2d5be3)!important;
      color:#fff!important;
      box-shadow:0 10px 22px rgba(45,91,227,.18)!important;
      justify-content:center!important;
      font-weight:900!important;
      gap:8px!important;
    }
    #page-email-corporativo .email-top-actions-final .export-btn::before{
      content:'+'!important;
      width:22px!important;
      height:22px!important;
      border-radius:50%!important;
      display:inline-grid!important;
      place-items:center!important;
      background:rgba(255,255,255,.18)!important;
      font-size:17px!important;
      line-height:1!important;
    }
    .email-signature-option-final{
      margin:14px 0 12px!important;
      padding:13px 14px!important;
      border:1px solid #dfe8f7!important;
      border-radius:15px!important;
      background:#f8fbff!important;
    }
    .email-signature-option-final .label{
      margin-bottom:8px!important;
    }

/* --- Patch 58 --- */
.demo-center-card-final input,
    .demo-center-card-final select,
    .demo-center-card-final textarea{
      width:100%;border:1px solid var(--border2);border-radius:16px;padding:12px 14px;background:#fff;color:var(--text);font:inherit;outline:none
    }
    .demo-center-card-final textarea{resize:vertical;line-height:1.55}
    .demo-center-grid-final{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
    .demo-center-grid-final>div:last-child{grid-column:1/-1}
    .demo-center-actions-final{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}
    .demo-center-actions-final .primary-btn{width:auto;min-width:220px;border-radius:18px;padding:12px 20px}
    @media(max-width:760px){.demo-center-grid-final{grid-template-columns:1fr}.demo-center-actions-final{justify-content:stretch}.demo-center-actions-final button{width:100%!important}}

/* --- Patch 59 --- */
.demo-sidebar-brand-final{
      font-family:var(--font-display),system-ui,sans-serif!important;
      font-size:22px!important;
      font-weight:900!important;
      letter-spacing:.12em!important;
      color:#0f1e3d!important;
      margin-right:auto!important;
    }
/* --- Patch 60 --- */
#page-superadmin .admin-header-final{
      align-items:center!important;
      gap:18px!important;
    }
    .admin-reset-final{
      width:auto!important;
      padding:11px 18px!important;
      margin-left:auto!important;
      border-radius:999px!important;
    }
    .admin-role-stats-final{
      grid-template-columns:repeat(4,minmax(0,1fr))!important;
      margin-bottom:18px!important;
    }
    .admin-users-card-final{
      border-radius:18px!important;
      padding:20px!important;
      margin-bottom:18px!important;
      overflow:hidden!important;
    }
    .admin-card-title-final{
      color:#13233f!important;
      font-size:15px!important;
      font-weight:900!important;
      margin-bottom:14px!important;
    }
    .admin-user-form-final{
      display:grid!important;
      grid-template-columns:repeat(4,minmax(0,1fr))!important;
      gap:12px!important;
    }
    #page-superadmin input,
    #page-superadmin select,
    #page-superadmin textarea{
      width:100%!important;
      min-height:44px!important;
      border:1px solid #d5dfec!important;
      border-radius:14px!important;
      background:#fff!important;
      color:#13233f!important;
      padding:10px 14px!important;
      font:inherit!important;
      box-shadow:none!important;
    }
    #page-superadmin textarea{
      min-height:86px!important;
      resize:vertical!important;
    }
    .admin-actions-final{
      display:flex!important;
      justify-content:flex-end!important;
      gap:10px!important;
      margin-top:14px!important;
    }
    .admin-create-user-final{
      width:auto!important;
      min-width:190px!important;
      padding:12px 22px!important;
      border-radius:999px!important;
      box-shadow:0 12px 26px rgba(87,119,237,.16)!important;
    }
    .admin-users-table-final{
      width:100%!important;
      border-collapse:separate!important;
      border-spacing:0!important;
      overflow:hidden!important;
      border:1px solid #dfe7f1!important;
      border-radius:16px!important;
    }
    .admin-users-table-final th,
    .admin-users-table-final td{
      padding:14px 16px!important;
      border-bottom:1px solid #e8eef6!important;
      text-align:left!important;
      vertical-align:middle!important;
      font-size:13px!important;
    }
    .admin-users-table-final th{
      color:#334155!important;
      background:#f8fafc!important;
      font-weight:900!important;
    }
    .admin-users-table-final tr:last-child td{border-bottom:0!important}
    .admin-role-pill-final,
    .admin-status-pill-final{
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      min-height:25px!important;
      padding:4px 10px!important;
      border-radius:999px!important;
      font-size:11px!important;
      font-weight:900!important;
    }
    .admin-role-pill-final{background:#e8efff!important;color:#3157d6!important}
    .admin-status-pill-final{background:#e7fff5!important;color:#00996f!important}
    .admin-delete-final{
      width:auto!important;
      min-height:34px!important;
      border-radius:999px!important;
      border:1px solid #ffd2dc!important;
      background:#fff7fa!important;
      color:#e02f5f!important;
      padding:7px 12px!important;
      font-weight:800!important;
      cursor:pointer!important;
    }
    @media(max-width:900px){
      .admin-user-form-final,.admin-role-stats-final{grid-template-columns:1fr!important}
      .admin-actions-final{justify-content:stretch!important;flex-direction:column!important}
      .admin-create-user-final{width:100%!important}
    }

/* --- Patch 61 --- */
.login-logo{
      margin-top:-8px!important;
      margin-bottom:22px!important;
      text-align:center!important;
    }
    .login-logo .zoplie-login-wordmark-final,
    .login-logo svg{
      display:none!important;
    }
    .login-logo .zoplie-login-img-final{
      display:block!important;
      width:min(236px,72vw)!important;
      height:auto!important;
      max-height:82px!important;
      object-fit:contain!important;
      object-position:center!important;
      margin:0 auto 10px!important;
      mix-blend-mode:multiply!important;
      filter:none!important;
      box-shadow:none!important;
      background:transparent!important;
    }
    .login-logo p{
      max-width:min(236px,72vw)!important;
      margin:8px auto 0!important;
      text-align:center!important;
      color:#71809a!important;
      letter-spacing:0!important;
    }
    .sidebar-logo .zoplie-sidebar-word-final,
    .sidebar-logo .zoplie-app-e-final,
    .sidebar-logo .logo-text{
      display:none!important;
    }
    .sidebar-logo .zoplie-sidebar-png-final{
      display:block!important;
      width:112px!important;
      max-width:112px!important;
      height:auto!important;
      object-fit:contain!important;
      object-position:left center!important;
      mix-blend-mode:multiply!important;
      filter:none!important;
      box-shadow:none!important;
      background:transparent!important;
      margin-right:auto!important;
    }
    .recaptcha-logo{
      display:grid!important;
      place-items:center!important;
      width:30px!important;
      height:30px!important;
      border-radius:8px!important;
      background:linear-gradient(135deg,#08c7ad,#2371f1)!important;
      color:#fff!important;
      box-shadow:none!important;
      filter:none!important;
    }
    .recaptcha-logo::before,
    .recaptcha-logo::after{
      content:none!important;
    }
    .recaptcha-logo i{
      display:none!important;
    }
    .recaptcha-logo{
      font-size:0!important;
    }
    .recaptcha-logo::selection{background:transparent!important}
    .recaptcha-logo:empty::after{
      content:'E'!important;
      display:block!important;
      color:#fff!important;
      font-family:var(--font-display),system-ui,sans-serif!important;
      font-size:21px!important;
      font-weight:900!important;
      font-style:italic!important;
      line-height:1!important;
      transform:skew(-8deg)!important;
    }

/* --- Patch 62 --- */
#login-screen{
      position:fixed!important;
      inset:0!important;
      z-index:9999!important;
      min-height:100dvh!important;
      overflow:auto!important;
      background:linear-gradient(160deg,#eef2ff 0%,#f7f9ff 52%,#eff4ff 100%)!important;
    }
    .login-orb,.recaptcha-box{display:none!important}
    .login-box{animation:none!important;transform:none!important}
    .login-card{backdrop-filter:none!important}
    .login-logo{
      background:transparent!important;
      border:0!important;
      box-shadow:none!important;
      padding:0!important;
    }
    .login-logo img,
    .login-logo svg{
      display:none!important;
    }
    .zoplie-login-wordmark-fixed{
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      gap:8px!important;
      margin:0 auto 12px!important;
      background:transparent!important;
      border:0!important;
      box-shadow:none!important;
      color:#0f1e3d!important;
      font-family:var(--font-display),Arial,sans-serif!important;
      font-size:34px!important;
      font-weight:900!important;
      line-height:1!important;
      letter-spacing:.11em!important;
    }
    .zoplie-login-wordmark-fixed .zoplie-login-e-fixed{
      width:36px!important;
      height:36px!important;
      display:inline-grid!important;
      place-items:center!important;
      border-radius:10px!important;
      background:linear-gradient(145deg,#00c7b6 0%,#1584f4 100%)!important;
      color:#fff!important;
      font-size:29px!important;
      font-weight:950!important;
      letter-spacing:-.08em!important;
      transform:translateY(-1px) skewX(-7deg)!important;
      position:relative!important;
      overflow:hidden!important;
      box-shadow:0 12px 24px rgba(21,132,244,.18)!important;
    }
    .zoplie-login-wordmark-fixed .zoplie-login-e-fixed::before{
      content:''!important;
      position:absolute!important;
      left:8px!important;
      top:8px!important;
      width:2px!important;
      height:20px!important;
      border-radius:999px!important;
      background:rgba(255,255,255,.42)!important;
    }
    .zoplie-login-wordmark-fixed .zoplie-login-e-fixed span{
      position:relative!important;
      z-index:1!important;
    }

/* --- Patch 63 --- */
.login-logo img,
    .login-logo svg,
    .login-logo .zoplie-login-img-final{
      display:none!important;
    }
    .login-logo{
      background:transparent!important;
      box-shadow:none!important;
      border:0!important;
      padding:0!important;
      margin-bottom:1.4rem!important;
    }
    .login-logo .zoplie-login-wordmark-fixed{
      display:inline-flex!important;
      margin:0 auto 14px!important;
    }
    .simple-captcha-fixed{
      display:grid!important;
      grid-template-columns:auto 1fr 76px!important;
      align-items:center!important;
      gap:10px!important;
      width:100%!important;
      min-height:48px!important;
      margin:1rem 0 .75rem!important;
      border:1.5px solid var(--border2)!important;
      border-radius:var(--r-md)!important;
      background:#f8fbff!important;
      color:#0f1e3d!important;
      padding:8px 10px!important;
      box-shadow:var(--shadow-sm)!important;
    }
    .simple-captcha-fixed input{
      width:100%!important;
      height:32px!important;
      margin:0!important;
      border:1.5px solid var(--border2)!important;
      border-radius:10px!important;
      background:#fff!important;
      text-align:center!important;
      color:#0f1e3d!important;
      font-weight:800!important;
      box-shadow:none!important;
    }
    .simple-captcha-fixed label{
      font-size:12px!important;
      font-weight:750!important;
      color:#536681!important;
      line-height:1.25!important;
      text-transform:none!important;
      letter-spacing:0!important;
      margin:0!important;
    }
    .simple-captcha-fixed strong{
      display:block!important;
      color:#0f1e3d!important;
      font-size:13px!important;
      margin-top:1px!important;
    }
    .simple-captcha-icon{
      width:28px!important;
      height:28px!important;
      display:grid!important;
      place-items:center!important;
      border-radius:8px!important;
      background:linear-gradient(145deg,#eaf1ff,#fff)!important;
      color:var(--accent)!important;
      font-weight:900!important;
    }

/* --- Patch 64 --- */
#notif-btn,
    #notif-badge,
    #notif-panel{
      display:none!important;
    }
    .sidebar-logo{
      justify-content:flex-start!important;
      gap:0!important;
    }

/* --- Patch 65 --- */
.sidebar-logo{
      width:100%!important;
      min-width:0!important;
      display:flex!important;
      align-items:center!important;
      justify-content:space-between!important;
      gap:10px!important;
      padding:4px 0 20px!important;
      margin-bottom:10px!important;
      overflow:visible!important;
    }
    .sidebar-logo .logo-text.zoplie-wordmark,
    .sidebar-logo .zoplie-sidebar-brand-stable-final,
    .sidebar-logo .zoplie-sidebar-word-final{
      flex:1 1 auto!important;
      min-width:0!important;
      max-width:154px!important;
      display:inline-flex!important;
      align-items:center!important;
      justify-content:flex-start!important;
      gap:5px!important;
      color:#0f1e3d!important;
      font-family:var(--font-display),Arial,sans-serif!important;
      font-size:27px!important;
      font-weight:900!important;
      line-height:1!important;
      letter-spacing:.08em!important;
      white-space:nowrap!important;
      transform:none!important;
    }
    .sidebar-logo .logo-text.zoplie-wordmark .zoplie-e-mark,
    .sidebar-logo .zoplie-sidebar-brand-stable-final .zoplie-e-mark,
    .sidebar-logo .zoplie-sidebar-word-final .e{
      width:34px!important;
      height:34px!important;
      min-width:34px!important;
      margin-left:0!important;
      border-radius:10px!important;
      display:inline-grid!important;
      place-items:center!important;
      background:linear-gradient(145deg,#00c7b6 0%,#1584f4 100%)!important;
      color:#fff!important;
      font-size:27px!important;
      font-weight:950!important;
      letter-spacing:-.08em!important;
      transform:translateY(-1px) skewX(-7deg)!important;
      box-shadow:0 12px 24px rgba(21,132,244,.16)!important;
      overflow:hidden!important;
    }
    .sidebar-logo .zoplie-sidebar-png-final,
    .sidebar-logo .zoplie-app-e-final{
      display:none!important;
    }
/* --- Patch 66 --- */
#page-integraciones .secondary-btn,
    #page-integraciones .submit-btn{
      appearance:none!important;
      -webkit-appearance:none!important;
      border-radius:12px!important;
      border:1px solid var(--border2)!important;
      font-family:var(--font-display),var(--font-body),Arial,sans-serif!important;
      font-size:13px!important;
      font-weight:800!important;
      line-height:1!important;
      min-height:40px!important;
      padding:0 15px!important;
      display:inline-flex!important;
      align-items:center!important;
      justify-content:center!important;
      gap:8px!important;
      cursor:pointer!important;
      white-space:nowrap!important;
      box-shadow:var(--shadow-sm)!important;
      text-decoration:none!important;
    }
    #page-integraciones .secondary-btn{
      background:var(--surface)!important;
      color:var(--accent)!important;
    }
    #page-integraciones .secondary-btn:hover{
      background:var(--accent-soft)!important;
      border-color:rgba(45,91,227,.28)!important;
      transform:translateY(-1px)!important;
    }
    #page-integraciones .submit-btn{
      background:var(--grad1)!important;
      color:#fff!important;
      border-color:transparent!important;
    }
    #page-integraciones .submit-btn:hover{
      transform:translateY(-1px)!important;
      box-shadow:0 10px 24px rgba(45,91,227,.28)!important;
    }
/* --- Patch 67 --- */
html,
    body{
      width:100%!important;
      max-width:100%!important;
      overflow-x:hidden!important;
      -webkit-text-size-adjust:100%!important;
    }
    *,*::before,*::after{box-sizing:border-box!important}
    .main,
    .page-header,
    .card,
    .stat-card,
    .page-tabs,
    .toast{
      max-width:100%!important;
    }
    .main,
    .card,
    .stat-card,
    .page-header,
    .page-tabs,
    .export-btn,
    .filter-btn,
    .submit-btn,
    .save-btn,
    .btn-primary{
      min-width:0!important;
    }
    .page-title,
    .page-sub,
    .label,
    .card,
    .stat-card,
    .export-btn,
    .filter-btn,
    .submit-btn,
    .save-btn,
    .btn-primary,
    td,
    th{
      overflow-wrap:anywhere!important;
      word-break:normal!important;
    }
    .toast{
      width:max-content!important;
      max-width:calc(100vw - 24px)!important;
      white-space:normal!important;
      text-align:center!important;
      bottom:calc(env(safe-area-inset-bottom,0px) + 16px)!important;
      padding:11px 14px!important;
      line-height:1.35!important;
    }
    @media(max-width:760px){
      body{background:#f6f8fc!important}
      .menu-toggle{
        top:calc(env(safe-area-inset-top,0px) + 12px)!important;
        left:12px!important;
        width:44px!important;
        height:44px!important;
        align-items:center!important;
        justify-content:center!important;
        border-radius:15px!important;
      }
      .main{
        width:100%!important;
        max-width:100vw!important;
        margin-left:0!important;
        padding:calc(env(safe-area-inset-top,0px) + 70px) 12px calc(env(safe-area-inset-bottom,0px) + 18px)!important;
        overflow-x:hidden!important;
      }
      .page-header{
        display:flex!important;
        flex-direction:column!important;
        align-items:stretch!important;
        gap:12px!important;
        padding-left:54px!important;
        margin-bottom:16px!important;
      }
      .page-header > div{
        min-width:0!important;
        max-width:100%!important;
      }
      .page-title{
        font-size:clamp(20px,7.2vw,28px)!important;
        line-height:1.12!important;
        white-space:normal!important;
      }
      .page-sub{
        font-size:14px!important;
        line-height:1.35!important;
        white-space:normal!important;
      }
      .card,
      .stat-card{
        width:100%!important;
        border-radius:16px!important;
        overflow:hidden!important;
      }
      input,
      select,
      textarea,
      button,
      a.export-btn{
        max-width:100%!important;
      }
      .page-tabs{
        display:flex!important;
        flex-wrap:nowrap!important;
        overflow-x:auto!important;
        overflow-y:hidden!important;
        -webkit-overflow-scrolling:touch!important;
        scrollbar-width:none!important;
      }
      .page-tabs::-webkit-scrollbar{display:none!important}
      .page-tab{
        flex:0 0 auto!important;
        white-space:nowrap!important;
        min-width:max-content!important;
      }
      .card canvas,
      canvas{
        display:block!important;
        width:100%!important;
        max-width:100%!important;
      }
      #page-dashboard .page-header > div:last-child{
        width:100%!important;
        display:grid!important;
        grid-template-columns:minmax(0,1fr) auto!important;
        gap:10px!important;
      }
      #page-dashboard .page-header select,
      #page-dashboard .page-header button{
        width:100%!important;
        min-height:48px!important;
        font-size:16px!important;
      }
      #page-dashboard > div[style*="grid-template-columns"]{
        width:100%!important;
        min-width:0!important;
        gap:12px!important;
      }
      #page-dashboard > div[style*="repeat(4,1fr)"]{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
      }
      #page-dashboard > div[style*="2fr 1fr"],
      #page-dashboard > div[style*="1fr 1fr"]{
        grid-template-columns:1fr!important;
      }
      #page-dashboard .stat-card{
        padding:16px!important;
        min-height:122px!important;
      }
      #page-dashboard .stat-num{
        font-size:clamp(28px,11vw,40px)!important;
        line-height:1!important;
      }
      #page-dashboard .stat-label{
        font-size:15px!important;
        line-height:1.25!important;
      }
      #page-dashboard .card{
        padding:14px!important;
      }
      #page-dashboard .card .label{
        font-size:13px!important;
        line-height:1.25!important;
      }
      #page-mantenimiento > .card,
      #page-mantenimiento #mant-alertas,
      #page-mantenimiento #mant-revisiones-list,
      #page-mantenimiento #mant-equipos-list{
        width:100%!important;
        min-width:0!important;
      }
      #page-mantenimiento .card > div[style*="grid-template-columns"]{
        grid-template-columns:1fr!important;
        gap:12px!important;
      }
      #page-mantenimiento #mant-revisiones-list .card > div,
      #page-mantenimiento #mant-equipos-list .card{
        display:flex!important;
        flex-direction:column!important;
        align-items:flex-start!important;
        gap:12px!important;
      }
      #page-mantenimiento #mant-revisiones-list .card > div > div,
      #page-mantenimiento #mant-equipos-list .card > div{
        width:100%!important;
        min-width:0!important;
      }
      #page-mantenimiento #mant-revisiones-list .card > div > div:last-child{
        width:100%!important;
        display:grid!important;
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
        gap:8px!important;
        justify-content:stretch!important;
      }
      #page-mantenimiento #mant-revisiones-list .export-btn{
        width:100%!important;
        min-width:0!important;
        min-height:40px!important;
        padding:9px 8px!important;
        display:inline-flex!important;
        align-items:center!important;
        justify-content:center!important;
        white-space:normal!important;
        text-align:center!important;
        line-height:1.15!important;
      }
      #page-mantenimiento #mant-revisiones-list .card span,
      #page-mantenimiento #mant-equipos-list .card span{
        max-width:100%!important;
        white-space:normal!important;
      }
      #page-mantenimiento #mant-alertas > div{
        font-size:14px!important;
        line-height:1.35!important;
      }
    }
    @media(max-width:430px){
      .main{
        padding-left:10px!important;
        padding-right:10px!important;
      }
      .page-header{
        padding-left:50px!important;
      }
      #page-dashboard .page-header > div:last-child{
        grid-template-columns:1fr!important;
      }
      #page-dashboard > div[style*="repeat(4,1fr)"]{
        grid-template-columns:1fr!important;
      }
      #page-dashboard .stat-card{
        min-height:108px!important;
      }
      #page-mantenimiento #mant-revisiones-list .card > div > div:last-child{
        grid-template-columns:1fr!important;
      }
      #page-mantenimiento .page-tab{
        font-size:13px!important;
        padding-left:12px!important;
        padding-right:12px!important;
      }
    }

/* --- Patch 68 --- */
@media(max-width:820px){
      html,body{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow-x:hidden!important;
      }
      body{
        position:relative!important;
        touch-action:pan-y!important;
      }
      .main{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        margin:0!important;
        padding:calc(env(safe-area-inset-top,0px) + 104px) 14px calc(env(safe-area-inset-bottom,0px) + 22px)!important;
        overflow-x:hidden!important;
      }
      .menu-toggle{
        display:flex!important;
        position:fixed!important;
        top:calc(env(safe-area-inset-top,0px) + 18px)!important;
        left:16px!important;
        z-index:220!important;
        width:58px!important;
        height:58px!important;
        padding:0!important;
        align-items:center!important;
        justify-content:center!important;
        border-radius:18px!important;
        background:#fff!important;
        border:1px solid #dde5ef!important;
        box-shadow:0 12px 28px rgba(15,30,61,.16)!important;
      }
      .menu-toggle svg{
        width:28px!important;
        height:28px!important;
        stroke-width:2.25!important;
      }
      .overlay.show{
        display:block!important;
        position:fixed!important;
        inset:0!important;
        z-index:180!important;
        background:rgba(15,23,42,.42)!important;
        backdrop-filter:blur(8px)!important;
      }
      .sidebar{
        position:fixed!important;
        inset:0 auto 0 0!important;
        width:min(92vw,420px)!important;
        max-width:none!important;
        height:100dvh!important;
        min-height:100dvh!important;
        transform:translateX(-104%)!important;
        z-index:210!important;
        padding:calc(env(safe-area-inset-top,0px) + 22px) 18px calc(env(safe-area-inset-bottom,0px) + 18px)!important;
        overflow-y:auto!important;
        overflow-x:hidden!important;
        border-right:1px solid #dfe6f0!important;
        box-shadow:18px 0 45px rgba(15,23,42,.18)!important;
      }
      .sidebar.open{
        transform:translateX(0)!important;
      }
      .sidebar-logo{
        margin:0 0 30px!important;
        padding:0!important;
      }
      .sidebar-logo svg,
      .zoplie-brand-svg{
        width:min(64vw,230px)!important;
        max-width:100%!important;
      }
      .nav-section{display:none!important}
      .nav-item{
        width:100%!important;
        min-height:54px!important;
        margin:0 0 7px!important;
        padding:0 18px!important;
        border-radius:16px!important;
        display:flex!important;
        align-items:center!important;
        gap:14px!important;
        font-size:18px!important;
        line-height:1.15!important;
        font-weight:750!important;
        letter-spacing:0!important;
        white-space:normal!important;
      }
      .nav-item svg{
        width:24px!important;
        height:24px!important;
        flex:0 0 24px!important;
        stroke-width:1.8!important;
      }
      .sidebar-bottom{
        margin-top:22px!important;
        padding-top:18px!important;
      }
      .user-chip{
        min-height:74px!important;
        border-radius:18px!important;
        padding:14px!important;
      }
      .user-avatar{
        width:48px!important;
        height:48px!important;
        font-size:17px!important;
      }
      .user-name{font-size:17px!important;line-height:1.15!important}
      .user-role{font-size:13px!important}
      .page-header{
        width:100%!important;
        max-width:100%!important;
        padding:0!important;
        margin:0 0 18px!important;
        display:flex!important;
        flex-direction:column!important;
        align-items:stretch!important;
        gap:14px!important;
      }
      .page-header > div{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
      }
      .page-title{
        font-size:clamp(30px,10vw,42px)!important;
        line-height:1.05!important;
        margin:0!important;
      }
      .page-sub{
        font-size:18px!important;
        line-height:1.35!important;
      }
      #page-dashboard .page-header > div:last-child{
        width:100%!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
      }
      #page-dashboard .page-header select,
      #page-dashboard .page-header button{
        width:100%!important;
        min-width:0!important;
        min-height:58px!important;
        justify-content:center!important;
        font-size:18px!important;
        border-radius:18px!important;
      }
      #page-dashboard > div[style*="grid-template-columns"]{
        display:grid!important;
        grid-template-columns:1fr!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        gap:14px!important;
        margin-bottom:14px!important;
        overflow:visible!important;
      }
      #page-dashboard .stat-card{
        min-height:132px!important;
        padding:22px!important;
        border-radius:20px!important;
      }
      #page-dashboard .stat-num{
        font-size:clamp(44px,16vw,68px)!important;
        line-height:.95!important;
        margin-bottom:10px!important;
      }
      #page-dashboard .stat-label{
        font-size:19px!important;
        line-height:1.22!important;
      }
      #page-dashboard .card{
        padding:16px!important;
        border-radius:20px!important;
      }
      #page-dashboard .card canvas{
        max-height:250px!important;
      }
      .page-tabs{
        width:100%!important;
        max-width:100%!important;
      }
      #page-mantenimiento .page-tabs{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        overflow:visible!important;
        padding:8px!important;
        border-radius:18px!important;
      }
      #page-mantenimiento .page-tab{
        width:100%!important;
        min-height:52px!important;
        justify-content:center!important;
        font-size:17px!important;
        border-radius:14px!important;
      }
      #page-mantenimiento .card,
      #page-mantenimiento #mant-alertas > div{
        border-radius:20px!important;
      }
      #page-mantenimiento #mant-revisiones-list .card > div,
      #page-mantenimiento #mant-equipos-list .card{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:14px!important;
      }
      #page-mantenimiento #mant-revisiones-list .card > div > div:last-child{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:9px!important;
        width:100%!important;
      }
      #page-mantenimiento #mant-revisiones-list .export-btn{
        width:100%!important;
        min-height:48px!important;
        font-size:15px!important;
        border-radius:15px!important;
      }
    }
    @media(max-width:390px){
      .main{
        padding-left:12px!important;
        padding-right:12px!important;
      }
      .page-title{font-size:30px!important}
      .page-sub{font-size:16px!important}
      #page-dashboard .stat-card{min-height:118px!important;padding:18px!important}
      #page-dashboard .stat-label{font-size:17px!important}
      .nav-item{font-size:17px!important;min-height:52px!important}
    }

/* --- Patch 69 --- */
@media(max-width:820px){
      #page-manuales{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow-x:hidden!important;
      }
      #page-manuales .page-header{
        padding:0!important;
        margin-bottom:18px!important;
      }
      #page-manuales .page-title{
        font-size:clamp(30px,10vw,42px)!important;
        line-height:1.05!important;
      }
      #page-manuales .page-sub{
        font-size:17px!important;
        line-height:1.35!important;
      }
      #page-manuales > .card,
      #page-manuales #manual-viewer{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow:hidden!important;
      }
      #page-manuales > .card > div[style*="grid-template-columns"],
      #page-manuales > div[style*="grid-template-columns"]{
        display:grid!important;
        grid-template-columns:1fr!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        gap:14px!important;
        align-items:stretch!important;
      }
      #page-manuales input,
      #page-manuales select,
      #page-manuales button,
      #page-manuales .export-btn,
      #page-manuales .submit-btn{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        min-height:52px!important;
        font-size:16px!important;
        border-radius:16px!important;
      }
      #manual-file{
        display:none!important;
      }
      #manual-file-ui{
        width:100%!important;
        max-width:100%!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
      }
      #manual-file-ui .export-btn{
        justify-content:center!important;
      }
      #manual-file-name{
        width:100%!important;
        max-width:100%!important;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
        overflow:visible!important;
        text-overflow:clip!important;
        font-size:13px!important;
        line-height:1.3!important;
      }
      #manual-search,
      #manual-hotel-filter{
        margin-bottom:10px!important;
      }
      #manual-list{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        display:grid!important;
        gap:10px!important;
      }
      #manual-list > div{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
      }
      #manual-list div[onclick^="verManual"]{
        min-height:72px!important;
        padding:13px!important;
        border-radius:16px!important;
      }
      #manual-list div[onclick^="verManual"] > div:last-child{
        min-width:0!important;
        max-width:100%!important;
      }
      #manual-list div[onclick^="verManual"] > div:last-child > div:first-child{
        white-space:normal!important;
        overflow:visible!important;
        text-overflow:clip!important;
        line-height:1.25!important;
        overflow-wrap:anywhere!important;
      }
      #manual-viewer{
        min-height:0!important;
        padding:14px!important;
        border-radius:20px!important;
      }
      #manual-viewer > div:first-child{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
        align-items:start!important;
      }
      #manual-viewer > div:first-child button{
        width:100%!important;
        min-height:46px!important;
      }
      #manual-viewer iframe,
      #manual-viewer pre,
      #manual-viewer img,
      #manual-viewer div[style*="height:430px"]{
        width:100%!important;
        max-width:100%!important;
      }
      #manual-viewer iframe,
      #manual-viewer pre,
      #manual-viewer div[style*="height:430px"]{
        height:min(58vh,430px)!important;
        min-height:260px!important;
      }
      #manual-viewer img{
        height:auto!important;
        max-height:min(58vh,430px)!important;
      }
    }
    @media(max-width:390px){
      #page-manuales .page-title{font-size:30px!important}
      #page-manuales .page-sub{font-size:16px!important}
      #manual-viewer{padding:12px!important}
      #manual-viewer iframe,
      #manual-viewer pre,
      #manual-viewer div[style*="height:430px"]{
        min-height:230px!important;
      }
    }

/* --- Patch 70 --- */
@media(max-width:820px){
      #page-incidencias{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow-x:hidden!important;
      }
      #page-incidencias .page-header{
        padding:0!important;
        margin-bottom:18px!important;
      }
      #page-incidencias .page-title{
        font-size:clamp(30px,10vw,42px)!important;
        line-height:1.05!important;
      }
      #page-incidencias .page-sub{
        font-size:17px!important;
        line-height:1.35!important;
      }
      #page-incidencias #push-banner{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
        align-items:stretch!important;
      }
      #page-incidencias #push-banner button{
        width:100%!important;
        min-height:46px!important;
        font-size:15px!important;
        border-radius:15px!important;
      }
      #page-incidencias #stats-grid{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
        width:100%!important;
        margin-bottom:16px!important;
      }
      #page-incidencias #stats-grid .stat-card{
        width:100%!important;
        min-height:112px!important;
        padding:18px!important;
        border-radius:20px!important;
      }
      #page-incidencias #stats-grid .stat-num{
        font-size:clamp(38px,14vw,58px)!important;
        line-height:.95!important;
        margin-bottom:8px!important;
      }
      #page-incidencias #stats-grid .stat-label{
        font-size:18px!important;
        line-height:1.2!important;
      }
      #page-incidencias .page-tabs{
        width:100%!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        overflow:visible!important;
        padding:8px!important;
        margin-bottom:16px!important;
        border-radius:18px!important;
      }
      #page-incidencias .page-tab{
        width:100%!important;
        min-height:52px!important;
        font-size:17px!important;
        border-radius:14px!important;
        white-space:normal!important;
      }
      #page-incidencias #tab-nueva{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:14px!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow:visible!important;
      }
      #page-incidencias #tab-nueva > .card,
      #page-incidencias #submit-btn{
        grid-column:1!important;
        grid-row:auto!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        margin:0!important;
      }
      #page-incidencias #tab-nueva > .card{
        padding:16px!important;
        border-radius:20px!important;
        overflow:hidden!important;
      }
      #page-incidencias .row2,
      #page-incidencias .sw-grid,
      #page-incidencias .prio-row{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
      }
      #page-incidencias input,
      #page-incidencias select,
      #page-incidencias textarea{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        min-height:52px!important;
        font-size:16px!important;
        border-radius:16px!important;
        padding:12px 14px!important;
      }
      #page-incidencias textarea#desc{
        min-height:132px!important;
        line-height:1.4!important;
      }
      #page-incidencias .label{
        font-size:13px!important;
        line-height:1.25!important;
        margin-bottom:8px!important;
      }
      #page-incidencias .sw-btn{
        width:100%!important;
        min-width:0!important;
        min-height:68px!important;
        padding:14px!important;
        border-radius:18px!important;
        display:grid!important;
        grid-template-columns:auto 1fr!important;
        grid-template-areas:"dot name" "dot sub"!important;
        column-gap:12px!important;
        row-gap:2px!important;
        align-items:center!important;
        text-align:left!important;
      }
      #page-incidencias .sw-dot{grid-area:dot!important}
      #page-incidencias .sw-name{
        grid-area:name!important;
        font-size:16px!important;
        line-height:1.15!important;
        white-space:normal!important;
        overflow-wrap:anywhere!important;
      }
      #page-incidencias .sw-sub{
        grid-area:sub!important;
        font-size:12px!important;
        line-height:1.2!important;
        white-space:normal!important;
      }
      #page-incidencias .prio-btn{
        width:100%!important;
        min-height:50px!important;
        font-size:16px!important;
        border-radius:16px!important;
        white-space:normal!important;
      }
      #page-incidencias #submit-btn{
        min-height:56px!important;
        padding:14px 16px!important;
        font-size:17px!important;
        border-radius:18px!important;
        justify-self:stretch!important;
        transform:none!important;
      }
      #page-incidencias #tab-registro{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow-x:hidden!important;
      }
      #page-incidencias .toolbar{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
        width:100%!important;
      }
      #page-incidencias .filters{
        width:100%!important;
        display:grid!important;
        grid-template-columns:1fr 1fr!important;
        gap:8px!important;
      }
      #page-incidencias .filter-btn,
      #page-incidencias .export-btn{
        width:100%!important;
        min-width:0!important;
        min-height:46px!important;
        padding:10px!important;
        font-size:14px!important;
        border-radius:15px!important;
        white-space:normal!important;
        justify-content:center!important;
      }
      #inc-list{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        display:grid!important;
        gap:12px!important;
      }
      #inc-list > div{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow:hidden!important;
      }
      #inc-list .card,
      #inc-list > div[style*="border"]{
        border-radius:18px!important;
        padding:14px!important;
      }
      #inc-list table,
      #inc-list thead,
      #inc-list tbody,
      #inc-list tr,
      #inc-list td,
      #inc-list th{
        display:block!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        white-space:normal!important;
      }
      #inc-list select,
      #inc-list button,
      #inc-list .status-select{
        width:100%!important;
        min-height:44px!important;
        margin-top:8px!important;
      }
    }
    @media(max-width:390px){
      #page-incidencias .page-title{font-size:30px!important}
      #page-incidencias .page-sub{font-size:16px!important}
      #page-incidencias .filters{grid-template-columns:1fr!important}
      #page-incidencias #stats-grid .stat-card{min-height:104px!important;padding:16px!important}
      #page-incidencias #stats-grid .stat-label{font-size:16px!important}
    }

/* --- Patch 71 --- */
@media(max-width:820px){
      .main > [id^="page-"]{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow-x:hidden!important;
      }
      .main > [id^="page-"] > div[style*="grid-template-columns"],
      .main > [id^="page-"] > .card > div[style*="grid-template-columns"],
      .main > [id^="page-"] .card > div[style*="grid-template-columns:1fr 1fr"],
      .main > [id^="page-"] .card > div[style*="grid-template-columns:1fr 1fr 1fr"],
      .main > [id^="page-"] .card > div[style*="grid-template-columns:1fr 1fr 1fr auto"]{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
      }
      .main > [id^="page-"] input,
      .main > [id^="page-"] select,
      .main > [id^="page-"] textarea,
      .main > [id^="page-"] button,
      .main > [id^="page-"] .submit-btn,
      .main > [id^="page-"] .export-btn,
      .main > [id^="page-"] .filter-btn{
        max-width:100%!important;
        min-width:0!important;
      }
      #page-stock .page-tabs,
      #page-personal .page-tabs,
      #page-informes .page-tabs,
      #page-reportes .page-tabs,
      #page-reservas .page-tabs,
      #page-solicitud-huespedes .page-tabs,
      #page-integraciones .page-tabs,
      #page-admin .page-tabs,
      #page-superadmin .page-tabs{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        overflow:visible!important;
        padding:8px!important;
        border-radius:18px!important;
      }
      #page-stock .page-tab,
      #page-personal .page-tab,
      #page-informes .page-tab,
      #page-reportes .page-tab,
      #page-reservas .page-tab,
      #page-solicitud-huespedes .page-tab,
      #page-integraciones .page-tab,
      #page-admin .page-tab,
      #page-superadmin .page-tab{
        width:100%!important;
        min-height:50px!important;
        justify-content:center!important;
        white-space:normal!important;
        font-size:16px!important;
        border-radius:14px!important;
      }
      #page-incidencias #tab-nueva{
        grid-template-columns:1fr!important;
      }
      #page-incidencias #tab-nueva > *,
      #page-incidencias #tab-nueva > .card:nth-of-type(1),
      #page-incidencias #tab-nueva > .card:nth-of-type(2),
      #page-incidencias #tab-nueva > .card:nth-of-type(3),
      #page-incidencias #submit-btn{
        grid-column:1 / -1!important;
        grid-row:auto!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        justify-self:stretch!important;
      }
      #page-incidencias #tab-nueva > .card:nth-of-type(2),
      #page-incidencias #tab-nueva > .card:nth-of-type(3){
        height:auto!important;
        min-height:0!important;
      }
      #page-incidencias .row2,
      #page-incidencias .sw-grid,
      #page-incidencias .prio-row{
        grid-template-columns:1fr!important;
      }
      #page-manuales .card > div:first-child,
      #page-manuales .card > div[style*="justify-content:space-between"]{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
      }
      #page-manuales .card > div:first-child .label{
        white-space:normal!important;
        overflow-wrap:anywhere!important;
      }
      #page-informes .stats-grid,
      #page-informes [style*="repeat(4,1fr)"],
      #page-informes [style*="repeat(4, 1fr)"]{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
      }
      #page-informes .stat-card{
        width:100%!important;
        min-height:96px!important;
        padding:18px!important;
      }
      #page-informes .card,
      #page-reportes .card{
        overflow-x:auto!important;
      }
      #page-informes table,
      #page-reportes table{
        min-width:640px!important;
      }
      #page-integraciones > div[style*="grid-template-columns"],
      #page-integraciones .card > div[style*="grid-template-columns"]{
        grid-template-columns:1fr!important;
      }
      #page-integraciones code,
      #page-integraciones pre,
      #page-integraciones textarea,
      #api-code-final{
        white-space:pre-wrap!important;
        overflow-wrap:anywhere!important;
        word-break:break-word!important;
      }
      #page-admin .card > div[style*="grid-template-columns"],
      #wa-numeros-config,
      #wa-alertas-config{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
      }
      #page-admin .submit-btn,
      #page-admin .btn-primary,
      #page-admin .export-btn{
        width:100%!important;
      }
      #page-solicitud-huespedes .card > div[style*="grid-template-columns"],
      #page-solicitud-huespedes .guest-form-row-main,
      #page-solicitud-huespedes .guest-form-row-details{
        grid-template-columns:1fr!important;
      }
      #page-solicitud-huespedes .garage-week-shell,
      #page-reservas .garage-week-shell,
      #page-personal .garage-week-shell,
      #page-solicitud-huespedes .card:has(.garage-grid),
      #page-reservas .card:has(.garage-grid),
      #page-personal .card:has(.garage-grid){
        overflow-x:auto!important;
        -webkit-overflow-scrolling:touch!important;
      }
      #page-solicitud-huespedes .garage-grid,
      #page-reservas .garage-grid,
      #page-personal .garage-grid{
        grid-template-columns:92px repeat(7,118px)!important;
        min-width:918px!important;
      }
      #page-solicitud-huespedes #unified-list > div,
      #page-solicitud-huespedes #guest-request-list > div{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
      }
      #page-solicitud-huespedes #unified-list button,
      #page-solicitud-huespedes #guest-request-list button{
        width:100%!important;
        min-height:44px!important;
        white-space:normal!important;
      }
      #page-stock .card > div[style*="justify-content:space-between"],
      #page-personal .card > div[style*="justify-content:space-between"],
      #page-informes .card > div[style*="justify-content:space-between"],
      #page-reportes .card > div[style*="justify-content:space-between"]{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
        align-items:stretch!important;
      }
      #page-stock .card > div[style*="justify-content:space-between"] > *,
      #page-personal .card > div[style*="justify-content:space-between"] > *,
      #page-informes .card > div[style*="justify-content:space-between"] > *,
      #page-reportes .card > div[style*="justify-content:space-between"] > *{
        width:100%!important;
      }
    }

/* --- Patch 72 --- */
@media(max-width:820px){
      #page-informes #inf-kpis > div[style*="grid-template-columns"],
      #page-informes #inf-kpis > div > div[style*="grid-template-columns"],
      #page-informes #informes-reportes-combinado > div[style*="grid-template-columns"],
      #page-informes #informes-reportes-combinado .card > div[style*="grid-template-columns"]{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:12px!important;
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
      }
      #page-informes #inf-por-sw,
      #page-informes #inf-por-hotel{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
      }
      #page-informes #inf-kpis > div > .card,
      #page-informes #informes-reportes-combinado .card{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
      }
      #page-informes .card > div[style*="display:flex"][style*="justify-content:space-between"]{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
      }
      #page-informes .card > div[style*="display:flex"][style*="justify-content:space-between"] > div:last-child{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        width:100%!important;
      }
      #page-informes .card > div[style*="display:flex"][style*="justify-content:space-between"] button{
        width:100%!important;
        min-height:44px!important;
      }
      #page-tareas-table{
        width:100%!important;
        max-width:100%!important;
        min-width:0!important;
        overflow-x:hidden!important;
      }
      #page-tareas-table .card > div:first-child{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
      }
      #page-tareas-table .card > div:first-child > div{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        width:100%!important;
      }
      #page-tareas-table .export-btn,
      #page-tareas-table .filter-btn,
      #page-tareas-table input{
        width:100%!important;
        min-height:44px!important;
      }
    }

/* --- Patch 73 --- */
@media(max-width:820px){
      #page-tareas-table .card{
        padding:0!important;
        overflow:visible!important;
        background:transparent!important;
        border:0!important;
        box-shadow:none!important;
      }
      #page-tareas-table .card > div:first-child{
        background:#fff!important;
        border:1px solid #dfe7f2!important;
        border-radius:20px!important;
        padding:16px!important;
        margin-bottom:14px!important;
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:10px!important;
      }
      #page-tareas-table .card > div:first-child > div{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
        width:100%!important;
      }
      #page-tareas-table .card > div[style*="overflow-x"]{
        overflow:visible!important;
        width:100%!important;
        padding:0!important;
      }
      #page-tareas-table table,
      #page-tareas-table thead,
      #page-tareas-table tbody,
      #page-tareas-table tr,
      #page-tareas-table th,
      #page-tareas-table td{
        display:block!important;
        width:100%!important;
        min-width:0!important;
        max-width:none!important;
        table-layout:auto!important;
        white-space:normal!important;
      }
      #page-tareas-table table{
        border-collapse:separate!important;
        border-spacing:0!important;
        background:transparent!important;
      }
      #page-tareas-table thead,
      #page-tareas-table th{
        display:none!important;
      }
      #page-tareas-table tbody{
        display:grid!important;
        gap:12px!important;
      }
      #page-tareas-table tr{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:0!important;
        background:#fff!important;
        border:1px solid #dfe7f2!important;
        border-radius:20px!important;
        padding:12px 14px!important;
        overflow:hidden!important;
        box-shadow:0 8px 22px rgba(31,41,55,.05)!important;
      }
      #page-tareas-table td{
        display:flex!important;
        align-items:flex-start!important;
        justify-content:space-between!important;
        gap:12px!important;
        border:0!important;
        border-bottom:1px solid #eef3f8!important;
        padding:10px 0!important;
        color:#334155!important;
        font-size:14px!important;
        line-height:1.3!important;
        text-align:right!important;
      }
      #page-tareas-table tr td:last-child{
        border-bottom:0!important;
      }
      #page-tareas-table td::before{
        display:block!important;
        flex:0 0 104px!important;
        min-width:104px!important;
        color:#7d8aa2!important;
        font-size:10px!important;
        font-weight:900!important;
        line-height:1.2!important;
        letter-spacing:.04em!important;
        text-transform:uppercase!important;
        text-align:left!important;
      }
      #page-tareas-table td:nth-child(1)::before{content:'ID'!important}
      #page-tareas-table td:nth-child(2)::before{content:'Titulo'!important}
      #page-tareas-table td:nth-child(3)::before{content:'Inicio'!important}
      #page-tareas-table td:nth-child(4)::before{content:'Final'!important}
      #page-tareas-table td:nth-child(5)::before{content:'Hito'!important}
      #page-tareas-table td:nth-child(6)::before{content:'Relacionado'!important}
      #page-tareas-table td:nth-child(7)::before{content:'Creador'!important}
      #page-tareas-table td:nth-child(8)::before{content:'Asignado'!important}
      #page-tareas-table td:nth-child(9)::before{content:'Equipo'!important}
      #page-tareas-table td:nth-child(10)::before{content:'Estado'!important}
      #page-tareas-table td:nth-child(11)::before{content:'Acciones'!important}
      #page-tareas-table td:nth-child(1){
        align-items:center!important;
        justify-content:flex-start!important;
        gap:10px!important;
        text-align:left!important;
      }
      #page-tareas-table td:nth-child(1)::before{display:none!important;content:''!important}
      #page-tareas-table td:nth-child(2){
        font-size:15px!important;
        font-weight:900!important;
        color:#10233f!important;
        text-align:right!important;
      }
      #page-tareas-table td:nth-child(11){
        display:grid!important;
        grid-template-columns:1fr!important;
        text-align:stretch!important;
      }
      #page-tareas-table td:nth-child(11)::before{
        margin-bottom:8px!important;
      }
      #page-tareas-table td:nth-child(11) button,
      #page-tareas-table td:nth-child(11) .export-btn{
        width:100%!important;
        min-height:42px!important;
        margin:0!important;
      }
      #page-tareas-table .task-id-pill{
        min-width:68px!important;
        height:34px!important;
        margin:0!important;
      }
      #page-tareas-table .task-check{
        width:28px!important;
        height:28px!important;
        min-width:28px!important;
      }
    }

/* --- Patch 74 --- */
#tareas-mobile-card-list-final{display:none}
    @media(max-width:820px){
      #page-tareas-table .card > div[style*="overflow-x"]{display:none!important}
      #tareas-mobile-card-list-final{
        display:grid!important;
        gap:12px!important;
      }
      .task-mobile-card-final{
        display:grid!important;
        gap:12px!important;
        background:#fff!important;
        border:1px solid #dfe7f2!important;
        border-radius:20px!important;
        padding:14px!important;
        box-shadow:0 8px 22px rgba(31,41,55,.05)!important;
      }
      .task-mobile-card-head-final{
        display:flex!important;
        justify-content:space-between!important;
        align-items:center!important;
        gap:10px!important;
      }
      .task-mobile-check-final{
        display:inline-flex!important;
        align-items:center!important;
        gap:10px!important;
      }
      .task-mobile-title-final{
        color:#10233f!important;
        font-size:16px!important;
        font-weight:900!important;
        line-height:1.25!important;
      }
      .task-mobile-status-final{
        display:inline-flex!important;
        padding:5px 10px!important;
        border-radius:999px!important;
        background:#eef4ff!important;
        color:#5674e8!important;
        font-size:11px!important;
        font-weight:900!important;
      }
      .task-mobile-status-final.done{background:#e8fbf6!important;color:#00a884!important}
      .task-mobile-meta-final{
        display:grid!important;
        grid-template-columns:1fr!important;
        gap:8px!important;
      }
      .task-mobile-meta-final div{
        display:flex!important;
        justify-content:space-between!important;
        gap:12px!important;
        border-top:1px solid #eef3f8!important;
        padding-top:8px!important;
        color:#334155!important;
        font-size:13px!important;
      }
      .task-mobile-meta-final span{
        color:#7d8aa2!important;
        font-size:10px!important;
        font-weight:900!important;
        text-transform:uppercase!important;
        letter-spacing:.04em!important;
      }
      .task-mobile-meta-final strong{
        text-align:right!important;
        font-weight:800!important;
      }
      .task-mobile-card-final .export-btn{
        width:100%!important;
        min-height:44px!important;
      }
    }

/* --- Final menu logo alignment --- */
.sidebar-logo{
  justify-content:center!important;
  text-align:center!important;
  gap:0!important;
  padding-left:0!important;
  padding-right:0!important;
  padding-top:26px!important;
  margin-bottom:26px!important;
}

.sidebar-logo .logo-text.zoplie-wordmark,
.sidebar-logo .zoplie-sidebar-brand-stable-final,
.sidebar-logo .zoplie-sidebar-word-final{
  flex:0 0 auto!important;
  max-width:none!important;
  justify-content:center!important;
}

/* --- Garantias ZOPLIE --- */
.garantias-grid-final{
  display:grid!important;
  grid-template-columns:minmax(280px,.9fr) minmax(320px,1.1fr)!important;
  gap:16px!important;
  margin-bottom:16px!important;
}

.garantias-card-head-final,
.garantias-toolbar-final{
  display:flex!important;
  align-items:flex-end!important;
  justify-content:space-between!important;
  gap:14px!important;
  flex-wrap:wrap!important;
}

.garantias-card-head-final strong{
  display:block!important;
  color:#0f1e3d!important;
  font-size:16px!important;
  margin-top:4px!important;
}

.garantias-card-head-final span,
.garantia-status-final{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px!important;
  padding:6px 10px!important;
  background:#eef4ff!important;
  color:#5674e8!important;
  font-size:11px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}

.garantias-email-row-final{
  width:100%!important;
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  gap:4px 10px!important;
  padding:12px 0!important;
  border:0!important;
  border-bottom:1px solid #e7eef7!important;
  background:transparent!important;
  text-align:left!important;
  cursor:pointer!important;
}

.garantias-email-row-final:last-child{border-bottom:0!important}
.garantias-email-row-final span{
  grid-row:1/3!important;
  align-self:center!important;
  padding:5px 8px!important;
  border-radius:999px!important;
  background:#e8fbf6!important;
  color:#00a884!important;
  font-size:10px!important;
  font-weight:900!important;
}
.garantias-email-row-final strong{color:#10233f!important;font-size:13px!important}
.garantias-email-row-final small{color:#7d8aa2!important;font-size:12px!important}

.garantias-drop-final{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:142px!important;
  border:1.5px dashed #b9c7db!important;
  border-radius:18px!important;
  background:#f8fbff!important;
  text-align:center!important;
  padding:18px!important;
  margin-top:10px!important;
}

.garantias-drop-final input{
  position:absolute!important;
  inset:0!important;
  opacity:0!important;
  cursor:pointer!important;
}

.garantias-drop-final strong{display:block!important;color:#10233f!important;font-size:16px!important}
.garantias-drop-final span{display:block!important;color:#7d8aa2!important;font-size:12px!important;max-width:360px!important;margin-top:6px!important}
.garantias-ocr-text-final{
  margin-top:12px!important;
  min-height:70px!important;
  border-radius:14px!important;
  background:#f6f8fb!important;
  border:1px solid #e5ecf5!important;
  color:#536681!important;
  padding:12px!important;
  font-size:12px!important;
  line-height:1.5!important;
}

.garantias-toolbar-final{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) minmax(180px,240px) minmax(170px,220px)!important;
  margin-bottom:14px!important;
}

.garantias-summary-final{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:10px!important;
  margin-bottom:14px!important;
}

.garantias-summary-final div{
  border:1px solid #e4ebf4!important;
  border-radius:14px!important;
  padding:12px!important;
  background:#f8fbff!important;
}

.garantias-summary-final strong{display:block!important;color:#10233f!important;font-size:22px!important}
.garantias-summary-final span{display:block!important;color:#7d8aa2!important;font-size:11px!important;font-weight:800!important;text-transform:uppercase!important}

.garantia-card-final{
  display:grid!important;
  grid-template-columns:minmax(260px,1fr) minmax(420px,.95fr) minmax(150px,180px)!important;
  align-items:center!important;
  gap:18px!important;
  padding:18px!important;
  margin-top:12px!important;
  border:1px solid #e1e9f4!important;
  border-radius:18px!important;
  background:#fff!important;
  box-shadow:0 8px 22px rgba(16,35,63,.04)!important;
}

.garantia-main-final{min-width:0!important}
.garantia-title-final{color:#071f43!important;font-size:17px!important;font-weight:900!important;line-height:1.25!important}
.garantia-meta-final{color:#6f7f99!important;font-size:12px!important;margin-top:6px!important;line-height:1.35!important}

.garantia-timeline-final{
  display:grid!important;
  grid-template-columns:minmax(132px,1fr) 74px minmax(132px,1fr)!important;
  align-items:center!important;
  gap:12px!important;
  padding:12px!important;
  border:1px solid #dfe8f4!important;
  border-radius:16px!important;
  background:#f8fbff!important;
}

.garantia-date-box-final{
  min-height:62px!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  gap:5px!important;
  padding:10px 12px!important;
  border-radius:13px!important;
  background:#fff!important;
  border:1px solid #e5edf7!important;
}

.garantia-date-box-final span{
  color:#6f7f99!important;
  font-size:10px!important;
  font-weight:900!important;
  text-transform:uppercase!important;
  letter-spacing:.04em!important;
}

.garantia-date-box-final strong{
  color:#071f43!important;
  font-size:16px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}

.garantia-date-box-final.end{
  border-color:#cdeee6!important;
  background:#f4fffb!important;
}

.garantia-line-final{
  position:relative!important;
  height:2px!important;
  background:#c9d6e8!important;
}

.garantia-line-final::before,
.garantia-line-final::after{
  content:''!important;
  position:absolute!important;
  top:50%!important;
  width:9px!important;
  height:9px!important;
  border-radius:50%!important;
  background:#5674e8!important;
  transform:translateY(-50%)!important;
}

.garantia-line-final::before{left:-1px!important}
.garantia-line-final::after{right:-1px!important;background:#00a884!important}
.garantia-line-final i{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  background:linear-gradient(90deg,#5674e8,#00a884)!important;
}

.garantia-side-final{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  text-align:center!important;
  min-width:150px!important;
  min-height:92px!important;
  align-self:stretch!important;
  padding:12px!important;
  border-radius:16px!important;
  background:#f8fbff!important;
  border:1px solid #e3ebf5!important;
}

.garantia-side-final strong{
  color:#071f43!important;
  font-size:13px!important;
  font-weight:900!important;
  line-height:1.15!important;
  white-space:nowrap!important;
}

.garantia-side-final .garantia-status-final{
  min-width:86px!important;
  min-height:30px!important;
  padding:0 14px!important;
  border-radius:999px!important;
  font-size:11px!important;
  line-height:1!important;
  box-shadow:0 6px 14px rgba(0,168,132,.08)!important;
}

.garantia-status-final.vigente{background:#e8fbf6!important;color:#00a884!important}
.garantia-status-final.proxima{background:#fff7e8!important;color:#d97706!important}
.garantia-status-final.vencida{background:#ffeef2!important;color:#e11d48!important}

@media(max-width:980px){
  .garantias-grid-final,
  .garantias-toolbar-final,
  .garantias-summary-final,
  .garantia-card-final{
    grid-template-columns:1fr!important;
  }
  .garantia-timeline-final{grid-template-columns:1fr!important}
  .garantia-line-final{height:28px!important;width:2px!important;margin:auto!important}
  .garantia-line-final i{width:2px!important;height:100%!important;background:linear-gradient(180deg,#5674e8,#00a884)!important}
  .garantia-side-final{align-items:flex-start!important;text-align:left!important}
}

/* --- Lato typography final --- */
:root{
  --font-display:'Barlow','Segoe UI',system-ui,sans-serif!important;
  --font-body:'Barlow','Segoe UI',system-ui,sans-serif!important;
  --font-mono:'Barlow','Segoe UI',system-ui,sans-serif!important;
}

body,
#login-screen,
#app,
.login-card,
.login-tab,
.btn-primary,
.submit-btn,
.nav-item,
.page-title,
.zoplie-login-wordmark-fixed,
.zoplie-login-wordmark-final,
.demo-sidebar-brand-final{
  font-family:var(--font-body)!important;
}

.page-title,
.stat-num,
.inc-title,
.zoplie-login-wordmark-fixed,
.zoplie-login-wordmark-final,
.demo-sidebar-brand-final{
  font-family:var(--font-display)!important;
}

/* --- Incidencias tab visibility and submit button fix --- */
#page-incidencias #tab-nueva[style*="display: none"],
#page-incidencias #tab-registro[style*="display: none"]{
  display:none!important;
}

#page-incidencias #tab-nueva:not([style*="display: none"]){
  display:grid!important;
}

#page-incidencias #submit-btn{
  position:static!important;
  z-index:auto!important;
  grid-column:1!important;
  grid-row:3!important;
  align-self:start!important;
  justify-self:start!important;
  margin-top:12px!important;
  transform:none!important;
}

#page-incidencias #submit-btn:hover{
  transform:translateY(-1px)!important;
}

/* --- Incidencias centered controls final --- */
#page-incidencias .page-tabs{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(220px,1fr))!important;
  align-items:center!important;
  justify-content:center!important;
  gap:10px!important;
  padding:6px!important;
}

#page-incidencias .page-tab{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:46px!important;
  text-align:center!important;
}

#page-incidencias #submit-btn{
  justify-self:center!important;
  align-self:center!important;
  width:min(260px,100%)!important;
  min-width:220px!important;
  margin:12px auto 0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
}

@media(max-width:720px){
  #page-incidencias .page-tabs{
    grid-template-columns:1fr!important;
  }
  #page-incidencias #submit-btn{
    width:100%!important;
    min-width:0!important;
  }
}

/* --- Incidencias statistics detail --- */
.inc-stats-detail-final{
  margin-bottom:14px!important;
  padding:16px!important;
  border-radius:18px!important;
}

.inc-stats-head-final{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:14px!important;
  margin-bottom:12px!important;
}

.inc-stats-sub-final{
  margin-top:4px!important;
  color:#6f7f99!important;
  font-size:12px!important;
  font-weight:600!important;
}

#inc-stats-updated-final{
  display:inline-flex!important;
  align-items:center!important;
  min-height:28px!important;
  padding:0 10px!important;
  border-radius:999px!important;
  background:#eef4ff!important;
  color:#5674e8!important;
  font-size:11px!important;
  font-weight:900!important;
  white-space:nowrap!important;
}

#inc-stats-bars-final{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:12px!important;
}

.inc-stat-row-final{
  min-width:0!important;
  padding:12px!important;
  border:1px solid #e3ebf5!important;
  border-radius:14px!important;
  background:#f8fbff!important;
}

.inc-stat-row-top-final{
  display:flex!important;
  justify-content:space-between!important;
  align-items:center!important;
  gap:8px!important;
  margin-bottom:9px!important;
}

.inc-stat-row-top-final strong{
  color:#071f43!important;
  font-size:12px!important;
  font-weight:900!important;
}

.inc-stat-row-top-final span{
  color:#6f7f99!important;
  font-size:11px!important;
  font-weight:800!important;
  white-space:nowrap!important;
}

.inc-stat-track-final{
  height:8px!important;
  border-radius:999px!important;
  background:#e7eef7!important;
  overflow:hidden!important;
}

.inc-stat-track-final i{
  display:block!important;
  height:100%!important;
  min-width:4px!important;
  border-radius:999px!important;
}

@media(max-width:980px){
  #inc-stats-bars-final{grid-template-columns:1fr 1fr!important}
}

@media(max-width:620px){
  #inc-stats-bars-final{grid-template-columns:1fr!important}
  .inc-stats-head-final{display:block!important}
  #inc-stats-updated-final{margin-top:10px!important}
}

/* --- Final checkbox sizing fix --- */
#page-incidencias input[type="checkbox"],
#task-detail-modal input[type="checkbox"],
#nueva-tarea-email,
#task-form-email{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:16px!important;
  height:16px!important;
  min-width:16px!important;
  max-width:16px!important;
  min-height:16px!important;
  max-height:16px!important;
  flex:0 0 16px!important;
  padding:0!important;
  margin:0!important;
  border:1.5px solid #cdd8ea!important;
  border-radius:50%!important;
  background:#fff!important;
  box-shadow:none!important;
  vertical-align:middle!important;
}

#page-incidencias input[type="checkbox"]:checked,
#task-detail-modal input[type="checkbox"]:checked,
#nueva-tarea-email:checked,
#task-form-email:checked{
  background:#4f6fee!important;
  border-color:#4f6fee!important;
}

#page-incidencias input[type="checkbox"]:checked::after,
#task-detail-modal input[type="checkbox"]:checked::after,
#nueva-tarea-email:checked::after,
#task-form-email:checked::after{
  content:""!important;
  display:block!important;
  width:7px!important;
  height:4px!important;
  margin:4px 0 0 3px!important;
  border-left:2px solid #fff!important;
  border-bottom:2px solid #fff!important;
  transform:rotate(-45deg)!important;
}

/* --- Personal permissions form --- */
.personal-permission-grid-final{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:8px!important;
}

.personal-permission-grid-final label{
  display:flex!important;
  align-items:center!important;
  gap:9px!important;
  min-height:42px!important;
  padding:10px 12px!important;
  border:1px solid #dce6f4!important;
  border-radius:14px!important;
  background:#fff!important;
  color:#18304f!important;
  font-size:13px!important;
  font-weight:700!important;
  cursor:pointer!important;
}

.personal-permission-grid-final input[type="checkbox"]{
  appearance:none!important;
  -webkit-appearance:none!important;
  width:15px!important;
  height:15px!important;
  min-width:15px!important;
  max-width:15px!important;
  min-height:15px!important;
  max-height:15px!important;
  flex:0 0 15px!important;
  padding:0!important;
  margin:0!important;
  border:1.5px solid #cdd8ea!important;
  border-radius:50%!important;
  background:#fff!important;
  box-shadow:none!important;
}

.personal-permission-grid-final input[type="checkbox"]:checked{
  background:#4f6fee!important;
  border-color:#4f6fee!important;
}

.personal-permission-grid-final input[type="checkbox"]:checked::after{
  content:""!important;
  display:block!important;
  width:6px!important;
  height:3px!important;
  margin:4px 0 0 3px!important;
  border-left:2px solid #fff!important;
  border-bottom:2px solid #fff!important;
  transform:rotate(-45deg)!important;
}

.personal-menu-permissions-final{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}

.personal-user-card-final{
  display:flex!important;
  align-items:flex-start!important;
  gap:14px!important;
  padding:1rem 1.2rem!important;
  margin-bottom:.6rem!important;
}

.personal-user-access-final{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:6px!important;
  margin-top:8px!important;
}

.personal-user-access-final span{
  display:inline-flex!important;
  align-items:center!important;
  max-width:100%!important;
  padding:5px 9px!important;
  border-radius:999px!important;
  background:#f3f7fd!important;
  color:#62728c!important;
  font-size:11px!important;
  font-weight:800!important;
}

@media(max-width:900px){
  .personal-permission-grid-final,
  .personal-menu-permissions-final{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:560px){
  .personal-permission-grid-final,
  .personal-menu-permissions-final{
    grid-template-columns:1fr!important;
  }
}

/* --- Dashboard software breakdown repair --- */
#dashboard-software-breakdown-final{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:10px!important;
  margin-top:14px!important;
}

.dash-software-row-final{
  min-width:0!important;
  padding:10px 12px!important;
  border:1px solid #dce6f4!important;
  border-radius:14px!important;
  background:#fff!important;
}

.dash-software-top-final{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:10px!important;
  margin-bottom:8px!important;
}

.dash-software-top-final strong{
  min-width:0!important;
  color:#071f43!important;
  font-size:12px!important;
  font-weight:900!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
}

.dash-software-top-final span{
  flex:0 0 auto!important;
  color:#6f7f99!important;
  font-size:11px!important;
  font-weight:800!important;
}

.dash-software-track-final{
  height:7px!important;
  border-radius:999px!important;
  background:#e7eef7!important;
  overflow:hidden!important;
}

.dash-software-track-final i{
  display:block!important;
  height:100%!important;
  min-width:4px!important;
  border-radius:999px!important;
}

.dash-software-empty-final{
  grid-column:1/-1!important;
  color:#6f7f99!important;
  font-size:13px!important;
  font-weight:700!important;
  padding:12px!important;
}

@media(max-width:760px){
  #dashboard-software-breakdown-final{
    grid-template-columns:1fr!important;
  }
}

/* --- Reservas operational calendar expansion --- */
#page-reservas .unified-form-final{
  padding:18px!important;
}

#page-reservas .unified-form-grid-final{
  display:grid!important;
  grid-template-columns:1.15fr .72fr .72fr 1fr .9fr .8fr!important;
  gap:10px!important;
  align-items:end!important;
  margin-bottom:10px!important;
}

#page-reservas .garage-week-shell{
  width:100%!important;
  margin:0!important;
  border:1px solid #dbe5f2!important;
  border-radius:16px!important;
  background:#fff!important;
  overflow:hidden!important;
}

#page-reservas .garage-week-toolbar{
  min-height:72px!important;
  padding:16px 18px!important;
}

#page-reservas .garage-week-title{
  font-size:22px!important;
  font-weight:900!important;
  color:#18304f!important;
}

#page-reservas .unified-ops-summary-final{
  display:grid!important;
  grid-template-columns:repeat(8,minmax(0,1fr))!important;
  gap:0!important;
  border-top:1px solid #e4ebf4!important;
  border-bottom:1px solid #e4ebf4!important;
  background:#f8fbff!important;
}

#page-reservas .unified-ops-summary-final div{
  padding:12px 14px!important;
  border-right:1px solid #e4ebf4!important;
}

#page-reservas .unified-ops-summary-final strong{
  display:block!important;
  font-size:19px!important;
  font-weight:900!important;
  line-height:1!important;
}

#page-reservas .unified-ops-summary-final span{
  display:block!important;
  margin-top:5px!important;
  color:#687892!important;
  font-size:11px!important;
  font-weight:800!important;
}

#page-reservas .unified-calendar-grid-final{
  display:grid!important;
  grid-template-columns:120px repeat(7,minmax(160px,1fr))!important;
  width:100%!important;
  min-width:1240px!important;
}

#page-reservas .garage-head{
  min-height:42px!important;
  padding:12px 10px!important;
  background:#f1f5fa!important;
  color:#0d2a4c!important;
  font-size:12px!important;
  font-weight:800!important;
  border-right:1px solid #dfe8f4!important;
  border-bottom:1px solid #dfe8f4!important;
}

#page-reservas .garage-time{
  min-height:76px!important;
  padding:14px 12px!important;
  background:#f8fbff!important;
  border-right:1px solid #dfe8f4!important;
  border-bottom:1px solid #dfe8f4!important;
  color:#18304f!important;
  font-size:12px!important;
  font-weight:900!important;
}

#page-reservas .unified-row-label-final{
  display:flex!important;
  align-items:center!important;
  gap:8px!important;
}

#page-reservas .unified-row-label-final span{
  width:9px!important;
  height:9px!important;
  border-radius:50%!important;
  flex:0 0 9px!important;
}

#page-reservas .garage-cell{
  min-height:76px!important;
  padding:9px!important;
  border-right:1px solid #dfe8f4!important;
  border-bottom:1px solid #dfe8f4!important;
  background:#fff!important;
}

#page-reservas .garage-cell.today{
  background:#f2f7ff!important;
  box-shadow:inset 0 0 0 2px rgba(79,111,238,.2)!important;
}

#page-reservas .unified-event-final{
  display:block!important;
  padding:7px 8px!important;
  margin-bottom:5px!important;
  border-radius:8px!important;
  background:rgba(var(--ev-r,93),var(--ev-g,124),var(--ev-b,240),.14)!important;
  border:1px solid rgba(var(--ev-r,93),var(--ev-g,124),var(--ev-b,240),.34)!important;
  color:#123052!important;
  font-size:11px!important;
  font-weight:900!important;
  line-height:1.25!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}

@media(max-width:1180px){
  #page-reservas .unified-form-grid-final{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  #page-reservas .unified-ops-summary-final{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  #page-reservas .garage-week-shell{
    overflow-x:auto!important;
  }
}

@media(max-width:680px){
  #page-reservas .unified-form-grid-final,
  #page-reservas .unified-ops-summary-final{
    grid-template-columns:1fr!important;
  }
}

/* --- Incidencias full layout polish final --- */
#page-incidencias{
  --inc-card-radius:18px;
  --inc-gap-final:14px;
}

#page-incidencias #stats-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:12px!important;
  margin:0 0 14px!important;
}

#page-incidencias #stats-grid .stat-card{
  min-height:78px!important;
  padding:16px 20px!important;
  border-radius:var(--inc-card-radius)!important;
}

#page-incidencias #stats-grid .stat-num{
  font-size:27px!important;
  line-height:1!important;
  margin-bottom:8px!important;
}

#page-incidencias #stats-grid .stat-label{
  font-size:13px!important;
  line-height:1.2!important;
}

#page-incidencias .page-tabs{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  width:100%!important;
  padding:6px!important;
  margin:0 0 14px!important;
  border-radius:18px!important;
  background:#fff!important;
}

#page-incidencias .page-tab{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:46px!important;
  width:100%!important;
  border-radius:14px!important;
  font-size:14px!important;
  font-weight:900!important;
  text-align:center!important;
  white-space:nowrap!important;
}

#page-incidencias #tab-nueva:not([style*="display: none"]){
  display:grid!important;
  grid-template-columns:minmax(420px,.85fr) minmax(520px,1.08fr)!important;
  grid-template-rows:auto auto auto!important;
  align-items:start!important;
  gap:var(--inc-gap-final)!important;
  width:100%!important;
}

#page-incidencias #tab-nueva > .card{
  width:100%!important;
  min-width:0!important;
  padding:18px!important;
  border-radius:var(--inc-card-radius)!important;
  box-shadow:none!important;
}

#page-incidencias #tab-nueva > .card:nth-of-type(1){
  grid-column:1!important;
  grid-row:1!important;
}

#page-incidencias #tab-nueva > .card:nth-of-type(2){
  grid-column:2!important;
  grid-row:1 / span 3!important;
}

#page-incidencias #tab-nueva > .card:nth-of-type(3){
  grid-column:1!important;
  grid-row:2!important;
}

#page-incidencias .row2{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
}

#page-incidencias input:not([type="checkbox"]),
#page-incidencias select,
#page-incidencias textarea{
  width:100%!important;
  min-height:42px!important;
  padding:10px 14px!important;
  border-radius:14px!important;
  font-size:14px!important;
}

#page-incidencias textarea#desc{
  min-height:86px!important;
  resize:vertical!important;
}

#page-incidencias .label{
  margin-bottom:8px!important;
  color:#18304f!important;
  font-size:11px!important;
  font-weight:900!important;
}

#page-incidencias .sw-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
  margin:10px 0 0!important;
}

#page-incidencias .sw-btn{
  display:grid!important;
  grid-template-columns:auto 1fr!important;
  grid-template-areas:"dot name" "dot sub"!important;
  align-items:center!important;
  column-gap:12px!important;
  row-gap:2px!important;
  min-height:110px!important;
  padding:18px!important;
  border-radius:18px!important;
  text-align:left!important;
  background:#fff!important;
  overflow:hidden!important;
}

#page-incidencias .sw-dot{
  grid-area:dot!important;
  align-self:center!important;
  margin:0!important;
}

#page-incidencias .sw-name{
  grid-area:name!important;
  margin:0!important;
  color:#071f43!important;
  font-size:14px!important;
  font-weight:950!important;
  line-height:1.15!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
}

#page-incidencias .sw-sub{
  grid-area:sub!important;
  margin:0!important;
  color:#5e6f8a!important;
  font-size:12px!important;
  font-weight:800!important;
  line-height:1.2!important;
}

#page-incidencias .prio-row{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
  margin-bottom:12px!important;
}

#page-incidencias .prio-btn{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  min-height:42px!important;
  padding:10px 12px!important;
  border-radius:14px!important;
  font-size:14px!important;
  font-weight:850!important;
}

#page-incidencias #submit-btn{
  grid-column:1!important;
  grid-row:3!important;
  justify-self:center!important;
  align-self:start!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:min(280px,100%)!important;
  min-width:240px!important;
  min-height:48px!important;
  margin:12px auto 0!important;
  padding:13px 22px!important;
  border-radius:16px!important;
  font-size:15px!important;
  font-weight:900!important;
  text-align:center!important;
}

#page-incidencias .inc-stats-detail-final{
  margin:14px 0 0!important;
  padding:18px!important;
  border-radius:var(--inc-card-radius)!important;
}

#page-incidencias #inc-stats-bars-final{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:12px!important;
}

@media(max-width:1180px){
  #page-incidencias #tab-nueva:not([style*="display: none"]){
    grid-template-columns:1fr!important;
  }
  #page-incidencias #tab-nueva > .card,
  #page-incidencias #submit-btn{
    grid-column:1!important;
    grid-row:auto!important;
  }
  #page-incidencias #inc-stats-bars-final{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media(max-width:760px){
  #page-incidencias #stats-grid,
  #page-incidencias .page-tabs,
  #page-incidencias .row2,
  #page-incidencias .sw-grid,
  #page-incidencias .prio-row,
  #page-incidencias #inc-stats-bars-final{
    grid-template-columns:1fr!important;
  }
  #page-incidencias #submit-btn{
    width:100%!important;
    min-width:0!important;
  }
}

/* --- Incidencias compact visible form fix --- */
#page-incidencias #tab-nueva:not([style*="display: none"]){
  grid-template-columns:minmax(420px,.8fr) minmax(520px,1.05fr)!important;
  gap:12px!important;
}

#page-incidencias #tab-nueva > .card{
  padding:16px!important;
}

#page-incidencias #tab-nueva > .card:nth-of-type(2){
  grid-row:1 / span 2!important;
}

#page-incidencias input:not([type="checkbox"]),
#page-incidencias select{
  min-height:40px!important;
}

#page-incidencias textarea#desc{
  min-height:74px!important;
}

#page-incidencias .sw-grid{
  gap:10px!important;
}

#page-incidencias .sw-btn{
  min-height:86px!important;
  padding:14px 16px!important;
  grid-template-columns:30px 1fr!important;
}

#page-incidencias .sw-name{
  align-self:end!important;
  font-size:13px!important;
}

#page-incidencias .sw-sub{
  align-self:start!important;
  font-size:11px!important;
}

#page-incidencias .prio-btn{
  min-height:40px!important;
}

#page-incidencias #submit-btn{
  grid-row:3!important;
  margin-top:0!important;
  transform:translateY(-2px)!important;
}

#page-incidencias .inc-stats-detail-final{
  margin-top:10px!important;
}

@media(max-width:1180px){
  #page-incidencias #tab-nueva:not([style*="display: none"]){
    grid-template-columns:1fr!important;
  }
}

/* =====================================================
   ZOPLIE LOGIN REDESIGN
   ===================================================== */
:root{
  --login-ink:#071d45;
  --login-blue:#2563eb;
  --login-dark:#0b2d63;
  --login-cyan:#00c7b6;
  --login-sky:#38bdf8;
}

#login-screen{
  background:linear-gradient(135deg,#eef2ff 0%,#f0f4ff 100%)!important;
  align-items:safe center!important;
  justify-content:safe center!important;
  padding:1.5rem!important;
}

/* Shell: the two-column card */
.zl-shell{
  display:flex;
  width:100%;
  max-width:900px;
  min-height:620px;
  border-radius:28px;
  overflow:hidden;
  box-shadow:0 32px 100px rgba(7,29,69,.22),0 0 0 1px rgba(255,255,255,.5);
  background:#fff;
}

/* ── LEFT HERO ── */
.zl-hero{
  flex:0 0 38%;
  background:linear-gradient(160deg,#071d45 0%,#0b2d63 35%,#1e3fa8 70%,#2563eb 100%);
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:2.8rem 2.4rem 0;
}

.zl-dots{
  position:absolute;top:0;right:0;
  width:200px;height:220px;
  background-image:radial-gradient(circle,rgba(255,255,255,.14) 1px,transparent 1px);
  background-size:22px 22px;
  -webkit-mask-image:radial-gradient(ellipse at top right,rgba(0,0,0,.9),transparent 72%);
  mask-image:radial-gradient(ellipse at top right,rgba(0,0,0,.9),transparent 72%);
}

.zl-glow{
  position:absolute;top:-80px;left:-80px;
  width:360px;height:360px;
  background:radial-gradient(circle,rgba(0,199,182,.18) 0%,transparent 70%);
  pointer-events:none;
}

.zl-glow-2{
  top:auto;left:auto;
  bottom:15%;right:-80px;
  width:260px;height:260px;
  background:radial-gradient(circle,rgba(56,189,248,.14) 0%,transparent 70%);
}

.zl-hero-body{
  position:relative;z-index:1;
  flex:1;
  display:flex;flex-direction:column;gap:1.6rem;
}

/* Logo block */
.zl-logo-block .zoplie-login-wordmark-fixed{
  color:#fff!important;
  font-size:30px!important;
  margin-bottom:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  display:inline-flex!important;
}

.zl-tagline{
  font-size:12px;color:rgba(255,255,255,.55);
  margin-top:5px;letter-spacing:.02em;
}

.zl-domain{
  color:var(--login-cyan);font-size:12px;font-weight:600;
  margin-top:2px;
}

/* Cyan divider */
.zl-divider{
  width:36px;height:2px;
  background:linear-gradient(90deg,var(--login-cyan),var(--login-sky));
  border-radius:2px;
}

/* Headline */
.zl-headline h1{
  font-size:26px;font-weight:800;color:#fff;
  line-height:1.28;margin-bottom:10px;
  font-family:var(--font-display),sans-serif;
}

.zl-headline h1 span{color:var(--login-cyan);}

.zl-headline p{
  font-size:12.5px;color:rgba(255,255,255,.6);
  line-height:1.65;
  text-align:left;
  max-width:38ch;
}

/* Feature cards */
.zl-features{
  display:grid;grid-template-columns:repeat(3,1fr);gap:8px;
  margin-top:auto;padding-bottom:2.2rem;
}

.zl-feat{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:14px;
  padding:14px 10px;
  display:flex;flex-direction:column;align-items:center;
  gap:7px;text-align:center;
}

.zl-feat-icon{
  width:34px;height:34px;border-radius:10px;
  background:rgba(0,199,182,.15);
  border:1px solid rgba(0,199,182,.22);
  display:flex;align-items:center;justify-content:center;
  color:var(--login-cyan);flex-shrink:0;
}

.zl-feat strong{
  font-size:12px;font-weight:700;color:#fff;display:block;
}

.zl-feat p{
  font-size:10.5px;color:rgba(255,255,255,.5);
  line-height:1.4;margin:0;
}

/* Wave at bottom of hero */
.zl-wave{
  position:absolute;bottom:0;left:0;right:0;
  height:80px;line-height:0;
}

.zl-wave svg{width:100%;height:100%;}

/* ── RIGHT FORM PANEL ── */
.zl-panel{
  flex:1;
  background:#fff;
  display:flex;align-items:center;justify-content:center;
  padding:2.5rem 2.8rem;
  position:relative;
  overflow:visible;
}

/* Language selector — login panel dropdown */
.zl-lang{
  position:absolute;top:1.2rem;right:1.4rem;
  display:flex;align-items:center;gap:6px;
  font-size:12.5px;font-weight:700;color:#334155;
  padding:6px 12px;border-radius:50px;
  border:1.5px solid #e2e8f0;
  cursor:pointer;user-select:none;
  background:#fff;
  box-shadow:0 2px 10px rgba(15,23,42,.07);
  transition:border-color .2s,box-shadow .2s;
  z-index:100;
}
.zl-lang:hover{ border-color:#c4b5fd; color:#5b21b6; }
/* Pulse on login */
@keyframes zlLangPulse{
  0%,100%{box-shadow:0 2px 10px rgba(99,102,241,.12),0 0 0 0 rgba(99,102,241,.5);}
  50%    {box-shadow:0 2px 10px rgba(99,102,241,.12),0 0 0 7px rgba(99,102,241,.0);}
}
.zl-lang.zl-pulse{ animation:zlLangPulse 1.8s ease-in-out infinite; border-color:#c4b5fd!important; }
/* Dropdown menu */
.zl-lang-menu{
  display:none;position:absolute;top:calc(100% + 8px);right:0;
  background:#fff;border:1px solid #e2e8f0;border-radius:14px;
  box-shadow:0 16px 40px rgba(15,23,42,.16);
  padding:5px;min-width:168px;flex-direction:column;gap:2px;
  z-index:9999;
}
.zl-lang-menu.open{ display:flex;animation:zLangIn .15s ease; }
@keyframes zLangIn{from{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:none}}
.zl-lang-opt{
  display:flex;align-items:center;gap:9px;padding:9px 12px;
  border:none;background:transparent;color:#334155;
  font-size:12.5px;font-weight:600;cursor:pointer;border-radius:9px;
  text-align:left;font-family:inherit;width:100%;transition:all .12s;
}
.zl-lang-opt:hover{ background:rgba(196,181,253,.15);color:#5b21b6; }
.zl-lang-opt.active{ background:#c4b5fd;color:#5b21b6;font-weight:800; }
.zl-lang-opt .zl-flag{ font-size:17px;line-height:1; }

/* login-box fills panel */
.zl-panel .login-box{
  width:100%!important;max-width:400px!important;
  animation:none!important;
}

/* Login logo — only on mobile */
.zl-mobile-logo{display:none!important;}

/* Login card: transparent, no border */
.zl-panel .login-card{
  background:transparent!important;
  border:none!important;box-shadow:none!important;
  border-radius:0!important;padding:0!important;
}

/* Form header */
.zl-form-hd{margin-bottom:1.4rem;}
.zl-form-hd h2{
  font-size:22px;font-weight:800;color:var(--login-ink);
  margin-bottom:3px;font-family:var(--font-display),sans-serif;
}
.zl-form-hd p{font-size:13px;color:#64748b;}

/* Tabs */
.zl-panel .login-tabs{
  border-radius:12px!important;padding:4px!important;
  margin-bottom:1.4rem!important;
}

.zl-panel .login-tab{
  font-size:13.5px!important;padding:10px 8px!important;
  border-radius:10px!important;
}

/* Input with icon wrapper */
.zl-field .field-inner,
.zl-iw{
  position:relative;display:flex;align-items:center;
}

.zl-ii{
  position:absolute;left:12px;
  display:flex;align-items:center;
  color:#94a3b8;pointer-events:none;z-index:1;
}

.zl-iw input{
  padding-left:38px!important;
  width:100%;
}

/* Eye button */
.zl-eye{
  position:absolute;right:10px;
  background:none;border:none;cursor:pointer;
  color:#94a3b8;padding:4px;
  display:flex;align-items:center;
  line-height:0;
}

.zl-eye:hover{color:#475569;}

/* Recordarme + Olvidaste row */
.zl-row{
  display:flex;align-items:center;justify-content:space-between;
  margin:.5rem 0 .8rem;font-size:12.5px;
}

.zl-check{
  display:flex;align-items:center;gap:7px;
  color:#334155;cursor:pointer;
}

.zl-check input[type="checkbox"]{
  border-radius:4px!important;
  width:15px!important;height:15px!important;
  min-width:15px!important;max-width:15px!important;
  min-height:15px!important;max-height:15px!important;
  flex:0 0 15px!important;
}
.zl-check input[type="checkbox"]:checked::after{
  content:none!important;
  display:none!important;
}

.zl-row .forgot-link{
  margin:0!important;font-size:12.5px!important;
}

/* Login btn */
.zl-panel #login-btn{
  margin-top:.4rem!important;
  height:50px;font-size:15px!important;
  border-radius:14px!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  gap:0!important;
}

/* Separator */
.zl-sep{
  display:flex;align-items:center;gap:10px;
  margin:.9rem 0;font-size:12px;color:#94a3b8;
}

.zl-sep::before,.zl-sep::after{
  content:'';flex:1;height:1px;background:#e2e8f0;
}

/* Demo button */
.btn-secondary-login{
  width:100%;padding:12px;
  border-radius:14px;
  border:1.5px solid #c7d7f7;
  background:#fff;
  color:var(--login-blue);
  font-family:var(--font-display),sans-serif;
  font-size:14px;font-weight:600;
  cursor:pointer;transition:all .18s;
  display:flex;align-items:center;justify-content:center;gap:8px;
}

.btn-secondary-login:hover{
  background:#f0f6ff;border-color:var(--login-blue);
}

/* Terms */
.zl-terms{
  font-size:11px;color:#94a3b8;text-align:center;
  margin-top:1.1rem;line-height:1.6;
}

.zl-terms a{color:var(--login-blue);text-decoration:none;font-weight:500;}
.zl-terms a:hover{text-decoration:underline;}

/* ── RESPONSIVE ── */

/* Laptops 14" — compact scale (1280–1440 wide, or short viewports ≤820 alto) */
@media (min-width:900px) and (max-width:1440px),
       (min-width:900px) and (max-height:820px){
  #login-screen{padding:1rem!important;}
  .zl-shell{
    max-width:880px;
    min-height:0;
    border-radius:22px;
  }
  .zl-hero{
    flex:0 0 44%;
    padding:1.8rem 1.6rem 0;
  }
  .zl-hero-body{gap:1rem;}
  .zl-logo-block .zoplie-login-wordmark-fixed{font-size:24px!important;}
  .zl-tagline{font-size:11px;}
  .zl-domain{font-size:11px;}
  .zl-headline h1{font-size:21px;line-height:1.24;margin-bottom:6px;}
  .zl-headline p{font-size:11.5px;line-height:1.55;}
  .zl-features{gap:6px;padding-bottom:1.4rem;}
  .zl-feat{padding:10px 8px;gap:5px;border-radius:12px;}
  .zl-feat-icon{width:28px;height:28px;border-radius:8px;}
  .zl-feat-icon svg{width:15px;height:15px;}
  .zl-feat strong{font-size:11px;}
  .zl-feat p{font-size:10px;line-height:1.35;}
  .zl-wave{height:60px;}
  .zl-dots{width:160px;height:170px;background-size:18px 18px;}

  .zl-panel{padding:1.6rem 1.8rem!important;}
  .zl-lang{top:.7rem;right:.9rem;font-size:11px;padding:4px 8px;}
  .zl-panel .login-box{max-width:360px!important;}
  .zl-form-hd{margin-bottom:1rem;}
  .zl-form-hd h2{font-size:19px;}
  .zl-form-hd p{font-size:12px;}
  .zl-panel .login-tabs{margin-bottom:1rem!important;}
  .zl-panel .login-tab{font-size:12.5px!important;padding:8px 6px!important;}
  .zl-field label{font-size:12px;}
  .zl-iw input{height:40px;font-size:13px;}
  .zl-row{margin:.35rem 0 .65rem;font-size:12px;}
  .zl-row .forgot-link{font-size:12px!important;}
  .zl-panel #login-btn{height:44px;font-size:14px!important;border-radius:12px!important;margin-top:.2rem!important;}
  .zl-sep{margin:.7rem 0;font-size:11px;}
  .btn-secondary-login{padding:10px;font-size:13px;border-radius:12px;}
  .zl-terms{margin-top:.8rem;font-size:10.5px;}
  .simple-captcha-fixed{padding:8px 10px!important;}
}

/* Tablet */
@media(max-width:899px){
  .zl-shell{
    flex-direction:column;
    min-height:auto;
    border-radius:22px;
    max-width:500px;
  }
  .zl-hero{display:none!important;}
  .zl-panel{
    padding:2.2rem 2rem!important;
    align-items:flex-start!important;
  }
  .zl-mobile-logo{display:block!important;text-align:center;margin-bottom:1.4rem;}
  .zl-mobile-logo .zoplie-login-wordmark-fixed{
    color:var(--login-ink)!important;font-size:28px!important;
  }
  .zl-mobile-logo .zoplie-login-e-fixed{width:30px!important;height:30px!important;font-size:24px!important;}
  .zl-lang{top:.9rem;right:1rem;}
}

/* Mobile */
@media(max-width:480px){
  #login-screen{padding:1rem!important;}
  .zl-shell{border-radius:18px;}
  .zl-panel{padding:1.8rem 1.4rem!important;}
  .zl-form-hd h2{font-size:20px;}
  .zl-panel #login-btn{height:46px!important;}
  .simple-captcha-fixed{
    grid-template-columns:auto 1fr!important;
    grid-template-rows:auto auto!important;
  }
  .simple-captcha-fixed input{
    grid-column:1/-1!important;
  }
}

/* === Garage week calendar tall rows === */
.garage-cell{
  min-height:120px!important;
  align-content:start!important;
}

/* === WhatsApp checkbox fix === */
.card.whatsapp-card-final label input[type="checkbox"]:not(.recaptcha-check):not(.task-check){
  border-radius:4px!important;
}
.whatsapp-card-final input[type="checkbox"]:checked::after{
  content:none!important;
  display:none!important;
}

/* === Incidencias: tab-nueva single card layout === */
#page-incidencias #tab-nueva,
#page-incidencias #tab-nueva:not([style*="display: none"]){
  display:block!important;
  grid-template-columns:none!important;
  width:100%!important;
}

/* === Incidencias submit button padding === */
#page-incidencias #submit-btn{
  padding:16px 36px!important;
  min-height:54px!important;
  min-width:260px!important;
  width:auto!important;
  margin:18px auto 4px!important;
}

/* === Global: remove white checkmark from all checkboxes (keep solid blue fill) === */
input[type="checkbox"]:checked::after,
input[type="checkbox"][style]:checked::after,
input[type="checkbox"]:checked::before,
.recaptcha-check:checked::after,
.task-check:checked::after,
#wa-alertas-config input[type="checkbox"]:checked::after,
#page-reportes input[type="checkbox"]:checked::after,
#page-incidencias input[type="checkbox"]:checked::after,
#task-detail-modal input[type="checkbox"]:checked::after,
#nueva-tarea-email:checked::after,
#task-form-email:checked::after,
.personal-permission-grid-final input[type="checkbox"]:checked::after,
.card label input[type="checkbox"]:not(.recaptcha-check):not(.task-check):checked::after,
.whatsapp-card-final input[type="checkbox"]:checked::after,
.zl-check input[type="checkbox"]:checked::after{
  content:none!important;
  display:none!important;
  width:0!important;
  height:0!important;
  border:0!important;
  background:transparent!important;
}

/* =====================================================
   LOGIN: tema morado · textos verdes → blancos
   ===================================================== */
:root{
  --login-blue:#c4b5fd;
  --login-cyan:#fff;
  --login-purple-1:#1a0f2e;
  --login-purple-2:#2d1b4e;
  --login-purple-3:#5b21b6;
  --login-purple-4:#c4b5fd;
}

/* Fondo del shell: malva muy claro */
#login-screen{
  background:linear-gradient(135deg,#f3eefb 0%,#ece4f9 100%)!important;
}

/* Hero izquierdo: gradiente morado */
.zl-hero{
  background:linear-gradient(160deg,#1a0f2e 0%,#2d1b4e 35%,#5b21b6 70%,#c4b5fd 100%)!important;
}

/* Glows del hero en tonos morados */
.zl-glow{
  background:radial-gradient(circle,rgba(139,92,246,.28) 0%,transparent 70%)!important;
}
.zl-glow-2{
  background:radial-gradient(circle,rgba(196,181,253,.22) 0%,transparent 70%)!important;
}

/* zoplie.com → blanco */
.zl-domain{ color:#fff!important; opacity:.92; }

/* "Cero incidencias sin resolver." (span del h1) → blanco */
.zl-headline h1 span{ color:#fff!important; }

/* Divider con gradiente blanco→morado claro */
.zl-divider{
  background:linear-gradient(90deg,#fff,rgba(196,181,253,.6))!important;
}

/* Feature icons: morado en lugar de cyan */
.zl-feat-icon{
  background:rgba(255,255,255,.10)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  color:#fff!important;
}

/* Botón "Entrar" + tabs activos → gradiente morado (anula --grad1 azul) */
.zl-panel #login-btn,
.zl-panel .login-tab.active,
.zl-panel .btn-primary{
  background:#c4b5fd!important;
  color:#fff!important;
  box-shadow:0 10px 26px rgba(91,42,134,.30)!important;
}
.zl-panel #login-btn:hover,
.zl-panel .btn-primary:hover{
  background:linear-gradient(135deg,#4a2270 0%,#7c4ae8 100%)!important;
}

/* Botón "Entrar en demostración" → borde y texto morados */
.btn-secondary-login{
  color:#5b21b6!important;
  border-color:#d6c4f5!important;
}
.btn-secondary-login:hover{
  background:#f5efff!important;
  border-color:#c4b5fd!important;
}

/* Enlaces de términos y "¿Olvidaste contraseña?" en morado */
.zl-terms a,
.forgot-link{ color:#5b21b6!important; }

/* Focus de inputs morado */
.zl-panel input:focus,
.zl-panel select:focus,
.zl-panel textarea:focus{
  border-color:#c4b5fd!important;
  box-shadow:0 0 0 3px rgba(139,92,246,.18)!important;
}

/* Captcha: checkbox marca morada (era azul) */
.simple-captcha-icon{ color:#5b21b6!important; }

/* Captcha input: número tecleado en morado vibrante */
.simple-captcha-fixed input,
#simple-captcha-answer{
  color:#c4b5fd!important;
  font-weight:800!important;
  caret-color:#c4b5fd!important;
}
#simple-captcha-answer::placeholder{ color:#c4b5fd!important; }

/* Sidebar nav: minúsculas naturales + selección morada */
.sidebar .nav-item{
  text-transform:none!important;
  letter-spacing:0!important;
}
.sidebar .nav-item.active{
  background:#c4b5fd!important;
  color:#fff!important;
  box-shadow:0 6px 16px rgba(124,58,237,.32)!important;
  font-weight:700!important;
}
.sidebar .nav-item:hover:not(.active){
  background:#f5f3ff!important;
  color:#5b21b6!important;
}

/* =====================================================
   DEMO INTERIOR — reemplazo global de azul → morado
   ===================================================== */
:root{
  --accent:#c4b5fd!important;
  --accent2:#5b21b6!important;
  --accent3:#a78bfa!important;
  --accent-soft:rgba(124,58,237,.10)!important;
  --accent-glow:rgba(124,58,237,.18)!important;
  --purple:#c4b5fd!important;
  --grad1:linear-gradient(135deg,#c4b5fd 0%,#9333ea 100%)!important;
  --grad2:linear-gradient(135deg,#c4b5fd 0%,#c084fc 100%)!important;
  --shadow-accent:0 8px 18px rgba(124,58,237,.22)!important;
}

/* Botones primarios y de envío */
.btn-primary,
.submit-btn,
.save-btn,
.export-btn{
  background:linear-gradient(135deg,#c4b5fd 0%,#9333ea 100%)!important;
  color:#fff!important;
  border:0!important;
  box-shadow:0 8px 18px rgba(124,58,237,.22)!important;
}
.btn-primary:hover,
.submit-btn:hover,
.save-btn:hover,
.export-btn:hover{
  background:linear-gradient(135deg,#5b21b6 0%,#7e22ce 100%)!important;
}

/* Tabs activas y filtros activos en azul → morado */
.page-tab.active,
.filter-btn.active{
  background:linear-gradient(135deg,#c4b5fd 0%,#9333ea 100%)!important;
  color:#fff!important;
  border-color:transparent!important;
}

/* Stat cards azules → moradas */
.stat-card.blue .stat-num{ color:#c4b5fd!important; }
.stat-card.blue{ background:#f5f3ff!important; border-color:#ddd6fe!important; }

/* Garage / agenda eventos azules → morado */
.garage-event.occ{ background:#c4b5fd!important; }

/* Focus de inputs en todo el dashboard */
input:focus,
select:focus,
textarea:focus{
  border-color:#c4b5fd!important;
  box-shadow:0 0 0 3px rgba(124,58,237,.16)!important;
  outline:0!important;
}

/* Enlaces */
a{ color:#c4b5fd; }
a:hover{ color:#5b21b6; }

/* Chips de usuario y badges azules */
.user-chip{
  border-color:#ddd6fe!important;
}

/* Charts: barras azules → moradas (cuando se usan colores hex en línea) */
[style*="#5b7def"]{ background:#c4b5fd!important; }
[style*="#2563eb"]{ background:#c4b5fd!important; }
[style*="#1d4ed8"]{ background:#5b21b6!important; }

/* Checkboxes (incluidos los circulares en tareas/cards) checked → morado */
input[type="checkbox"]:checked,
.task-check:checked,
.recaptcha-check:checked,
.card label input[type="checkbox"]:checked,
#wa-alertas-config input[type="checkbox"]:checked,
[id*="wa-alert"] input[type="checkbox"]:checked,
.modal input[type="checkbox"]:checked,
body input[type="checkbox"]:checked{
  background:#c4b5fd!important;
  border-color:#c4b5fd!important;
  accent-color:#c4b5fd!important;
}
input[type="checkbox"],
.task-check,
.recaptcha-check{
  accent-color:#c4b5fd!important;
}

/* Cualquier botón con clase utilitaria que aún herede azul */
.btn-ghost.is-active,
.btn-blue,
.action-btn.primary,
button.is-primary,
.tab.active{
  background:linear-gradient(135deg,#c4b5fd 0%,#9333ea 100%)!important;
  color:#fff!important;
  border-color:transparent!important;
}

/* Iconos de sección que usaban fondo azul claro */
.mant-icon{
  background:#f5f3ff!important;
  color:#c4b5fd!important;
}

/* Fallback: cualquier botón con background azul plano lo neutraliza el sistema de variables — pero si queda algún inline */
button[style*="background:#5b7def"],
button[style*="background:#2563eb"],
button[style*="background-color:#5b7def"],
button[style*="background-color:#2563eb"]{
  background:#c4b5fd!important;
}

/* Feature cards: más contraste sobre el morado claro del gradiente */
.zl-feat{
  background:rgba(255,255,255,.12)!important;
  border:1px solid rgba(255,255,255,.22)!important;
  backdrop-filter:blur(6px);
}
.zl-feat strong{
  color:#fff!important;
  text-shadow:0 1px 2px rgba(0,0,0,.25);
}
.zl-feat p{
  color:rgba(255,255,255,.82)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.20);
}

/* ===== NEW LOGO OVERRIDE — hide legacy auto-injected wordmark elements ===== */
.sidebar-logo .logo-text,
.sidebar-logo .zoplie-wordmark,
.sidebar-logo .zoplie-e-mark,
.sidebar-logo .zoplie-app-e-final,
.sidebar-logo .zoplie-sidebar-word-final,
.sidebar-logo .zoplie-sidebar-brand-stable-final,
.sidebar-logo .zoplie-sidebar-png-final,
.sidebar-logo #zoplie-sidebar-logo-beside-bell-final,
.sidebar-logo [class*="zoplie-sidebar-"],
.sidebar-logo [class*="zoplie-app-"]{
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  opacity:0!important;
  position:absolute!important;
  left:-9999px!important;
}
.sidebar-logo{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  padding:.6rem .9rem!important;
  margin-bottom:1.2rem!important;
  flex-direction:row!important;
}
.sidebar-logo > svg{
  display:block!important;
  flex-shrink:0!important;
  width:36px!important;
  height:36px!important;
}
.sidebar-logo > span{
  display:inline-block!important;
  font-weight:900!important;
  font-size:20px!important;
  letter-spacing:-.02em!important;
  color:inherit!important;
  line-height:1!important;
}

/* ===== GLOBAL MONOSPACE FONT — Cascadia/JetBrains/Consolas terminal aesthetic ===== */
:root{
  --font-display:'Barlow','Segoe UI',system-ui,sans-serif!important;
  --font-body:'Barlow','Segoe UI',system-ui,sans-serif!important;
}
html,body,input,select,textarea,button,h1,h2,h3,h4,h5,h6,p,span,div,a,li,td,th,label{
  font-family:'Barlow','Segoe UI',system-ui,sans-serif!important;
}
/* preserve emoji and icon font rendering */
.material-icons,.material-symbols-outlined,[class*="fa-"],[class*="icon-"],i.icon{
  font-family:inherit!important;
}

/* ===== DASHBOARD · PERSONAL ACTIVO ===== */
.dash-personal-circles{display:flex;flex-wrap:wrap;gap:14px;padding:.4rem 0}
.dash-personal-circle{position:relative;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;color:#fff;cursor:default;flex-shrink:0;border:3px solid #fff;box-shadow:0 4px 12px rgba(26,15,46,.18);transition:transform .2s ease,box-shadow .2s ease}
.dash-personal-circle:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 8px 20px rgba(26,15,46,.28);z-index:2}
.dash-personal-circle::before,
.dash-personal-circle::after{
  position:absolute;bottom:calc(100% + 10px);left:50%;
  opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease;
  transform:translateX(-50%) translateY(4px);z-index:3
}
.dash-personal-circle::before{
  content:attr(data-name) "\A" attr(data-role);
  white-space:pre;text-align:center;
  background:#1a0f2e;color:#fff;padding:8px 14px;border-radius:10px;
  font-size:12.5px;font-weight:600;letter-spacing:.01em;line-height:1.4;
  box-shadow:0 6px 18px rgba(26,15,46,.3);min-width:140px
}
.dash-personal-circle::after{
  content:"";width:0;height:0;
  border-left:6px solid transparent;border-right:6px solid transparent;
  border-top:6px solid #1a0f2e;bottom:calc(100% + 4px)
}
.dash-personal-circle:hover::before,
.dash-personal-circle:hover::after{
  opacity:1;transform:translateX(-50%) translateY(0)
}
.dash-personal-circle .dot{position:absolute;bottom:0;right:0;width:13px;height:13px;border-radius:50%;background:#10b981;border:2.5px solid #fff;box-shadow:0 0 0 1px rgba(16,185,129,.3)}
.dash-personal-circle .dot.away{background:#f59e0b}
.dash-personal-circle .dot.off{background:#9ca3af}

/* ===== LOGIN LOGO · OCULTAR WORDMARKS LEGACY INYECTADOS ===== */
.login-logo .zoplie-login-wordmark-final,
.login-logo .zoplie-login-wordmark-fixed,
.login-logo .demo-wordmark-final,
.login-logo .zoplie-login-e-fixed,
.login-logo .accent.zoplie-e-mark,
.login-logo .logo-text,
.login-logo .zoplie-wordmark,
.login-logo [class*="zoplie-login-"],
.login-logo [class*="demo-wordmark-"],
.zl-logo-block .zoplie-login-wordmark-final,
.zl-logo-block .zoplie-login-wordmark-fixed,
.zl-logo-block [class*="zoplie-login-"]:not(svg):not(span[style*="font-weight:900"]){
  display:none!important;
  visibility:hidden!important;
  width:0!important;
  height:0!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  opacity:0!important;
  position:absolute!important;
  left:-9999px!important;
}

/* ===== GARANTIAS · MAS PADDING ARRIBA ===== */
#page-garantias{padding-top:2.5rem!important}
#page-garantias .page-header{margin-top:.5rem!important}

/* ===== TODAS LAS PAGINAS · MAS PADDING ARRIBA ===== */
.main > [id^="page-"]{padding-top:2.5rem!important}
.main > [id^="page-"] > .page-header:first-child,
.main > [id^="page-"] > div:first-child{margin-top:.4rem!important}
@media(max-width:760px){
  .main > [id^="page-"]{padding-top:1.8rem!important}
}

/* ===== DASHBOARD · BOTON ACTUALIZAR MORADO ===== */
#page-dashboard .page-header button[onclick="initDashboard()"]{
  background:linear-gradient(135deg,#5b21b6,#c4b5fd)!important;
  color:#fff!important;
  box-shadow:0 6px 18px rgba(91,42,134,.32)!important;
  border:none!important;
  font-weight:700!important;
  font-size:14px!important;
  letter-spacing:.01em!important;
  padding:0 22px 0 14px!important;
  height:44px!important;
  min-width:140px!important;
  gap:10px!important;
  transition:all .2s ease!important;
}
#page-dashboard .page-header button[onclick="initDashboard()"]::before{
  content:''!important;
  background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b2a86' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='23 4 23 10 17 10'/><path d='M20.49 15a9 9 0 1 1-2.12-9.36L23 10'/></svg>") no-repeat center!important;
  background-size:14px 14px!important;
  color:transparent!important;
  width:26px!important;
  height:26px!important;
  border-radius:50%!important;
  display:inline-grid!important;
  place-items:center!important;
  font-size:0!important;
  box-shadow:0 2px 6px rgba(0,0,0,.18)!important;
  transition:transform .4s ease!important;
}
#page-dashboard .page-header button[onclick="initDashboard()"]:hover{
  background:linear-gradient(135deg,#4a2270,#c4b5fd)!important;
  transform:translateY(-2px)!important;
  box-shadow:0 12px 28px rgba(91,42,134,.5)!important;
}
#page-dashboard .page-header button[onclick="initDashboard()"]:hover::before{
  transform:rotate(180deg)!important;
}

/* ===== FIX nav-item solapamiento con textos largos (i18n EN/FR/IT) ===== */
.nav-item{
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-height:38px !important;
  height:auto !important;
  line-height:1.25 !important;
  padding:9px 12px !important;
  margin-bottom:3px !important;
  white-space:normal !important;
}
.nav-item svg{
  width:18px !important;
  height:18px !important;
  flex-shrink:0 !important;
}
.nav-item > span,
.nav-item > [data-i18n]{
  flex:1 1 auto !important;
  min-width:0 !important;
  word-break:normal !important;
  overflow-wrap:break-word !important;
  hyphens:auto !important;
  line-height:1.25 !important;
}

/* --- SBH Hotels & Resorts logo cliente — responsive --- */
/* Sidebar: aire inferior garantizado + scroll fluido si hace falta */
#sidebar.sidebar,
aside.sidebar{padding-bottom:14px!important}

/* Bottom container: ocupa lo necesario, nunca empuja al usuario fuera */
.sidebar-bottom.zoplie-bottom-stack{
  display:flex!important;
  flex-direction:column!important;
  flex-shrink:0!important;
  gap:0;
  padding-bottom:6px!important;
}
/* El chip de usuario siempre visible, nunca se aplasta ni se sale */
.sidebar-bottom .user-chip{
  flex-shrink:0!important;
  margin-bottom:0!important;
}

/* Logo wrapper: se reduce primero si falta espacio */
.sbh-logo-wrap{
  display:flex;
  justify-content:center;
  padding:6px 8px 10px;
  flex-shrink:1;
  min-height:0;
}
.sbh-logo-img{
  width:100%;
  height:auto;
  display:block;
  max-width:80px;
  opacity:.9;
  transition:max-width .2s ease,opacity .2s ease;
}

/* Pantallas medianas (laptops normales) */
@media (max-height: 880px){
  .sbh-logo-img{max-width:70px}
  .sbh-logo-wrap{padding:4px 8px 8px}
}
/* Pantallas más cortas */
@media (max-height: 780px){
  .sbh-logo-img{max-width:58px;opacity:.82}
  .sbh-logo-wrap{padding:2px 8px 6px}
}
/* Pantallas muy cortas: ocultar el logo, prioridad al usuario */
@media (max-height: 680px){
  .sbh-logo-wrap{display:none!important}
}

/* MÓVIL: en sidebar overlay también compacto */
@media (max-width: 768px){
  .sbh-logo-img{max-width:68px}
  .sbh-logo-wrap{padding:4px 8px 6px}
}

/* --- Login screen: logo cliente SBH "Demo personalizado para" --- */
.zl-client-mark{
  display:flex;
  align-items:center;
  gap:12px;
  margin-top:18px;
  padding:10px 14px;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.10);
  border-radius:10px;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
  max-width:340px;
}
.zl-client-label{
  font-size:11px;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:rgba(255,255,255,.55);
  white-space:nowrap;
}
.zl-client-logo{
  width:auto;
  height:46px;
  display:block;
  opacity:1;
  /* En fondo oscuro, aclarar el gris para que destaque */
  filter:brightness(1.55) contrast(.92) saturate(1.1);
}
/* Móvil: el panel oscuro no se ve, así que ocultar */
@media (max-width: 980px){
  .zl-client-mark{display:none}
}

/* --- ZOPLIE Mode router: ocultar branding SBH cuando modo=demo --- */
body[data-zoplie-mode="demo"] .sbh-logo-wrap{display:none!important}
/* En login el data-attribute aún no está, pero damos opción manual via JS si hace falta */
body[data-zoplie-mode="demo"] .zl-client-mark{display:none!important}

/* Indicador discreto del modo activo (esquina del sidebar, opcional) */
body[data-zoplie-mode="demo"] .sidebar::before{
  content:"MODO DEMO";
  position:absolute;
  top:6px;right:8px;
  font-size:9px;
  font-weight:800;
  letter-spacing:.12em;
  color:rgba(255,255,255,.35);
  padding:2px 6px;
  border:1px solid rgba(255,255,255,.18);
  border-radius:4px;
  pointer-events:none;
  z-index:2;
}
/* Indicador SBH eliminado */

/* --- Patch visual-mobile: simplificación visual en móvil --- */
@media (max-width:900px){
  /* Fondo ligeramente cálido para que las tarjetas blancas destaquen sin borde */
  :root{
    --bg:#f2f4f8!important;
    --border:#eaecf1!important;
    --border2:#e0e4ec!important;
  }
  /* KPIs: sin borde, solo sombra suave — menos líneas a la vista */
  .stat-card{
    border:none!important;
    box-shadow:0 2px 8px rgba(15,23,42,.07)!important;
    border-radius:18px!important;
  }
  /* Tarjetas: borde muy tenue */
  .card{
    border-color:#eaecf2!important;
    box-shadow:0 1px 4px rgba(15,23,42,.05)!important;
    border-radius:16px!important;
  }
  /* Etiquetas de KPI más finas → el número domina */
  .stat-label,.label{
    font-weight:500!important;
    font-size:11px!important;
    color:#8e9db3!important;
    letter-spacing:.01em!important;
  }
  /* Gráficas más compactas para ver el contenido sin scroll */
  canvas,
  #chart-semana,#chart-estado,#chart-sw,
  #chart-hotel,#chart-tareas-dept,#chart-caja-semana{
    max-height:170px!important;
  }
  /* KPIs: mantener 2 columnas incluso en pantallas pequeñas */
  .stats-grid,#dash-kpis{
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
  }
  /* Separadores de sección del menú más suaves */
  .nav-section{opacity:.6!important}
  /* Título de página menos dominante */
  .page-title{
    font-weight:650!important;
    font-size:18px!important;
  }
  /* Reducir visualmente las tablas */
  table th{
    background:#f7f9fc!important;
    font-size:10.5px!important;
    font-weight:700!important;
    color:#7d8fa3!important;
    letter-spacing:.05em!important;
    text-transform:uppercase!important;
  }
}
@media (max-width:480px){
  /* Móvil muy estrecho: tarjetas más compactas */
  .stat-card{padding:12px 10px!important;border-radius:14px!important}
  .stat-num{font-size:20px!important}
  .stat-label{font-size:10px!important}
  .card{padding:12px!important;border-radius:14px!important;margin-bottom:12px!important}
}

/* --- Patch iphone-mockup: mockup del teléfono responsive en móvil --- */
@media (max-width:900px){
  .iphone-wrap,.iphone-wa-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    padding:.5rem 0!important;
  }
  .iphone{
    width:min(270px,82vw)!important;
    height:auto!important;
    aspect-ratio:300 / 620!important;
    max-width:100%!important;
  }
  /* Si el chat de WhatsApp tiene altura fija, también responsive */
  .iphone-screen,.iphone-wa-screen{
    width:100%!important;
    height:100%!important;
  }
  /* Tabs del bot WhatsApp - scroll horizontal si no caben */
  .wa-bot-tabs{
    display:flex!important;
    gap:6px!important;
    overflow-x:auto!important;
    -webkit-overflow-scrolling:touch!important;
    scrollbar-width:none!important;
    flex-wrap:nowrap!important;
    padding-bottom:4px!important;
  }
  .wa-bot-tabs::-webkit-scrollbar{display:none!important}
  .wa-bot-tab{
    flex:0 0 auto!important;
    white-space:nowrap!important;
  }
}
@media (max-width:420px){
  .iphone{
    width:min(240px,78vw)!important;
  }
  /* Tabs más compactos en pantallas pequeñas */
  .wa-bot-tab{
    padding:6px 10px!important;
    font-size:12px!important;
  }
}

/* --- Patch chart-titles: títulos de gráficas siempre legibles en móvil --- */
@media (max-width:900px){
  /* Cualquier tarjeta que contiene un canvas: el título (1er hijo div) debe
     poder respirar sin partirse en 2 líneas solapadas */
  .card:has(canvas) > div:first-child{
    height:auto!important;
    min-height:1.4em!important;
    line-height:1.35!important;
    font-size:13px!important;
    font-family:'Segoe UI',system-ui,-apple-system,sans-serif!important;
    font-weight:600!important;
    color:#425064!important;
    margin-bottom:10px!important;
    white-space:normal!important;
    overflow:visible!important;
    letter-spacing:0!important;
    -webkit-font-smoothing:antialiased!important;
    word-break:normal!important;
    overflow-wrap:break-word!important;
  }
  /* Si el título es muy largo y el contenedor flex aprieta, dale espacio */
  .card:has(canvas){
    overflow:visible!important;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   LOGIN MOBILE — safe-area + layout compacto (v2026-05-20)
   Arregla:
   - Logo ZOPLIE y selector "Español" pegados al borde superior (no respetan
     el notch / status-bar de Android)
   - Mucho padding vertical -> contenido caía fuera de la pantalla
   - Captcha y botones con margen excesivo
   ═══════════════════════════════════════════════════════════════════════════ */

/* Tablet + Mobile (max-width:899px) — el shell ocupa toda la pantalla del móvil */
@media (max-width:899px){
  /* Pantalla raíz: el shell debe llenar el alto disponible (look full-screen app) */
  #login-screen{
    padding:
      calc(.2rem + env(safe-area-inset-top,0px))
      0
      calc(.2rem + env(safe-area-inset-bottom,0px))
      0!important;
    align-items:stretch!important;
    min-height:100vh!important;
    min-height:100dvh!important;       /* viewport dinámico — respeta barra URL móvil */
  }
  .zl-shell{
    margin:0!important;
    width:100%!important;
    min-height:calc(100vh - .4rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
    min-height:calc(100dvh - .4rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
    border-radius:0!important;          /* flush con bordes del móvil */
    box-shadow:none!important;
    display:flex!important;
    flex-direction:column!important;
  }
  /* Panel: padding-top BIEN GENEROSO + top-align para bajar el logo */
  .zl-panel{
    padding:4.5rem 1rem .85rem!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    flex:1!important;                   /* rellena el shell */
    display:flex!important;
    flex-direction:column!important;
  }
  /* Selector de idioma: alineado verticalmente con el logo */
  .zl-lang{
    top:2.8rem!important;
    right:.8rem!important;
    font-size:11.5px!important;
    padding:5px 10px!important;
    gap:5px!important;
  }
  /* Logo móvil: con margen-top adicional */
  .zl-mobile-logo{
    margin-top:.6rem!important;
    margin-bottom:.75rem!important;
  }
  .zl-mobile-logo svg{ width:30px!important; height:30px!important; }
  .zl-mobile-logo span{ font-size:20px!important; }
  .zl-mobile-logo p,
  .zl-mobile-logo .zl-tagline{
    font-size:11.5px!important;
    margin-top:1px!important;
  }
  /* Cabecera del formulario — sin espacios sobrantes */
  .zl-form-hd{ margin-bottom:.45rem!important; }
  .zl-form-hd h2{ font-size:18px!important; margin-bottom:1px!important; }
  .zl-form-hd p{ font-size:12px!important; }
  /* Tabs apretadas */
  .zl-panel .login-tabs{
    margin-bottom:.55rem!important;
    padding:3px!important;
  }
  .zl-panel .login-tab{
    padding:7px 6px!important;
    font-size:13px!important;
  }
  /* Campos */
  .zl-field{ margin-bottom:.4rem!important; }
  .zl-field label{ font-size:11.5px!important; margin-bottom:2px!important; }
  .zl-iw input{ height:38px!important; font-size:13px!important; }
  /* Recordarme / Olvidaste */
  .zl-row{ margin:.15rem 0 .35rem!important; font-size:12px!important; }
  .zl-row .forgot-link{ font-size:12px!important; }
  /* Captcha compacto */
  .simple-captcha-fixed{
    padding:6px 9px!important;
    margin:.2rem 0 .4rem!important;
    gap:5px!important;
  }
  .simple-captcha-fixed label{ font-size:12px!important; }
  .simple-captcha-fixed input{ height:32px!important; font-size:12.5px!important; }
  /* Botón Entrar */
  .zl-panel #login-btn{
    height:42px!important;
    font-size:14px!important;
    margin-top:.15rem!important;
    border-radius:11px!important;
  }
  /* Separador */
  .zl-sep{ margin:.4rem 0!important; font-size:11px!important; }
  /* Botón "Contactar con ventas" */
  .btn-secondary-login{
    padding:9px!important;
    font-size:13px!important;
    border-radius:11px!important;
  }
  /* Términos */
  .zl-terms{ margin-top:.4rem!important; font-size:10px!important; line-height:1.45!important; }
}

/* Móvil estándar (≤480px) — full-screen */
@media (max-width:480px){
  #login-screen{ padding:
    calc(.15rem + env(safe-area-inset-top,0px))
    0
    calc(.15rem + env(safe-area-inset-bottom,0px))
    0!important; }
  .zl-shell{
    border-radius:0!important;
    min-height:calc(100vh - .3rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
    min-height:calc(100dvh - .3rem - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px))!important;
  }
  .zl-panel{ padding:4.3rem .9rem .75rem!important; }
  .zl-form-hd h2{ font-size:17px!important; }
  .zl-iw input{ height:38px!important; }
  .zl-panel #login-btn{ height:42px!important; }
}

/* Móvil pequeño (≤360px — iPhone SE, Samsung A0x, plegables) */
@media (max-width:360px){
  #login-screen{ padding:
    calc(.15rem + env(safe-area-inset-top,0px))
    0
    calc(.15rem + env(safe-area-inset-bottom,0px))
    0!important; }
  .zl-panel{ padding:4.2rem .8rem .9rem!important; }
  .zl-mobile-logo svg{ width:30px!important; height:30px!important; }
  .zl-mobile-logo span{ font-size:20px!important; }
  .zl-form-hd h2{ font-size:17px!important; }
  .zl-iw input{ height:40px!important; }
  .zl-panel #login-btn{ height:42px!important; font-size:14px!important; }
  .btn-secondary-login{ padding:10px!important; font-size:13px!important; }
  /* Pastilla de idioma: alineada con el logo (bajada) */
  .zl-lang{
    top:2.5rem!important; right:.55rem!important;
    padding:4px 8px!important;
    font-size:11px!important;
    gap:4px!important;
  }
  .zl-lang > svg{ display:none!important; }
}

/* Plegables y pantallas ultra-estrechas (≤320px — Galaxy Fold cerrado) */
@media (max-width:320px){
  .zl-panel{ padding:4rem .75rem .8rem!important; }
  .zl-mobile-logo{
    margin-top:.2rem!important;
    margin-bottom:.7rem!important;
    text-align:left!important;
    padding-right:60px!important;     /* deja hueco para la pastilla "ES" */
  }
  .zl-mobile-logo > div{
    justify-content:flex-start!important;
  }
  .zl-mobile-logo svg{ width:26px!important; height:26px!important; }
  .zl-mobile-logo span{ font-size:18px!important; }
  .zl-mobile-logo p{ font-size:11px!important; text-align:left!important; }
  /* Pastilla: solo código de idioma (ES, EN, FR...) */
  .zl-lang #zl-lang-name{ display:none!important; }
  .zl-lang::before{
    content:'ES';
    font-weight:800;
    letter-spacing:.04em;
  }
  .zl-lang{
    top:2.5rem!important; right:.5rem!important;
    min-width:0!important;
  }
  .zl-form-hd h2{ font-size:16px!important; line-height:1.2!important; }
  .zl-form-hd p{ font-size:11.5px!important; }
}

/* Pantalla muy corta (móvil en horizontal, plegables abiertos) */
@media (max-width:899px) and (max-height:680px){
  .zl-mobile-logo{ margin-bottom:.5rem!important; }
  .zl-form-hd{ margin-bottom:.6rem!important; }
  .zl-panel .login-tabs{ margin-bottom:.6rem!important; }
  .zl-field{ margin-bottom:.5rem!important; }
  .simple-captcha-fixed{ margin:.3rem 0 .5rem!important; }
  .zl-sep{ margin:.5rem 0!important; }
}


/* ?????? Sidebar nav scrollable ????????????????????????????????????????????????????????????????????????????????????????????? */
.nav-scroll{
  flex:1;
  overflow-y:auto;
  overflow-x:hidden;
  min-height:0;
  padding-bottom:.5rem;
}
.nav-scroll::-webkit-scrollbar{width:3px}
.nav-scroll::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:3px}
.nav-scroll::-webkit-scrollbar-track{background:transparent}

/* ?????? Smaller login card on 14" screens (???1440px / short height) ????????? */
@media(max-width:1440px) and (max-height:820px){
  .login-box{max-width:370px}
  .login-card{padding:1.6rem 1.8rem;border-radius:16px}
  .login-card .zl-logo-mark{width:34px;height:34px}
  .login-card h1,.login-card .zl-title{font-size:1.1rem!important}
  .login-card .zl-sub{font-size:12px!important}
  .login-card .form-group{margin-bottom:.85rem}
  .login-card input[type=text],.login-card input[type=email],.login-card input[type=password]{
    padding:.55rem .85rem;font-size:13.5px
  }
  .login-card .btn-primary{padding:.65rem;font-size:13.5px}
  #login-screen .app-store-badges{display:none}
}
@media(max-height:700px){
  .login-box{max-width:360px}
  .login-card{padding:1.2rem 1.5rem}
  .login-card .form-group{margin-bottom:.6rem}
}

/* ?????? Locked nav items hover ????????????????????????????????????????????????????????????????????????????????????????????? */
.nav-locked{transition:opacity .2s,background .15s}
.nav-locked:hover{opacity:.75!important;background:rgba(255,255,255,.07)!important}
.nav-item[data-locked="1"]{display:flex!important}

/* ?????? Locked nav wrapper ????????????????????????????????????????????????????????????????????????????????????????????????????????? */
.nav-locked-wrap{
  display:block;
  width:calc(100% + 1.1rem);
  margin:0 -.55rem;
}
.nav-locked-wrap .nav-item{
  border-radius:0!important;
  margin:0!important;
  padding-left:calc(16px + .55rem)!important;
  padding-right:calc(16px + .55rem)!important;
  width:100%!important;
}
.nav-locked-wrap:hover .nav-item{
  opacity:.75!important;
  background:rgba(0,0,0,.06)!important;
  color:#334155!important;
}
.nav-item[data-locked="1"]{display:flex!important;transition:opacity .2s}

/* ── Locked sections: blur content + lock overlay ───────────── */
#page-incidencias,
#page-tpv,
#page-whatsapp {
  position: relative;
}
.locked-blur-wrap {
  pointer-events: none !important;
  user-select: none !important;
  opacity: .45;
}
.locked-page-overlay {
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 50;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  background: rgba(245,242,255,.45);
  pointer-events: auto;
}
.locked-page-badge {
  background: #fff;
  border-radius: 22px;
  box-shadow: 0 16px 60px rgba(91,42,134,.25), 0 2px 12px rgba(0,0,0,.1);
  padding: 36px 48px;
  text-align: center;
  max-width: 380px;
}
.locked-page-badge .lpb-icon {
  width: 60px; height: 60px;
  background: linear-gradient(135deg,#f3e8ff,#ede9fe);
  border-radius: 18px;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 16px;
}
.locked-page-badge h3 {
  font-size: 19px; font-weight: 800; color: #1e1b4b; margin: 0 0 8px;
}
.locked-page-badge p {
  font-size: 13px; color: #6b7280; margin: 0 0 22px; line-height: 1.6;
}
.locked-page-badge a {
  display: inline-block;
  padding: 11px 28px;
  background: linear-gradient(135deg,#5b21b6,#c4b5fd);
  color: #fff;
  border-radius: 12px;
  font-size: 13px; font-weight: 800;
  text-decoration: none;
  transition: opacity .15s;
}
.locked-page-badge a:hover { opacity: .88; }

/* Sidebar above locked overlay */
#sidebar {
  position: fixed;
  z-index: 60;
}


/* ===== Pending Users Approval Card (v41-pending) ===== */
.pending-users-card {
  background: var(--surface, #fff);
  border-radius: 14px;
  border: 1.5px solid #f59e0b;
  border-left: 5px solid #f59e0b;
  box-shadow: 0 4px 20px rgba(245,158,11,.15);
  padding: 18px 20px;
  margin-bottom: 1.25rem;
}
.pending-users-card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 14px;
}
.pending-users-card-title {
  font-size: 15px;
  font-weight: 800;
  color: #92400e;
  flex: 1;
}
.pending-user-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(245,158,11,.18);
  flex-wrap: wrap;
}
.pending-user-row:last-child { border-bottom: none; }
.pending-user-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg,#f59e0b,#d97706);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 800;
  font-size: 13px;
  flex-shrink: 0;
}
.pending-user-info { flex: 1; min-width: 120px; }
.pending-user-name { font-weight: 700; font-size: 14px; color: var(--text,#1a1a2e); }
.pending-user-email { font-size: 12px; color: var(--muted,#888); }
.pending-user-perfil {
  font-size: 11px;
  background: #fef3c7;
  color: #92400e;
  border-radius: 20px;
  padding: 2px 9px;
  font-weight: 700;
  margin-left: 4px;
}
.pending-user-controls {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.pending-user-controls select {
  height: 34px;
  border: 1px solid var(--border2,#e0ddd8);
  border-radius: 7px;
  background: var(--surface,#fff);
  color: var(--text,#1a1a2e);
  font-size: 13px;
  font-weight: 600;
  padding: 0 8px;
  cursor: pointer;
}
.pending-approve-btn {
  height: 34px;
  padding: 0 14px;
  background: linear-gradient(135deg,#16a34a,#15803d);
  color: #fff;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .15s;
  white-space: nowrap;
}
.pending-approve-btn:hover { opacity: .85; }
.pending-approve-btn:disabled { opacity: .5; cursor: default; }
#pending-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  border-radius: 9px;
  background: #f59e0b;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  padding: 0 5px;
  margin-left: 4px;
  vertical-align: middle;
}

/* --- Patch 80: Manuales layout fix --- */
@media(min-width:821px){
  #page-manuales{max-width:1500px!important;}
  #page-manuales > div[style*='grid-template-columns']{grid-template-columns:minmax(300px,420px) minmax(400px,1fr)!important;}
}

/* --- Patch 81: Sidebar más estrecho + padding balanceado --- */
@media(min-width:821px){
  .sidebar{
    width:215px!important;
  }
  .main{
    margin-left:215px!important;
    padding:20px 14px!important;
  }
  .sidebar-logo .logo-text.zoplie-wordmark,
  .sidebar-logo .zoplie-sidebar-brand-stable-final,
  .sidebar-logo .zoplie-sidebar-word-final{
    max-width:162px!important;
  }
}

/* --- Patch 82: Garage cell hover — glass grid v3 --- */
.garage-cell{position:relative!important}
.garage-cell:hover{z-index:30!important}
.garage-cell-hover{
  display:none;
  position:absolute;
  inset:0;
  background:rgba(8,3,20,.86);
  backdrop-filter:blur(4px);
  border-radius:6px;
  z-index:20;
  padding:5px;
  grid-template-columns:1fr 1fr;
  grid-template-rows:1fr 1fr;
  gap:4px;
  pointer-events:none;
}
.garage-cell:hover .garage-cell-hover{display:grid}
.gcb{
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.18);
  border-radius:8px;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  padding:0;
  transition:all .17s cubic-bezier(.16,1,.3,1);
  font-family:inherit;
  pointer-events:all;
}
.gcb:hover{transform:scale(1.04)}
.gcb.gcb-bed:hover{
  background:rgba(59,130,246,.38);
  border-color:rgba(147,197,253,.35);
  box-shadow:0 0 14px rgba(59,130,246,.32);
}
.gcb.gcb-car:hover{
  background:rgba(16,185,129,.38);
  border-color:rgba(110,231,183,.35);
  box-shadow:0 0 14px rgba(16,185,129,.32);
}
.gcb.gcb-gift:hover{
  background:rgba(245,158,11,.38);
  border-color:rgba(252,211,77,.35);
  box-shadow:0 0 14px rgba(245,158,11,.32);
}
.gcb.gcb-plus:hover{
  background:rgba(139,92,246,.45);
  border-color:rgba(196,181,253,.38);
  box-shadow:0 0 14px rgba(139,92,246,.38);
}
.gcb svg{
  width:15px;height:15px;
  stroke:#fff;fill:none;
  stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;
}
.gcb .gcb-lbl{
  font-size:9px;font-weight:800;
  color:#fff;
  white-space:nowrap;letter-spacing:.03em;
  text-transform:uppercase;
  text-shadow:0 1px 3px rgba(0,0,0,.5);
}

/* --- Patch 83: Equalize task toolbar buttons --- */
#page-tareas-table .card > div:first-child .filter-btn,
#page-tareas-table .card > div:first-child .export-btn{
  height:36px!important;
  min-height:36px!important;
  padding:0 15px!important;
  font-size:13px!important;
  border-radius:10px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
}

/* --- Patch 84: Avatar mejorado + gestión de rol en admin --- */

/* Sidebar avatar pill */
.user-chip {
  background: rgba(255,255,255,.06) !important;
  border: 1px solid rgba(255,255,255,.1) !important;
  border-radius: 14px !important;
  padding: 10px 12px !important;
  transition: background .15s !important;
}
.user-chip:hover { background: rgba(255,255,255,.1) !important; }

/* Avatar circle */
.user-avatar {
  width: 36px !important;
  height: 36px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #5b21b6 0%, #c4b5fd 100%) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #fff !important;
  flex-shrink: 0 !important;
  letter-spacing: .02em !important;
  box-shadow: 0 0 0 2px rgba(139,92,246,.35), 0 2px 8px rgba(91,42,134,.4) !important;
  overflow: hidden !important;
  text-transform: uppercase !important;
}
.user-avatar img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
}

/* Admin user list avatar */
#admin-users-list .avatar {
  width: 38px !important;
  height: 38px !important;
  border-radius: 50% !important;
  background: linear-gradient(135deg, #5b21b6 0%, #c4b5fd 100%) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  color: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
  box-shadow: 0 0 0 2px rgba(139,92,246,.2) !important;
  letter-spacing: .02em !important;
}

/* Role selector in admin panel */
.zl-role-sel {
  font-size: 11px;
  font-weight: 600;
  padding: 4px 8px;
  border-radius: 7px;
  border: 1.5px solid var(--border);
  background: var(--surface);
  color: var(--text);
  cursor: pointer;
  font-family: inherit;
  outline: none;
  transition: border-color .12s;
}
.zl-role-sel:focus { border-color: #c4b5fd; }

/* Patch 85 — tighten global letter-spacing slightly */
body, button, input, select, textarea, label, span, div, p, h1, h2, h3, h4, td, th {
  letter-spacing: -0.01em;
}

/* Patch 86 — fix Actualizar button movement on click */
.submit-btn:active { transform: none !important; }
.submit-btn:hover:not(:disabled) { transform: none !important; box-shadow: var(--shadow-accent) !important; }


/* Patch 87-89 replaced by Patch 90 (CSS Grid header) */

/* Patch 90 — dashboard header: grid layout, button never moves */
#page-dashboard .page-header {
  display: grid !important;
  grid-template-columns: 1fr auto !important;
  align-items: center !important;
  gap: 12px !important;
  flex-wrap: unset !important;
}
#page-dashboard .page-header button[onclick="initDashboard()"] {
  transform: none !important;
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}
#page-dashboard .page-header button[onclick="initDashboard()"]::before {
  display: none !important;
  content: none !important;
}

/* Patch 91 — kill all residual button movement and gap conflicts */
#page-dashboard .page-header button[onclick="initDashboard()"]:hover,
#page-dashboard .page-header button[onclick="initDashboard()"]:active,
#page-dashboard .page-header button[onclick="initDashboard()"]:focus {
  transform: none !important;
  box-shadow: 0 4px 14px rgba(91,42,134,.32) !important;
}
/* Fix Patch 44 gap:22px overriding the button-group div */
#page-dashboard .page-header > div:last-child {
  gap: 8px !important;
  display: flex !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}
/* Fix select width — Patch 44 forces 236px which can overflow on smaller screens */
#dash-hotel-filter {
  min-width: unset !important;
  max-width: 220px !important;
}


/* ═══════════════════════════════════════════════════════════
   Patch reset-pwd — Forgot / Reset Password overlays
   ═══════════════════════════════════════════════════════════ */
.zl-auth-overlay {
  position: fixed;
  inset: 0;
  z-index: 99990;
  background: rgba(15, 6, 40, 0.72);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  animation: zlFadeIn .2s ease;
}
@keyframes zlFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
.zl-auth-modal {
  width: 100%;
  max-width: 420px;
  background: #fff;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 24px 80px rgba(91, 42, 134, .35);
  animation: zlSlideUp .22s ease;
}
@keyframes zlSlideUp {
  from { transform: translateY(20px); opacity: 0; }
  to   { transform: translateY(0);    opacity: 1; }
}
.zl-auth-modal-header {
  background: linear-gradient(135deg, #5b21b6, #c4b5fd, #a78bfa);
  padding: 26px 28px 22px;
}
.zl-auth-logo-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 16px;
}
.zl-auth-logo-icon {
  width: 34px;
  height: 34px;
  background: rgba(255,255,255,.2);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 900;
  color: #fff;
  line-height: 1;
}
.zl-auth-logo-text {
  font-size: 14px;
  font-weight: 700;
  color: rgba(255,255,255,.9);
  letter-spacing: .06em;
}
.zl-auth-badge {
  display: inline-block;
  background: rgba(255,255,255,.18);
  border: 1px solid rgba(255,255,255,.3);
  border-radius: 999px;
  padding: 4px 13px;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  letter-spacing: .05em;
  margin-bottom: 10px;
}
.zl-auth-title {
  font-size: 20px;
  font-weight: 800;
  color: #fff;
  line-height: 1.2;
}
.zl-auth-body {
  padding: 24px 28px 28px;
}
.zl-auth-field {
  margin-bottom: 14px;
}
.zl-auth-label {
  display: block;
  font-size: 13px;
  font-weight: 600;
  color: #374151;
  margin-bottom: 6px;
}
/* ===== Patch tareas toolbar layout fix ===== */
#page-tareas-table .card > div:first-child {
  flex-wrap: wrap !important;
  gap: 8px !important;
  padding: 10px 14px !important;
  align-items: center !important;
}
#page-tareas-table .card > div:first-child > div:first-child {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  align-items: center !important;
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
#page-tareas-table .card > div:first-child > div:last-child {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 6px !important;
  align-items: center !important;
  flex-shrink: 0 !important;
}
#tareas-table-sede {
  width: 150px !important;
  max-width: 150px !important;
  min-width: 0 !important;
  font-size: 12px !important;
  height: 32px !important;
  padding: 0 8px !important;
  flex-shrink: 0 !important;
}
#page-tareas-table .filter-btn {
  white-space: nowrap !important;
  font-size: 12px !important;
  padding: 5px 10px !important;
  flex-shrink: 0 !important;
}
#page-tareas-table .export-btn {
  white-space: nowrap !important;
  font-size: 12px !important;
  padding: 5px 10px !important;
  flex-shrink: 0 !important;
}
#tareas-table-search {
  width: 140px !important;
  min-width: 0 !important;
  font-size: 13px !important;
}
@media(max-width: 900px){
  #tareas-table-sede { width: 120px !important; max-width: 120px !important; }
  #tareas-table-search { width: 100px !important; }
  #page-tareas-table .card > div:first-child > div:last-child { flex-wrap: wrap !important; }
}

/* Patch 61 — tighten letter-spacing globally */
body, .app-shell, .main-content,
h1, h2, h3, h4, h5, h6,
p, span, div, td, th, li, a, button, input, select, textarea, label {
  letter-spacing: -0.012em !important;
}

/* === Patch 63 — sw-btn visual redesign === */
#page-incidencias .sw-grid{
  display:grid!important;
  grid-template-columns:repeat(2,1fr)!important;
  gap:14px!important;
}
#page-incidencias .sw-btn{
  min-height:96px!important;
  padding:18px 18px 16px!important;
  background:#fff!important;
  border:1.5px solid rgba(0,0,0,.07)!important;
  border-radius:16px!important;
  box-shadow:0 2px 12px rgba(15,23,42,.06),0 1px 3px rgba(15,23,42,.04)!important;
  position:relative!important;
  overflow:hidden!important;
  transition:transform .15s,box-shadow .15s!important;
  text-align:left!important;
}
#page-incidencias .sw-btn::after{
  content:''!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(135deg,rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.08),transparent 60%)!important;
  pointer-events:none!important;
}
#page-incidencias .sw-btn::before{
  content:''!important;
  position:absolute!important;
  top:0!important;left:0!important;right:0!important;
  height:3px!important;
  width:auto!important;bottom:auto!important;
  background:var(--sw-color,#5b7def)!important;
  border-radius:16px 16px 0 0!important;
  opacity:1!important;
}
#page-incidencias .sw-btn:hover{
  transform:translateY(-3px)!important;
  box-shadow:0 8px 28px rgba(15,23,42,.12),0 2px 8px rgba(15,23,42,.06)!important;
  border-color:var(--sw-color,#5b7def)!important;
}
#page-incidencias .sw-btn.active{
  background:rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.07)!important;
  border-color:var(--sw-color,#5b7def)!important;
  box-shadow:0 0 0 3px rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.15),0 8px 24px rgba(15,23,42,.1)!important;
}
#page-incidencias .sw-dot{
  width:44px!important;height:44px!important;
  border-radius:14px!important;
  background:rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.13)!important;
  border:1.5px solid rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.25)!important;
  box-shadow:0 2px 8px rgba(var(--sw-r,91),var(--sw-g,125),var(--sw-b,239),.20)!important;
  display:flex!important;align-items:center!important;justify-content:center!important;
  margin:0 0 12px!important;position:relative!important;z-index:1!important;
}
#page-incidencias .sw-dot::after{display:none!important}
#page-incidencias .sw-dot svg{stroke:var(--sw-color,#5b7def)!important;width:22px!important;height:22px!important}
#page-incidencias .sw-name{
  font-size:15px!important;font-weight:800!important;
  color:#111827!important;letter-spacing:-.02em!important;
  display:block!important;position:relative!important;z-index:1!important;
}
#page-incidencias .sw-sub{
  font-size:11.5px!important;font-weight:600!important;
  color:var(--sw-color,#5b7def)!important;opacity:.85!important;
  margin-top:3px!important;display:block!important;position:relative!important;z-index:1!important;
}

/* ── Executive score banner responsive (v66) ─────────────────────────────── */
@media(max-width:760px){
  #dash-score-banner{
    flex-direction:column!important;
    align-items:stretch!important;
    gap:16px!important;
    padding:18px!important;
  }
  #dash-score-banner > div:nth-child(3){ /* label */
    display:flex!important;
    align-items:center!important;
    gap:14px!important;
    min-width:0!important;
  }
  #dash-score-banner > div[style*='width:1px']{display:none!important}
  #dash-score-banner > div[style*='grid-template-columns:repeat(4']{
    grid-template-columns:repeat(2,1fr)!important;
    gap:0!important;
  }
  #dash-score-banner > div[style*='grid-template-columns:repeat(4'] > div:nth-child(3){
    border-left:1px solid rgba(255,255,255,.07)!important;
    border-top:1px solid rgba(255,255,255,.07)!important;
  }
  #dash-score-banner > div[style*='grid-template-columns:repeat(4'] > div:nth-child(4){
    border-top:1px solid rgba(255,255,255,.07)!important;
  }
}
@media(max-width:520px){
  #page-dashboard > div[style*='grid-template-columns:repeat(4,1fr)']:not(#dash-score-banner){
    grid-template-columns:repeat(2,1fr)!important;
  }
}

/* --- Patch 4: Button Theme lavender solid #C4B5FD no gradient --- */
/* Overrides ALL gradient/accent buttons sitewide. Sidebar/nav untouched. */

:root {
  --btn-lavender: #C4B5FD;
  --btn-lavender-hover: #a78bfa;
  --btn-lavender-active: #8b5cf6;
}

.btn-primary,
.submit-btn,
.save-btn {
  background: #7c3aed !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 4px 14px rgba(167,139,250,.35) !important;
}
.btn-primary:hover:not(:disabled),
.submit-btn:hover:not(:disabled),
.save-btn:hover {
  background: #6d28d9 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 8px 22px rgba(139,92,246,.42) !important;
}
.btn-primary:active,
.submit-btn:active,
.save-btn:active {
  background: #5b21b6 !important;
  transform: scale(.98) !important;
}
.btn-primary:disabled,
.submit-btn:disabled {
  opacity: .45 !important;
  background: #7c3aed !important;
  transform: none !important;
  box-shadow: none !important;
}

.export-btn {
  background: #7c3aed !important;
  color: #fff !important;
  border-color: #7c3aed !important;
  box-shadow: 0 4px 14px rgba(167,139,250,.28) !important;
}
.export-btn:hover {
  background: #6d28d9 !important;
  border-color: #6d28d9 !important;
}
.export-btn svg { stroke: #fff !important; }

.filter-btn.active {
  background: #7c3aed !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 4px 14px rgba(167,139,250,.35) !important;
}
.page-tab.active,
.login-tab.active {
  background: #7c3aed !important;
  color: #fff !important;
  border-color: var(--btn-lavender) !important;
}

.lang-btn.active {
  background: #7c3aed !important;
  color: #fff !important;
  border-color: var(--btn-lavender) !important;
}

.garage-week-actions .primary {
  background: #7c3aed !important;
  color: #fff !important;
  border-color: var(--btn-lavender) !important;
}

button.primary,
button[data-primary] {
  background: #7c3aed !important;
  color: #fff !important;
  border-color: var(--btn-lavender) !important;
}

.btn-primary:focus-visible,
.submit-btn:focus-visible,
.save-btn:focus-visible,
.export-btn:focus-visible {
  outline: 3px solid rgba(196,181,253,.6) !important;
  outline-offset: 2px !important;
}

/* === Responsive 14" screens 1024-1366px === */
@media (max-width: 1366px) {
  .sidebar { width: 220px; padding: 1.2rem .8rem; }
  .main { margin-left: 220px; padding: 1.6rem 2rem; }
  .stats-grid, #dash-kpis {
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
  }
}

/* === Responsive Tablet 640-1024px === */
@media (max-width: 1024px) {
  .sidebar { transform: translateX(-100%); width: 250px; }
  .sidebar.open { transform: translateX(0); }
  .main { margin-left: 0 !important; padding: 1.3rem !important; padding-top: 4.5rem !important; }
  .menu-toggle { display: flex !important; }
  .stats-grid, #dash-kpis {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
  }
  .row2, .guest-request-grid { grid-template-columns: 1fr 1fr !important; }
  .page-header { flex-direction: column; align-items: flex-start; }
  .toolbar, .page-tabs { flex-wrap: wrap; gap: 6px; }
  .btn-primary, .submit-btn, .save-btn { font-size: 14px !important; padding: 11px !important; }
  .export-btn { font-size: 12px !important; }
  table { font-size: 13px; }
}

/* === Responsive Mobile under 640px === */
@media (max-width: 640px) {
  .main { padding: .9rem !important; padding-top: 4.5rem !important; }
  .card, .stat-card { padding: 1rem !important; border-radius: 10px !important; }
  .page-title { font-size: 20px !important; }
  .page-sub { font-size: 12px !important; }
  .stats-grid, #dash-kpis { grid-template-columns: repeat(2, 1fr) !important; gap: 8px !important; }
  .row2, .guest-request-grid, .prio-row { grid-template-columns: 1fr !important; }
  .btn-primary, .submit-btn { padding: 12px !important; font-size: 15px !important; border-radius: 8px !important; }
  .save-btn { padding: 10px 14px !important; font-size: 13px !important; }
  .export-btn { width: 100% !important; justify-content: center !important; }
  .filter-btn { padding: 6px 10px !important; font-size: 11px !important; }
  .page-tab, .login-tab { padding: 7px 12px !important; font-size: 12px !important; }
  .page-tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; }
  .toolbar { flex-direction: column; align-items: stretch; }
  .toolbar .export-btn, .toolbar .save-btn { width: 100% !important; justify-content: center !important; }
  canvas { max-height: 190px !important; }
  .prio-row { grid-template-columns: 1fr 1fr !important; }
  input, select, textarea { font-size: 16px !important; }
  .garage-week-toolbar { flex-direction: column; align-items: flex-start; gap: 8px; }
  .garage-grid { grid-template-columns: 50px repeat(7, 110px); }
}

/* --- Patch 5: Purple premium solid · icon upgrade --- */

/* ── Sobrescribir variables de color de botones ── */
:root {
  --btn-lavender: #7c3aed;
  --btn-lavender-hover: #6d28d9;
  --btn-lavender-active: #5b21b6;
}

/* ── Botones: sombra púrpura coherente ── */
.btn-primary,
.submit-btn,
.save-btn {
  box-shadow: 0 4px 16px rgba(109,40,217,.30) !important;
  letter-spacing: .02em !important;
}
.btn-primary:hover:not(:disabled),
.submit-btn:hover:not(:disabled),
.save-btn:hover {
  box-shadow: 0 8px 24px rgba(109,40,217,.42) !important;
}
.export-btn {
  box-shadow: 0 3px 10px rgba(109,40,217,.20) !important;
}

/* ── Tabs y filtros activos ── */
.filter-btn.active,
.page-tab.active,
.login-tab.active,
.lang-btn.active {
  background: #7c3aed !important;
  box-shadow: 0 3px 10px rgba(109,40,217,.28) !important;
}

/* ════════════════════════════
   ICONOS PREMIUM — nav sidebar
   ════════════════════════════ */

/* Tamaño y grosor de todos los iconos de nav */
.nav-item svg {
  width: 17px !important;
  height: 17px !important;
  stroke-width: 1.6px !important;
  flex-shrink: 0 !important;
  transition: transform .15s !important;
}
.nav-item:hover svg {
  transform: scale(1.12) !important;
}

/* Icono del nav item activo: fondo pill morado */
.nav-item.active svg {
  filter: drop-shadow(0 0 4px rgba(124,58,237,.55)) !important;
  transform: scale(1.05) !important;
}

/* Contenedor icono activo: píldora de fondo */
.nav-item.active {
  background: rgba(124,58,237,.13) !important;
  color: #7c3aed !important;
}
.nav-item.active::before { display: none !important; }

/* Hover en nav items: sutil tinte morado */
.nav-item:hover {
  background: rgba(124,58,237,.07) !important;
  color: #6d28d9 !important;
}

/* ── Iconos dentro de stat cards ── */
.stat-icon svg,
.kpi-icon svg,
.card-icon svg {
  stroke-width: 1.5px !important;
  width: 22px !important;
  height: 22px !important;
}

/* ── Iconos dentro de botones ── */
.btn-primary svg,
.submit-btn svg,
.save-btn svg,
.export-btn svg {
  stroke-width: 2px !important;
  width: 14px !important;
  height: 14px !important;
  vertical-align: middle !important;
}

/* ── Sección logo / branding ── */
.sidebar-logo svg,
.logo-icon svg {
  filter: drop-shadow(0 2px 8px rgba(124,58,237,.5)) !important;
}


/* --- Override specificity fixes: zl-panel + all contexts --- */
.zl-panel .btn-primary,
.zl-panel .submit-btn,
.card .btn-primary,
.card .submit-btn,
.modal .btn-primary,
.modal .submit-btn,
.login-card .btn-primary,
[id^=page-] .btn-primary,
[id^=page-] .submit-btn,
[id^=page-] .save-btn,
[id^=page-] .export-btn {
  background: #7c3aed !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 4px 16px rgba(109,40,217,.30) !important;
}
.zl-panel .btn-primary:hover,
.zl-panel .submit-btn:hover,
[id^=page-] .btn-primary:hover,
[id^=page-] .submit-btn:hover,
[id^=page-] .save-btn:hover,
[id^=page-] .export-btn:hover {
  background: #6d28d9 !important;
  box-shadow: 0 8px 24px rgba(109,40,217,.42) !important;
}
.zl-panel .btn-primary:hover {
  background: #6d28d9 !important;
}
/* Nuclear override — covers inline styles too */
.btn-primary { background: #7c3aed !important; color: #fff !important; border: none !important; }
.submit-btn  { background: #7c3aed !important; color: #fff !important; border: none !important; }
.save-btn    { background: #7c3aed !important; color: #fff !important; border: none !important; }
.export-btn  { background: #7c3aed !important; color: #fff !important; }
.filter-btn.active { background: #7c3aed !important; color: #fff !important; }
.page-tab.active, .login-tab.active { background: #7c3aed !important; color: #fff !important; }

/* --- ID-specificity fix: login button + any other ID-named buttons --- */
#login-btn,
.zl-panel #login-btn,
#submit-btn,
[id$=-btn].btn-primary,
[id$=-btn].submit-btn {
  background: #7c3aed !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 4px 16px rgba(109,40,217,.30) !important;
}
#login-btn:hover,
.zl-panel #login-btn:hover {
  background: #6d28d9 !important;
  box-shadow: 0 8px 24px rgba(109,40,217,.42) !important;
}

/* ── Patch 6: Tv Rooms locked opacity forced ────────────────── */
.nav-locked-wrap .nav-item,
.nav-item[data-locked="1"] {
  opacity: .45 !important;
  pointer-events: auto !important;
}
.nav-locked-wrap:hover .nav-item,
.nav-item[data-locked="1"]:hover {
  opacity: .7 !important;
}

/* ── Patch 7: nav-locked-wrap fix (bordes no cortados) ──────── */
.nav-locked-wrap {
  width: 100% !important;
  margin: 0 !important;
}
.nav-locked-wrap .nav-item {
  border-radius: 10px !important;
  margin: 1px 0 !important;
  padding-left: 16px !important;
  padding-right: 16px !important;
  width: 100% !important;
}

/* ── Patch 8: Dashboard banner lavanda ──────────────────────── */
#dash-score-banner {
  background: linear-gradient(135deg, #c4b5fd 0%, #a78bfa 60%, #9d74f5 100%) !important;
  box-shadow: 0 8px 32px rgba(167,139,250,.35) !important;
}

/* ── Patch 9: Sidebar avatar — hover upload hint ─────────────── */
.user-chip .user-avatar { position: relative; cursor: pointer; transition: filter .2s; }
.user-chip:hover .user-avatar::after {
  content: '📷';
  position: absolute;
  inset: 0;
  background: rgba(91,33,182,.55);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
}

/* ── Patch 9b: avatar camera icon show on hover ─────────────── */
#sidebar-avatar label:hover .avatar-cam-icon,
#sidebar-avatar label:hover svg {
  opacity: 1 !important;
}
#sidebar-avatar label:hover {
  background: rgba(91,33,182,.5) !important;
}

/* ── Patch 10: F5 anti-flicker via CSS vars ─────────────────── */
#login-screen { display: var(--init-login-display, flex); }
#app { display: var(--init-app-display, none); }

/* ════════════════════════════════════════════════════════════════════
   PROGRAMA AFECTADO v148 — rediseño con logos integrados
   ══════════════════════════════════════════════════════════════════ */
.sw-btn.sw-btn-v2{
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  width:100% !important;
  padding:14px 16px !important;
  border-radius:14px !important;
  border:1.5px solid #e8ecf3 !important;
  background:#fff !important;
  cursor:pointer !important;
  transition:all .2s cubic-bezier(.4,0,.2,1) !important;
  position:relative !important;
  text-align:left !important;
  overflow:hidden !important;
  box-shadow:0 1px 2px rgba(15,23,42,.04) !important;
}
.sw-btn.sw-btn-v2::before{display:none !important}
.sw-btn.sw-btn-v2:hover{
  border-color:var(--sw-color) !important;
  background:#fff !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(15,23,42,.08), 0 0 0 4px color-mix(in srgb, var(--sw-color) 10%, transparent) !important;
}
.sw-btn.sw-btn-v2.active{
  border-color:var(--sw-color) !important;
  background:color-mix(in srgb, var(--sw-color) 6%, #fff) !important;
  box-shadow:0 4px 14px color-mix(in srgb, var(--sw-color) 22%, transparent), inset 0 0 0 1px var(--sw-color) !important;
}
.sw-btn.sw-btn-v2 .sw-logo{
  width:44px !important;
  height:44px !important;
  border-radius:12px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#fff !important;
  flex-shrink:0 !important;
  box-shadow:0 4px 12px color-mix(in srgb, var(--sw-color) 35%, transparent) !important;
  position:relative !important;
}
.sw-btn.sw-btn-v2:hover .sw-logo{
  transform:scale(1.05) rotate(-2deg) !important;
  transition:transform .25s ease !important;
}
.sw-btn.sw-btn-v2 .sw-logo svg{
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.15)) !important;
}
.sw-btn.sw-btn-v2 .sw-text{
  flex:1 !important;
  min-width:0 !important;
  display:flex !important;
  flex-direction:column !important;
  gap:2px !important;
  background:transparent !important;
  border:none !important;
}
.sw-btn.sw-btn-v2 .sw-name{
  font-size:15px !important;
  font-weight:800 !important;
  color:#0f172a !important;
  margin:0 !important;
  letter-spacing:-.01em !important;
  line-height:1.2 !important;
}
.sw-btn.sw-btn-v2 .sw-sub{
  font-size:11.5px !important;
  font-weight:600 !important;
  color:#94a3b8 !important;
  margin:0 !important;
  line-height:1.3 !important;
}
.sw-btn.sw-btn-v2.active .sw-sub{
  color:var(--sw-color) !important;
}
.sw-btn.sw-btn-v2 .sw-check{
  width:24px !important;
  height:24px !important;
  border-radius:50% !important;
  background:var(--sw-color) !important;
  color:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-shrink:0 !important;
  opacity:0 !important;
  transform:scale(.5) !important;
  transition:all .2s ease !important;
}
.sw-btn.sw-btn-v2.active .sw-check{
  opacity:1 !important;
  transform:scale(1) !important;
}
.sw-grid{
  display:grid !important;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr)) !important;
  gap:12px !important;
}

/* ════════════════════════════════════════════════════════════════════
   PROGRAMA AFECTADO v148 — override #page-incidencias specificity
   ══════════════════════════════════════════════════════════════════ */
#page-incidencias .sw-btn.sw-btn-v2,
.sw-btn.sw-btn-v2 {
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:14px !important;
  width:100% !important;
  min-height:0 !important;
  padding:14px 16px !important;
  border-radius:14px !important;
  border:1.5px solid #e8ecf3 !important;
  background:#fff !important;
  text-align:left !important;
  overflow:hidden !important;
}
#page-incidencias .sw-btn.sw-btn-v2::before,
.sw-btn.sw-btn-v2::before {
  display:none !important;
  content:none !important;
}
#page-incidencias .sw-btn.sw-btn-v2 .sw-logo,
.sw-btn.sw-btn-v2 .sw-logo {
  width:44px !important;
  height:44px !important;
  min-width:44px !important;
  border-radius:12px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  color:#fff !important;
  flex-shrink:0 !important;
  border:none !important;
  margin:0 !important;
  box-shadow:0 4px 12px rgba(0,0,0,.10) !important;
}
#page-incidencias .sw-btn.sw-btn-v2 .sw-logo svg,
.sw-btn.sw-btn-v2 .sw-logo svg {
  stroke:#fff !important;
  color:#fff !important;
}
#page-incidencias .sw-btn.sw-btn-v2 .sw-text,
.sw-btn.sw-btn-v2 .sw-text {
  flex:1 1 auto !important;
  display:flex !important;
  flex-direction:column !important;
  align-items:flex-start !important;
  gap:2px !important;
  text-align:left !important;
  min-width:0 !important;
}
#page-incidencias .sw-btn.sw-btn-v2 .sw-name,
.sw-btn.sw-btn-v2 .sw-name {
  font-size:15px !important;
  font-weight:800 !important;
  color:#0f172a !important;
  margin:0 !important;
  padding:0 !important;
  letter-spacing:-.01em !important;
  line-height:1.2 !important;
  text-align:left !important;
}
#page-incidencias .sw-btn.sw-btn-v2 .sw-sub,
.sw-btn.sw-btn-v2 .sw-sub {
  font-size:11.5px !important;
  font-weight:600 !important;
  color:#94a3b8 !important;
  margin:0 !important;
  padding:0 !important;
  letter-spacing:0 !important;
  line-height:1.3 !important;
  text-align:left !important;
}
#page-incidencias .sw-btn.sw-btn-v2.active .sw-sub,
.sw-btn.sw-btn-v2.active .sw-sub {
  color:var(--sw-color) !important;
}
#page-incidencias .sw-btn.sw-btn-v2 .sw-check,
.sw-btn.sw-btn-v2 .sw-check {
  width:24px !important;
  height:24px !important;
  border-radius:50% !important;
  background:var(--sw-color) !important;
  color:#fff !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-shrink:0 !important;
  opacity:0 !important;
  transform:scale(.5) !important;
  transition:all .2s ease !important;
}
#page-incidencias .sw-btn.sw-btn-v2.active .sw-check,
.sw-btn.sw-btn-v2.active .sw-check {
  opacity:1 !important;
  transform:scale(1) !important;
}
#page-incidencias .sw-btn.sw-btn-v2:hover,
.sw-btn.sw-btn-v2:hover {
  border-color:var(--sw-color) !important;
  background:#fff !important;
  transform:translateY(-2px) !important;
  box-shadow:0 6px 20px rgba(15,23,42,.08) !important;
}
#page-incidencias .sw-btn.sw-btn-v2.active,
.sw-btn.sw-btn-v2.active {
  border-color:var(--sw-color) !important;
  background:#fff !important;
  box-shadow:0 4px 14px rgba(0,0,0,.06), inset 0 0 0 1.5px var(--sw-color) !important;
}

/* Override grid align-self that breaks v2 layout */
#page-incidencias .sw-btn.sw-btn-v2 .sw-name,
.sw-btn.sw-btn-v2 .sw-name {
  align-self:flex-start !important;
  justify-self:flex-start !important;
}
#page-incidencias .sw-btn.sw-btn-v2 .sw-sub,
.sw-btn.sw-btn-v2 .sw-sub {
  align-self:flex-start !important;
  justify-self:flex-start !important;
}
#page-incidencias .sw-btn.sw-btn-v2 {
  display:flex !important;
  grid-template-columns:none !important;
  grid-template-rows:none !important;
}

/* ════════════════════════════════════════════════════════════════════
   KANBAN VIEW v149 — tablero por columnas en sección Tareas
   ══════════════════════════════════════════════════════════════════ */
#tt-kanban-board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:16px;align-items:start}
@media(max-width:900px){#tt-kanban-board{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){#tt-kanban-board{grid-template-columns:1fr}}
#tt-kanban-board .kb-col{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;box-shadow:0 3px 14px rgba(15,23,42,.08)}
#tt-kanban-board .kb-header{padding:11px 14px;display:flex;align-items:center;gap:8px;position:relative;overflow:hidden}
#tt-kanban-board .kb-header::after{content:'';position:absolute;right:-20px;top:-20px;width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.08)}
#tt-kanban-board .kb-header-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.7);flex-shrink:0}
#tt-kanban-board .kb-header-title{font-size:12.5px;font-weight:800;color:#fff;letter-spacing:-.01em;flex:1}
#tt-kanban-board .kb-count{min-width:20px;height:20px;border-radius:999px;padding:0 5px;background:rgba(255,255,255,.22);color:#fff;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center}
#tt-kanban-board .kb-body{background:#f8fafc;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:100px;border-radius:0 0 14px 14px}
#tt-kanban-board .kb-body.kbdragover{background:rgba(139,92,246,.06);outline:2px dashed #a78bfa;outline-offset:-3px;border-radius:10px}
#tt-kanban-board .kb-card{background:#fff;border-radius:11px;border:1.5px solid #e8ecf3;box-shadow:0 1px 4px rgba(15,23,42,.05);overflow:hidden;cursor:grab;transition:box-shadow .15s,transform .15s}
#tt-kanban-board .kb-card:hover{box-shadow:0 4px 16px rgba(91,33,182,.1);transform:translateY(-1px)}
#tt-kanban-board .kb-card:active{cursor:grabbing}
#tt-kanban-board .kb-card.kb-dragging{opacity:.35;transform:scale(.97)}
#tt-kanban-board .kb-col-closed .kb-card{opacity:.7}
#tt-kanban-board .kb-col-closed .kb-card-title{text-decoration:line-through;color:#94a3b8!important}
#tt-kanban-board .kb-accent{height:4px}
#tt-kanban-board .kb-content{padding:10px 12px 7px}
#tt-kanban-board .kb-row-top{display:flex;align-items:center;justify-content:space-between;gap:6px;margin-bottom:4px}
#tt-kanban-board .kb-id-badge{font-size:9px;font-weight:900;color:#c4b5fd;letter-spacing:.07em}
#tt-kanban-board .kb-prio-badge{font-size:9.5px;font-weight:800;padding:2px 8px;border-radius:999px;white-space:nowrap;border:1.5px solid transparent}
#tt-kanban-board .kb-card-title{font-size:12.5px;font-weight:800;color:#0f172a;line-height:1.3;margin-bottom:5px}
#tt-kanban-board .kb-sede-row{display:flex;align-items:center;gap:5px;margin-bottom:5px}
#tt-kanban-board .kb-sede-icon{width:17px;height:17px;border-radius:5px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
#tt-kanban-board .kb-sede-name{font-size:11px;color:#64748b;font-weight:600}
#tt-kanban-board .kb-dept-name{font-size:10.5px;color:#94a3b8}
#tt-kanban-board .kb-desc-text{font-size:11px;color:#94a3b8;line-height:1.35;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* DEPRECATED v200: #tt-kanban-board .kb-bottom{display:flex;align-items:center;gap:5px;padding:7px 10px 9px;border-top:1px solid #f1f5f9} */
#tt-kanban-board .kb-avatar{width:22px;height:22px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:8.5px;font-weight:800;color:#fff;border:1.5px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.15)}
#tt-kanban-board .kb-date-label{flex:1;font-size:9.5px;color:#94a3b8;font-weight:600;display:flex;align-items:center;gap:3px;overflow:hidden;white-space:nowrap;min-width:0}
#tt-kanban-board .kb-date-label.kb-overdue{color:#dc2626;font-weight:700}
#tt-kanban-board .kb-ico-btn{width:26px;height:26px;flex-shrink:0;border-radius:6px;background:#f8fafc;color:#64748b;border:1.5px solid #e2e8f0;display:flex;align-items:center;justify-content:center;cursor:pointer;box-sizing:border-box}
#tt-kanban-board .kb-ico-btn:hover{background:#e2e8f0}
#tt-kanban-board .kb-close-btn{height:26px;padding:0 9px;flex-shrink:0;border-radius:6px;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:none;font-size:10.5px;font-weight:700;display:flex;align-items:center;gap:3px;cursor:pointer;white-space:nowrap;font-family:inherit;box-sizing:border-box}
#tt-kanban-board .kb-estado-sel{width:90px;flex-shrink:0;height:26px;padding:0 18px 0 7px;border-radius:6px;font-size:10px;font-weight:700;cursor:pointer;outline:none;border:1.5px solid;background-color:#fff;font-family:inherit;-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 4px center;box-sizing:border-box}
#tt-kanban-board .kb-add-btn{width:100%;padding:7px;border-radius:8px;border:1.5px dashed #e2e8f0;background:transparent;color:#94a3b8;font-size:11px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;font-family:inherit;transition:all .12s}
#tt-kanban-board .kb-add-btn:hover{border-color:#a78bfa;color:#7c3aed;background:#faf5ff}
#tt-kanban-board .kb-empty-col{text-align:center;padding:24px 12px;color:#cbd5e1}
#tt-kanban-board .kb-empty-col svg{margin:0 auto 7px;opacity:.4;display:block}
#tt-kanban-board .kb-empty-txt{font-size:11px;font-weight:700}

/* ════════════════════════════════════════════════════════════════════
   SOLICITUD CALENDAR v150 — 4 filas tipadas + botones rediseñados
   ════════════════════════════════════════════════════════════════════ */

/* Grid container */
.gcal-v150-grid{
  display:grid;
  grid-template-columns:96px repeat(7,minmax(130px,1fr));
  overflow-x:auto;
  border-radius:12px;
  overflow:hidden;
  border:1.5px solid var(--border,#e8ecf3);
  box-shadow:0 2px 12px rgba(15,23,42,.06);
}

/* Corner & day headers */
.gcal-corner{
  background:var(--warm,#f8f7f4);
  border-bottom:2px solid var(--border,#e8ecf3);
  border-right:1px solid var(--border,#e8ecf3);
}
.gcal-head{
  background:var(--warm,#f8f7f4);
  border-bottom:2px solid var(--border,#e8ecf3);
  border-right:1px solid var(--border,#e8ecf3);
  padding:10px 6px 9px;
  text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:5px;
}
.gcal-head.gcal-today-head{
  background:rgba(91,33,182,.07);
  border-bottom-color:#8b5cf6;
}
.gcal-day-name{
  font-size:11px;font-weight:700;
  color:var(--muted,#94a3b8);
  text-transform:capitalize;
  letter-spacing:.04em;
}
.gcal-day-num{
  font-size:18px;font-weight:900;
  color:var(--text,#0f172a);
  line-height:1;
}
.gcal-day-num.gcal-today-num{
  background:linear-gradient(135deg,#5b21b6,#8b5cf6);
  color:#fff;
  border-radius:50%;
  width:30px;height:30px;
  display:flex;align-items:center;justify-content:center;
  font-size:14px;
  box-shadow:0 3px 10px rgba(91,33,182,.35);
}

/* Row labels — sticky left */
.gcal-row-label{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:6px;padding:10px 6px;
  border-right:1px solid var(--border,#e8ecf3);
  border-bottom:1px solid var(--border,#e8ecf3);
  background:var(--surface,#fff);
  position:sticky;left:0;z-index:5;
}
.gcal-row-icon{
  width:36px;height:36px;border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  color:#fff;flex-shrink:0;
}
.gcal-row-icon svg{stroke:#fff!important;fill:none;}
.gcal-row-name{
  font-size:10.5px;font-weight:800;
  color:var(--text,#0f172a);
  text-align:center;
  line-height:1.2;
  text-transform:uppercase;
  letter-spacing:.04em;
}

/* Separator between rows */
.gcal-row-sep{
  grid-column:1 / -1;
  height:0;
  border-bottom:1.5px solid var(--border,#e8ecf3);
}

/* Cells */
.gcal-cell{
  min-height:92px;
  border-bottom:1px solid var(--border,#e8ecf3);
  border-right:1px solid var(--border,#e8ecf3);
  background:#fff;
  padding:5px;
  position:relative;
  cursor:pointer;
  transition:background .12s;
}
.gcal-cell:hover{background:var(--rt-bg,rgba(139,92,246,.07));}
.gcal-cell.gcal-today{background:rgba(91,33,182,.04);}

/* Events inside cell */
.gcal-event{
  border-radius:5px;padding:3px 7px;margin-bottom:3px;
  color:#fff;font-size:11px;font-weight:700;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  box-shadow:0 2px 6px rgba(0,0,0,.14);
}

/* Hover overlay — single typed add button */
.gcal-cell-hover{
  display:none;
  position:absolute;inset:2px;
  align-items:center;justify-content:center;
  z-index:20;
}
.gcal-cell:hover .gcal-cell-hover{display:flex;}
.gcal-add-btn{
  width:100%;height:100%;
  border:1.5px dashed var(--rt-border,rgba(139,92,246,.5));
  border-radius:8px;
  background:var(--rt-bg,rgba(139,92,246,.08));
  cursor:pointer;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:4px;
  transition:all .15s cubic-bezier(.16,1,.3,1);
  pointer-events:all;
  padding:0;
  font-family:inherit;
}
.gcal-add-btn:hover{
  border-style:solid;
  border-color:var(--rt-color,#8b5cf6);
  box-shadow:0 4px 18px rgba(0,0,0,.14);
  transform:scale(1.02);
}
.gcal-add-icon svg{
  stroke:var(--rt-color,#8b5cf6)!important;
  fill:none;
  transition:stroke .15s;
}
.gcal-add-btn:hover .gcal-add-icon svg{stroke:#fff!important;}
.gcal-add-btn:hover{background:var(--rt-grad,linear-gradient(135deg,#5b21b6,#8b5cf6))!important;}
.gcal-add-lbl{
  font-size:11px;font-weight:800;
  color:var(--rt-color,#8b5cf6);
  text-transform:uppercase;letter-spacing:.04em;
  transition:color .15s;
}
.gcal-add-btn:hover .gcal-add-lbl{color:#fff;}
.gcal-add-plus{
  font-size:10px;font-weight:600;
  color:var(--muted,#94a3b8);
  transition:color .15s;
}
.gcal-add-btn:hover .gcal-add-plus{color:rgba(255,255,255,.8);}

/* Responsive */
@media(max-width:900px){
  .gcal-v150-grid{grid-template-columns:76px repeat(7,110px);}
  .gcal-cell{min-height:74px;}
}
@media(max-width:600px){
  .gcal-v150-grid{grid-template-columns:60px repeat(7,90px);}
  .gcal-cell{min-height:60px;}
  .gcal-day-num{font-size:15px;}
}

/* ════════════════════════════════════════════════════════════════════
   KANBAN PREVIEW v149d — diseño final del preview HTML
   (sobreescribe v149 al venir después en cascada)
   ════════════════════════════════════════════════════════════════════ */
#tt-kanban-board{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;align-items:start;padding:0;background:transparent}
@media(max-width:900px){#tt-kanban-board{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){#tt-kanban-board{grid-template-columns:1fr}}

#tt-kanban-board .kb-col{display:flex;flex-direction:column;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px rgba(15,23,42,.08);background:transparent}

#tt-kanban-board .kb-header{display:flex;align-items:center;gap:10px;padding:16px 18px;position:relative;overflow:hidden}
#tt-kanban-board .kb-header::before{content:'';position:absolute;right:-30px;top:-30px;width:100px;height:100px;border-radius:50%;background:rgba(255,255,255,.1)}
#tt-kanban-board .kb-header::after{content:'';position:absolute;right:20px;bottom:-40px;width:80px;height:80px;border-radius:50%;background:rgba(255,255,255,.07)}
#tt-kanban-board .kb-header-dot{width:10px;height:10px;border-radius:50%;background:rgba(255,255,255,.6);flex-shrink:0;position:relative;z-index:1}
#tt-kanban-board .kb-header-title{font-size:14px;font-weight:900;color:#fff;letter-spacing:-.01em;flex:1;position:relative;z-index:1}
#tt-kanban-board .kb-count{background:rgba(255,255,255,.2);color:#fff;font-size:13px;font-weight:900;min-width:28px;height:28px;border-radius:999px;display:flex;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,.35);padding:0 9px;position:relative;z-index:1}

#tt-kanban-board .kb-body{background:#f8fafc;border:1.5px solid #e2e8f0;border-top:none;border-radius:0 0 16px 16px;padding:10px;min-height:120px;display:block}

#tt-kanban-board .kb-card{background:#fff;border-radius:12px;margin-bottom:9px;box-shadow:0 1px 3px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);border:1px solid #e8ecf3;overflow:hidden;transition:transform .15s ease,box-shadow .15s ease;cursor:grab}
#tt-kanban-board .kb-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(15,23,42,.11)}
#tt-kanban-board .kb-card:last-of-type{margin-bottom:0}
#tt-kanban-board .kb-card:active{cursor:grabbing}
#tt-kanban-board .kb-card.kb-dragging,#tt-kanban-board .kb-card.dragging{opacity:.35;transform:scale(.97);box-shadow:0 2px 8px rgba(91,33,182,.15) !important}

#tt-kanban-board .kb-accent{height:4px}
#tt-kanban-board .kb-content{padding:12px 13px 0}

#tt-kanban-board .kb-row-top{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:5px}
#tt-kanban-board .kb-id{font-size:9.5px;font-weight:900;color:#c4b5fd;letter-spacing:.07em}
#tt-kanban-board .kb-prio{font-size:10px;font-weight:800;padding:2px 9px;border-radius:999px;white-space:nowrap;border:1.5px solid transparent}

#tt-kanban-board .kb-title{font-size:13.5px;font-weight:800;color:#0f172a;line-height:1.35;margin-bottom:7px}

#tt-kanban-board .kb-sede{display:flex;align-items:center;gap:6px;margin-bottom:6px}
#tt-kanban-board .kb-sede-icon{width:20px;height:20px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
#tt-kanban-board .kb-sede-icon svg{display:block}
#tt-kanban-board .kb-sede-text{font-size:11.5px;color:#64748b;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tt-kanban-board .kb-dept{font-size:11px;color:#94a3b8;font-weight:500}

#tt-kanban-board .kb-desc{font-size:11.5px;color:#94a3b8;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:10px}

/* DEPRECATED v200: #tt-kanban-board .kb-bottom{display:flex;align-items:center;gap:6px;padding:8px 12px 10px;border-top:1px solid #f1f5f9} */
#tt-kanban-board .kb-avatar{width:24px;height:24px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#fff;border:1.5px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.15)}
#tt-kanban-board .kb-date{flex:1;min-width:0;display:flex;align-items:center;gap:4px;font-size:10px;color:#94a3b8;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tt-kanban-board .kb-date.overdue{color:#dc2626;font-weight:700}

#tt-kanban-board .kb-icoBtn{width:28px;height:28px;flex-shrink:0;border-radius:7px;background:#f8fafc;color:#64748b;border:1.5px solid #e2e8f0;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .12s;box-sizing:border-box;padding:0}
#tt-kanban-board .kb-icoBtn:hover{background:#e2e8f0}

#tt-kanban-board .kb-btn-close{height:28px;padding:0 11px;flex-shrink:0;border-radius:7px;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:none;font-size:11.5px;font-weight:700;display:flex;align-items:center;gap:4px;cursor:pointer;white-space:nowrap;box-sizing:border-box;transition:opacity .12s;font-family:inherit}
#tt-kanban-board .kb-btn-close:hover{opacity:.88}

#tt-kanban-board .kb-sel{width:108px;flex-shrink:0;height:28px;padding:0 22px 0 8px;border-radius:7px;font-size:11px;font-weight:700;cursor:pointer;outline:none;border:1.5px solid;background-color:#fff;font-family:inherit;box-sizing:border-box;line-height:28px;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='9' height='9' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 6px center}

#tt-kanban-board .kb-reopen{height:28px;padding:0 10px;border-radius:7px;border:1.5px solid #e2e8f0;background:#fff;color:#5b21b6;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;box-sizing:border-box;font-family:inherit;flex-shrink:0}

#tt-kanban-board .kb-col-closed .kb-card{opacity:.72;cursor:default}
#tt-kanban-board .kb-col-closed .kb-title{text-decoration:line-through;color:#94a3b8 !important}
#tt-kanban-board .kb-col-closed .kb-bottom{background:#f8fafc}
#tt-kanban-board .kb-col-closed .kb-btn-close{background:#e2e8f0 !important;color:#94a3b8 !important;cursor:default}
#tt-kanban-board .kb-col-closed .kb-icoBtn{opacity:.5;cursor:default}
#tt-kanban-board .kb-closed-badge{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:800;color:#64748b;background:#f1f5f9;border:1px solid #e2e8f0;padding:2px 8px;border-radius:999px;letter-spacing:.03em}

#tt-kanban-board .kb-body.kbdragover,#tt-kanban-board .kb-body.drag-over{background:rgba(139,92,246,.07);outline:2px dashed #8b5cf6;outline-offset:-4px;border-radius:12px;transition:background .15s}

#tt-kanban-board .kb-empty{text-align:center;padding:40px 16px;color:#cbd5e1}
#tt-kanban-board .kb-empty svg{margin-bottom:10px;opacity:.4}
#tt-kanban-board .kb-empty-txt{font-size:12px;font-weight:700}

#tt-kanban-board .kb-add{width:100%;height:34px;margin-top:8px;border-radius:9px;border:1.5px dashed #e2e8f0;background:transparent;color:#94a3b8;font-size:12px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:all .15s;font-family:inherit}
#tt-kanban-board .kb-add:hover{border-color:#a78bfa;color:#7c3aed;background:#faf5ff}

/* ════════════════════════════════════════════════════════════════════
   KANBAN HOVER FIX v149e — sin transform en hover (evita temblor)
   ══════════════════════════════════════════════════════════════════ */

/* Eliminar el transform en hover que provoca temblor por conflicto
   con reglas previas. Solo aplicamos box-shadow para feedback visual. */
#tt-kanban-board .kb-card{
  transform:none !important;
  transition:box-shadow .18s ease, border-color .15s ease !important;
  will-change:box-shadow;
}
#tt-kanban-board .kb-card:hover{
  transform:none !important;
  box-shadow:0 6px 22px rgba(91,33,182,.13), 0 2px 6px rgba(15,23,42,.06) !important;
  border-color:#c4b5fd !important;
}

/* Drag: aquí sí queremos transformación, pero sin transición para que sea instantánea */
#tt-kanban-board .kb-card.kb-dragging,
#tt-kanban-board .kb-card.dragging{
  transform:scale(.97) !important;
  opacity:.45 !important;
  transition:none !important;
  cursor:grabbing !important;
}

/* Tarjetas cerradas: efecto "apagado" más marcado */
#tt-kanban-board .kb-col-closed .kb-card{
  opacity:.58 !important;
  filter:grayscale(.35);
  transition:opacity .15s, filter .15s !important;
}
#tt-kanban-board .kb-col-closed .kb-card:hover{
  opacity:.82 !important;
  filter:grayscale(.15);
  box-shadow:0 2px 8px rgba(15,23,42,.08) !important;
  border-color:#e2e8f0 !important;
}

#tt-kanban-board .kb-card{ cursor:grab !important; }
#tt-kanban-board .kb-col-closed .kb-card{ opacity:0.7 !important; }
#tt-kanban-board .kb-col-closed .kb-card[draggable="true"]{ cursor:grab !important; }

/* CAPTCHA SLIDE v1 — shake animation */
@keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-6px)} 50%{transform:translateX(6px)} 75%{transform:translateX(-4px)} }
/* GUARD: AVATAR UPLOAD v1 */


/* ════════════════════════════════════════════════════════════════════
   AVATAR UPLOAD v1 — badge cámara visible siempre + default más limpio
   ════════════════════════════════════════════════════════════════════ */

/* Badge cámara permanente en avatar sidebar */
.user-avatar { position: relative !important; }
.user-avatar::after {
  content: '';
  position: absolute;
  bottom: -3px;
  right: -3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='%237c3aed' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E") center / 10px no-repeat;
  border: 2px solid #12062a;
  box-shadow: 0 2px 6px rgba(0,0,0,.35);
  pointer-events: none;
  z-index: 2;
  transition: transform .15s ease;
}
.user-avatar:hover::after {
  transform: scale(1.15);
  background-color: #f5f3ff;
}

/* Cuando hay imagen, el badge se ve aún mejor */
.user-avatar img + .avatar-cam-overlay,
.user-avatar img { z-index: 0; }

/* Mejor gradiente por defecto (sin foto) — moradito limpio */
.user-avatar {
  background: linear-gradient(135deg, #6d28d9 0%, #a78bfa 60%, #c4b5fd 100%) !important;
  box-shadow: 0 0 0 2px rgba(167,139,250,.4), 0 4px 12px rgba(91,33,182,.45) !important;
  letter-spacing: 0 !important;
  font-weight: 900 !important;
  text-shadow: 0 1px 2px rgba(0,0,0,.15);
}

/* En el modal de perfil — preview foto también con badge */
#profile-photo-preview {
  position: relative !important;
}
#profile-photo-preview::after {
  content: '';
  position: absolute;
  bottom: 2px; right: 2px;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: linear-gradient(135deg,#7c3aed,#5b21b6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'/%3E%3Ccircle cx='12' cy='13' r='4'/%3E%3C/svg%3E") center / 14px no-repeat;
  border: 2px solid #fff;
  box-shadow: 0 4px 12px rgba(124,58,237,.45);
  pointer-events: none;
  z-index: 2;
}

/* Tooltip "Subir foto" pequeño bajo el avatar cuando no hay imagen */
.user-avatar:not(.has-photo)::before {
  content: '';
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 14px; height: 14px;
  border-radius: 50%;
  background: rgba(255,255,255,.18);
  pointer-events: none;
  opacity: 0;
  transition: opacity .15s;
}

/* ════════════════════════════════════════════════════════════════════
   KANBAN POLISH v179 — bottom uniforme + tooltip + prioridad destacada
   ════════════════════════════════════════════════════════════════════ */

/* ── Bottom: layout flexible que no corta nada ── */
#tt-kanban-board .kb-bottom{
  display:flex !important;
  align-items:center !important;
  gap:7px !important;
  padding:9px 12px 11px !important;
  border-top:1px solid #f1f5f9 !important;
  flex-wrap:wrap !important;  /* permite que el select baje a otra línea si no cabe */
  row-gap:7px !important;
}

/* ── Avatar con tooltip legible ── */
#tt-kanban-board .kb-avatar{
  position:relative;
  width:26px !important; height:26px !important;
  font-size:10px !important;
  cursor:default;
}
/* Tooltip oscuro custom — al hacer hover sobre el avatar */
#tt-kanban-board .kb-avatar:hover::after{
  content: attr(title);
  position:absolute;
  bottom:calc(100% + 8px);
  left:50%;
  transform:translateX(-50%);
  background:#0f172a;
  color:#fff;
  font-size:11.5px;
  font-weight:700;
  padding:6px 10px;
  border-radius:7px;
  white-space:nowrap;
  box-shadow:0 6px 20px rgba(15,23,42,.35);
  z-index:50;
  pointer-events:none;
  letter-spacing:-.01em;
  animation:kbTipIn .15s ease-out;
}
#tt-kanban-board .kb-avatar:hover::before{
  content:'';
  position:absolute;
  bottom:calc(100% + 2px);
  left:50%;
  transform:translateX(-50%);
  border:6px solid transparent;
  border-top-color:#0f172a;
  z-index:50;
  pointer-events:none;
}
@keyframes kbTipIn{from{opacity:0;transform:translate(-50%,3px)}to{opacity:1;transform:translate(-50%,0)}}

/* ── Fecha: sin truncar, puede ocupar 2 líneas si hace falta ── */
#tt-kanban-board .kb-date{
  flex:1 1 auto !important;
  min-width:90px !important;
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  font-size:10.5px !important;
  color:#64748b !important;
  font-weight:600 !important;
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
}
#tt-kanban-board .kb-date.overdue{color:#dc2626 !important; font-weight:700 !important;}

/* ── Botones Cerrar + Select: misma altura, padding, alineación ── */
#tt-kanban-board .kb-btn-close,
#tt-kanban-board .kb-sel,
#tt-kanban-board .kb-reopen,
#tt-kanban-board .kb-icoBtn{
  height:30px !important;
  box-sizing:border-box !important;
  font-size:11.5px !important;
  font-weight:800 !important;
  font-family:inherit !important;
  line-height:1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  flex-shrink:0 !important;
  border-radius:8px !important;
}
#tt-kanban-board .kb-btn-close{
  padding:0 14px !important;
  background:linear-gradient(135deg,#16a34a,#15803d) !important;
  color:#fff !important;
  border:none !important;
  gap:5px !important;
  box-shadow:0 2px 6px rgba(22,163,74,.3) !important;
}
#tt-kanban-board .kb-btn-close:hover{
  box-shadow:0 3px 10px rgba(22,163,74,.4) !important;
  transform:translateY(-1px) !important;
}
#tt-kanban-board .kb-sel{
  width:106px !important;
  padding:0 24px 0 12px !important;
  border:1.5px solid !important;
  background-color:#fff !important;
  text-align:center !important;
  text-align-last:center !important;
  cursor:pointer !important;
  appearance:none !important;
  -webkit-appearance:none !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 8px center !important;
}
#tt-kanban-board .kb-sel option{text-align:center;font-weight:700}
#tt-kanban-board .kb-icoBtn{
  width:30px !important;
  padding:0 !important;
  border:1.5px solid #e2e8f0 !important;
  background:#fff !important;
  color:#5b21b6 !important;
}
#tt-kanban-board .kb-icoBtn:hover{
  border-color:#a78bfa !important;
  background:#faf5ff !important;
}
#tt-kanban-board .kb-reopen{
  padding:0 12px !important;
  border:1.5px solid #c4b5fd !important;
  background:#faf5ff !important;
  color:#5b21b6 !important;
}

/* ── PRIORIDAD MÁS DESTACADA ── */
#tt-kanban-board .kb-prio{
  font-size:11px !important;
  font-weight:900 !important;
  padding:4px 12px !important;
  border-radius:7px !important;
  white-space:nowrap !important;
  border:1.5px solid transparent !important;
  letter-spacing:.04em !important;
  text-transform:uppercase !important;
  box-shadow:0 1px 3px rgba(15,23,42,.08), inset 0 -1.5px 0 rgba(0,0,0,.06) !important;
  position:relative !important;
}
#tt-kanban-board .kb-prio::before{
  content:'';
  display:inline-block;
  width:6px; height:6px;
  border-radius:50%;
  background:currentColor;
  margin-right:6px;
  vertical-align:middle;
  box-shadow:0 0 0 2px rgba(255,255,255,.6);
}

/* Pulse sutil para Urgente */
#tt-kanban-board .kb-prio[style*="#dc2626"],
#tt-kanban-board .kb-prio[style*="#fef2f2"]{
  animation:kbPrioPulse 2.4s ease-in-out infinite;
}
@keyframes kbPrioPulse{
  0%,100%{box-shadow:0 1px 3px rgba(15,23,42,.08), inset 0 -1.5px 0 rgba(0,0,0,.06), 0 0 0 0 rgba(220,38,38,.4)}
  50%{box-shadow:0 1px 3px rgba(15,23,42,.08), inset 0 -1.5px 0 rgba(0,0,0,.06), 0 0 0 6px rgba(220,38,38,0)}
}

/* Accent visual en el lado izquierdo de la card según prioridad
   (refuerza el código de color sin recargar) */
#tt-kanban-board .kb-card .kb-accent{
  height:5px !important;
}

/* Mejor uso del espacio en cards estrechas */
@media(max-width:1100px){
  #tt-kanban-board .kb-bottom{flex-wrap:wrap !important;}
  #tt-kanban-board .kb-date{flex:1 1 100% !important;order:99 !important;}
}

/* ════════════════════════════════════════════════════════════════════
   CAPTCHA COMPACT v2 — slider más bajo + más separación con Entrar
   ════════════════════════════════════════════════════════════════════ */
#captcha-block {
  margin-bottom: 22px !important;
  padding: 0 !important;
  height: 36px !important;
  min-height: 36px !important;
  border-radius: 10px !important;
}
#captcha-block #cap-text { font-size: 11.5px !important; }
/* Si el slider está verificado, el texto verde también compacto */
#captcha-block #cap-text.verified { font-size: 11.5px !important; }

/* ════════════════════════════════════════════════════════════════════
   KANBAN v180 — bottom en 2 filas, avatar centrado, DnD visual
   ════════════════════════════════════════════════════════════════════ */

/* Bottom contenedor: stack vertical de 2 filas */
#tt-kanban-board .kb-bottom{
  display:block !important;
  padding:10px 12px 12px !important;
  border-top:1px solid #f1f5f9 !important;
  flex-wrap:nowrap !important;
}

/* Fila 1: avatar + fecha alineados a la izquierda */
#tt-kanban-board .kb-bottom-row1{
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  margin-bottom:9px !important;
}

/* Fila 2: botones centrados */
#tt-kanban-board .kb-bottom-row2{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:7px !important;
  flex-wrap:nowrap !important;
}

/* Avatar centrado correctamente (display:grid + place-items:center) */
#tt-kanban-board .kb-avatar{
  width:28px !important;
  height:28px !important;
  border-radius:50% !important;
  display:grid !important;
  place-items:center !important;
  font-size:11px !important;
  font-weight:900 !important;
  color:#fff !important;
  border:2px solid #fff !important;
  box-shadow:0 2px 6px rgba(0,0,0,.15), 0 0 0 1.5px rgba(0,0,0,.04) !important;
  line-height:1 !important;
  letter-spacing:0 !important;
  flex-shrink:0 !important;
  position:relative !important;
  cursor:default !important;
  text-transform:uppercase !important;
}

/* Tooltip oscuro del avatar */
#tt-kanban-board .kb-avatar:hover::after{
  content: attr(data-name);
  position:absolute;
  bottom:calc(100% + 8px);
  left:50%;
  transform:translateX(-50%);
  background:#0f172a;
  color:#fff;
  font-size:11.5px;
  font-weight:700;
  padding:6px 10px;
  border-radius:7px;
  white-space:nowrap;
  box-shadow:0 6px 20px rgba(15,23,42,.35);
  z-index:50;
  pointer-events:none;
}
#tt-kanban-board .kb-avatar:hover::before{
  content:'';
  position:absolute;
  bottom:calc(100% + 2px);
  left:50%;
  transform:translateX(-50%);
  border:6px solid transparent;
  border-top-color:#0f172a;
  z-index:50;
  pointer-events:none;
}
#tt-kanban-board .kb-avatar[data-name=""]:hover::after,
#tt-kanban-board .kb-avatar[data-name=""]:hover::before{ display:none; }

/* Fecha */
#tt-kanban-board .kb-date{
  display:inline-flex !important;
  align-items:center !important;
  gap:5px !important;
  font-size:11px !important;
  color:#64748b !important;
  font-weight:600 !important;
  flex:1 !important;
  white-space:nowrap !important;
}
#tt-kanban-board .kb-date.overdue{ color:#dc2626 !important; font-weight:700 !important; }

/* Botones uniformes en la fila 2 */
#tt-kanban-board .kb-icoBtn{
  width:34px !important; height:32px !important; padding:0 !important;
  border-radius:8px !important; border:1.5px solid #e2e8f0 !important;
  background:#fff !important; color:#5b21b6 !important; cursor:pointer !important;
  display:grid !important; place-items:center !important; flex-shrink:0 !important;
  transition:all .12s !important;
}
#tt-kanban-board .kb-icoBtn:hover{ border-color:#a78bfa !important; background:#faf5ff !important; }

#tt-kanban-board .kb-btn-close{
  height:32px !important; padding:0 14px !important;
  border-radius:8px !important; border:none !important;
  background:linear-gradient(135deg,#16a34a,#15803d) !important;
  color:#fff !important; font-weight:800 !important; font-size:12px !important;
  cursor:pointer !important; font-family:inherit !important;
  display:inline-flex !important; align-items:center !important; gap:6px !important;
  box-shadow:0 2px 6px rgba(22,163,74,.3) !important;
  flex-shrink:0 !important; white-space:nowrap !important;
  transition:all .12s !important;
}
#tt-kanban-board .kb-btn-close:hover:not([disabled]){
  transform:translateY(-1px);
  box-shadow:0 4px 12px rgba(22,163,74,.42) !important;
}
#tt-kanban-board .kb-btn-close[disabled]{
  background:#e2e8f0 !important; color:#94a3b8 !important; cursor:default !important;
  box-shadow:none !important;
}

#tt-kanban-board .kb-sel{
  height:32px !important; padding:0 26px 0 12px !important;
  border-radius:8px !important; border:1.5px solid !important;
  background-color:#fff !important; font-size:12px !important; font-weight:700 !important;
  cursor:pointer !important; outline:none !important; font-family:inherit !important;
  text-align:center !important; text-align-last:center !important;
  appearance:none !important; -webkit-appearance:none !important;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;
  background-position:right 8px center !important;
  flex-shrink:0 !important;
  min-width:106px !important;
}
#tt-kanban-board .kb-sel option{ text-align:center; font-weight:700; }

#tt-kanban-board .kb-reopen{
  height:32px !important; padding:0 14px !important;
  border-radius:8px !important; border:1.5px solid #c4b5fd !important;
  background:#faf5ff !important; color:#5b21b6 !important;
  font-weight:800 !important; font-size:12px !important;
  cursor:pointer !important; font-family:inherit !important;
  flex-shrink:0 !important; white-space:nowrap !important;
}
#tt-kanban-board .kb-reopen:hover{ background:#f3e8ff !important; }

/* Drag visual */
#tt-kanban-board .kb-card.kb-dragging{
  opacity:.45 !important;
  transform:scale(.97) !important;
  cursor:grabbing !important;
}
#tt-kanban-board .kb-body.kb-drag-over{
  background:rgba(139,92,246,.07) !important;
  outline:2.5px dashed #8b5cf6 !important;
  outline-offset:-3px !important;
  border-radius:12px !important;
}

/* Prioridad más destacada */
#tt-kanban-board .kb-prio{
  font-size:11px !important;
  font-weight:900 !important;
  padding:4px 12px !important;
  border-radius:7px !important;
  white-space:nowrap !important;
  border:1.5px solid transparent !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  box-shadow:0 1px 3px rgba(15,23,42,.08), inset 0 -1.5px 0 rgba(0,0,0,.06) !important;
}
#tt-kanban-board .kb-prio::before{
  content:'';
  display:inline-block;
  width:6px; height:6px;
  border-radius:50%;
  background:currentColor;
  margin-right:6px;
  vertical-align:middle;
  box-shadow:0 0 0 2px rgba(255,255,255,.6);
}

/* Móvil: stack vertical de botones también */
@media(max-width:600px){
  #tt-kanban-board .kb-bottom-row2{ flex-wrap:wrap !important; }
}

/* ════════════════════════════════════════════════════════════════════
   TOOLTIP AVATAR v203 — acotado, no se solapa con sidebar
   ════════════════════════════════════════════════════════════════════ */

/* Tooltip del avatar: ancho limitado + ellipsis + posicionado a la derecha del avatar */
#tt-kanban-board .kb-avatar:hover::after{
  content: attr(data-name) !important;
  position: absolute !important;
  bottom: auto !important;
  top: 50% !important;
  left: calc(100% + 8px) !important;
  transform: translateY(-50%) !important;
  background: #0f172a !important;
  color: #fff !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  padding: 5px 10px !important;
  border-radius: 7px !important;
  white-space: nowrap !important;
  max-width: 200px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  box-shadow: 0 4px 14px rgba(15,23,42,.25) !important;
  z-index: 5 !important;     /* no sobre el sidebar (cuyo z-index suele ser alto) */
  pointer-events: none !important;
  letter-spacing: -.01em !important;
}

/* Flecha del tooltip a la izquierda (apunta al avatar) */
#tt-kanban-board .kb-avatar:hover::before{
  content: '' !important;
  position: absolute !important;
  top: 50% !important;
  left: calc(100% + 2px) !important;
  bottom: auto !important;
  transform: translateY(-50%) !important;
  border: 6px solid transparent !important;
  border-right-color: #0f172a !important;
  border-top-color: transparent !important;
  z-index: 5 !important;
  pointer-events: none !important;
}

/* Si el avatar está vacío, no mostrar tooltip */
#tt-kanban-board .kb-avatar[data-name=""]:hover::after,
#tt-kanban-board .kb-avatar[data-name=""]:hover::before { display:none !important; }

/* ════════════════════════════════════════════════════════════════════
   GUEST CAL RANGE v1 — botones 7d/15d/30d + adapt visual para vistas largas
   ════════════════════════════════════════════════════════════════════ */
.gcal-range-btns {
  display: inline-flex;
  gap: 2px;
  padding: 2px;
  background: #f1f5f9;
  border-radius: 9px;
  border: 1.5px solid #e2e8f0;
  align-items: center;
  flex-shrink: 0;
  margin-left: 4px;
}
.gcal-rb {
  height: 28px;
  padding: 0 12px;
  border-radius: 7px;
  border: none;
  cursor: pointer;
  font-size: 11.5px;
  font-weight: 700;
  background: transparent;
  color: #94a3b8;
  font-family: inherit;
  transition: all .12s;
}
.gcal-rb:hover { color: #475569; }
.gcal-rb.active {
  background: #fff;
  color: #5b21b6;
  box-shadow: 0 1px 3px rgba(15,23,42,.1);
}

/* Vista 15 días: celdas más compactas */
.gcal-range-15 .gcal-cell { min-height: 78px !important; padding: 3px !important; }
.gcal-range-15 .gcal-day-name { font-size: 10px !important; }
.gcal-range-15 .gcal-day-num { font-size: 16px !important; }
.gcal-range-15 .gcal-row-icon { width: 30px !important; height: 30px !important; }
.gcal-range-15 .gcal-row-icon svg { width: 16px !important; height: 16px !important; }
.gcal-range-15 .gcal-row-name { font-size: 9.5px !important; }
.gcal-range-15 .gcal-event { font-size: 9.5px !important; padding: 2px 5px !important; }
.gcal-range-15 .gcal-add-lbl { font-size: 9.5px !important; }
.gcal-range-15 .gcal-add-icon svg { width: 16px !important; height: 16px !important; }

/* Vista 30 días: celdas muy compactas */
.gcal-range-30 .gcal-cell { min-height: 60px !important; padding: 2px !important; }
.gcal-range-30 .gcal-head { padding: 6px 2px 5px !important; gap: 2px !important; }
.gcal-range-30 .gcal-day-name { font-size: 9px !important; }
.gcal-range-30 .gcal-day-num { font-size: 13px !important; }
.gcal-range-30 .gcal-day-num.gcal-today-num { width: 22px !important; height: 22px !important; font-size: 11px !important; }
.gcal-range-30 .gcal-row-label { padding: 6px 3px !important; gap: 4px !important; }
.gcal-range-30 .gcal-row-icon { width: 24px !important; height: 24px !important; border-radius: 7px !important; }
.gcal-range-30 .gcal-row-icon svg { width: 13px !important; height: 13px !important; }
.gcal-range-30 .gcal-row-name { font-size: 8.5px !important; letter-spacing: .02em !important; }
.gcal-range-30 .gcal-event {
  font-size: 0 !important;
  padding: 0 !important;
  height: 6px !important;
  min-height: 6px !important;
  border-radius: 3px !important;
  margin-bottom: 2px !important;
}
.gcal-range-30 .gcal-add-lbl { display: none !important; }
.gcal-range-30 .gcal-add-icon svg { width: 13px !important; height: 13px !important; }
.gcal-range-30 .gcal-cell-hover { inset: 1px !important; }

/* ════════════════════════════════════════════════════════════════════
   CREAR USUARIO POS v206 — botón centrado, prominente, no enterrado
   ════════════════════════════════════════════════════════════════════ */

/* Acciones: centrar en vez de pegar a la derecha */
.admin-actions-final {
  display: flex !important;
  justify-content: center !important;
  gap: 10px !important;
  margin-top: 20px !important;
  padding-top: 16px !important;
  border-top: 1.5px dashed #e2e8f0 !important;
}

/* Botón Crear usuario más prominente y centrado */
.admin-create-user-final {
  width: auto !important;
  min-width: 240px !important;
  max-width: 320px !important;
  padding: 13px 30px !important;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%) !important;
  color: #fff !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  letter-spacing: .01em !important;
  border: none !important;
  cursor: pointer !important;
  box-shadow: 0 8px 24px rgba(109,40,217,.35) !important;
  transition: all .15s !important;
}
.admin-create-user-final:hover {
  transform: translateY(-1px);
  box-shadow: 0 12px 32px rgba(109,40,217,.45) !important;
}
.admin-create-user-final:active {
  transform: translateY(0);
}

/* Compactar formularios largos para que el botón no quede tan abajo */
.admin-user-form-final {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
  gap: 12px !important;
}
.admin-user-form-final > div { margin-bottom: 0 !important; }

/* Form sticky de acción cuando hay scroll */
.card:has(.admin-create-user-final) {
  position: relative;
}

/* Móvil: full width */
@media (max-width: 600px) {
  .admin-actions-final {
    justify-content: stretch !important;
  }
  .admin-create-user-final {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   REMOVE AVATAR BADGES v208 — eliminar iconos cámara superpuestos
   ════════════════════════════════════════════════════════════════════ */
.user-avatar::after,
.user-avatar::before,
#profile-photo-preview::after,
#profile-photo-preview::before {
  content: none !important;
  display: none !important;
}

/* ════════════════════════════════════════════════════════════════════
   RESPONSIVE QA v213 — soporte 13" / 14" / 15" / 16" + móviles
   ════════════════════════════════════════════════════════════════════ */

/* ── KANBAN: breakpoints más granulares ── */
/* 16" (≥1500px): 4 cols (default) */
/* 14"-15" (1200-1499): 4 cols con menos gap */
@media (max-width: 1499px) {
  #tt-kanban-board { gap: 10px !important; padding: 12px !important; }
  #tt-kanban-board .kb-header { padding: 12px 14px !important; }
  #tt-kanban-board .kb-content { padding: 10px 12px 0 !important; }
}
/* 13" (1100-1199): 3 cols */
@media (max-width: 1280px) and (min-width: 901px) {
  #tt-kanban-board {
    grid-template-columns: repeat(3, 1fr) !important;
    overflow-x: visible !important;
  }
  /* Cerradas se mueve a 2ª fila completa */
  #tt-kanban-board .kb-col:nth-child(4) {
    grid-column: 1 / -1 !important;
  }
}
/* 11"-12" (900-1099): 2 cols */
@media (max-width: 1100px) and (min-width: 700px) {
  #tt-kanban-board { grid-template-columns: repeat(2, 1fr) !important; }
}
/* Tablet (640-700) y Móvil: 1 col, scroll vertical */
@media (max-width: 700px) {
  #tt-kanban-board {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
    padding: 8px !important;
  }
  #tt-kanban-board .kb-card { font-size: 13px !important; }
  #tt-kanban-board .kb-title { font-size: 13.5px !important; }
}

/* ── STATS STRIP (Pendientes / En proceso / En espera) ── */
@media (max-width: 1100px) {
  #tt-stats-strip { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 700px) {
  #tt-stats-strip { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  #tt-stats-strip > div { padding: 10px 12px !important; }
}
@media (max-width: 400px) {
  #tt-stats-strip { grid-template-columns: 1fr !important; }
}

/* ── FILTROS ROW (Tareas, etc.) ── */
@media (max-width: 1100px) {
  #page-tareas-table .card > div[style*="display:flex"][style*="gap:8px"]:has(#tt-filter-estado),
  #page-tareas-table > div[style*="display:flex"][style*="gap:8px"]:has(#tt-filter-estado) {
    flex-wrap: wrap !important;
  }
  #page-tareas-table #tt-filter-estado,
  #page-tareas-table #tareas-table-sede {
    width: calc(50% - 4px) !important;
    flex: 0 0 calc(50% - 4px) !important;
  }
  #page-tareas-table #tareas-table-search {
    flex: 1 1 100% !important;
    order: 99 !important;
  }
}
@media (max-width: 700px) {
  #page-tareas-table #tt-filter-estado,
  #page-tareas-table #tareas-table-sede {
    width: 100% !important;
    flex: 1 1 100% !important;
  }
}

/* ── BOTONES DEL TOOLBAR (Histórico, Excel, Nueva tarea) ── */
@media (max-width: 700px) {
  #page-tareas-table button[onclick*="abrirHistoricoCerradas"],
  #page-tareas-table button[onclick*="exportTareasTabla"],
  #page-tareas-table button[onclick*="crearTareaTabla"] {
    flex: 1 1 calc(33% - 8px) !important;
    min-width: 0 !important;
    justify-content: center !important;
  }
}

/* ── MODAL MI PERFIL ── */
@media (max-width: 700px) {
  #user-profile-modal .card,
  #user-profile-modal > div {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 92vh !important;
    margin: 0 !important;
    border-radius: 14px !important;
    overflow-y: auto !important;
  }
  #user-profile-modal .row2 {
    grid-template-columns: 1fr !important;
  }
  #profile-photo-preview {
    width: 76px !important;
    height: 76px !important;
  }
  #profile-photo-preview span {
    font-size: 32px !important;
  }
}

/* ── MODAL EDIT/CREATE TAREA ── */
@media (max-width: 700px) {
  #tt-modal > div {
    max-width: 100% !important;
    max-height: 94vh !important;
    overflow-y: auto !important;
  }
  #tt-modal [style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
}

/* ── CALENDARIO SOLICITUDES (gcal) ── */
@media (max-width: 1100px) {
  .gcal-v150-grid {
    overflow-x: auto !important;
  }
}
@media (max-width: 700px) {
  .gcal-range-btns { gap: 1px !important; padding: 1px !important; }
  .gcal-rb { padding: 0 8px !important; font-size: 10.5px !important; }
}

/* ── TABLAS ADMIN ── */
@media (max-width: 900px) {
  .admin-users-table-final,
  .admin-card-body-final {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
  .admin-user-form-final {
    grid-template-columns: 1fr !important;
  }
}

/* ── DASHBOARD / HOME GRID en móvil ── */
@media (max-width: 700px) {
  .grid, .stats-grid {
    grid-template-columns: 1fr 1fr !important;
    gap: 8px !important;
  }
}
@media (max-width: 400px) {
  .grid, .stats-grid {
    grid-template-columns: 1fr !important;
  }
}

/* ── PAGE HEADERS en móvil ── */
@media (max-width: 700px) {
  .page-title { font-size: 18px !important; }
  .page-sub { font-size: 12px !important; }
  .page-header { gap: 8px !important; }
}

/* ── SIDEBAR EN MÓVIL: ya hay rule a 768px; reforzamos con backdrop ── */
@media (max-width: 768px) {
  .sidebar { box-shadow: 4px 0 24px rgba(0,0,0,.3) !important; }
  /* Botón hamburguesa visible */
  .hamburger-btn { display: flex !important; }
  /* Contenido principal ocupa todo */
  .main, main, #main-content {
    margin-left: 0 !important;
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

/* ── LAPTOPS 13" (1366×768): asegurar que TODO entra sin scroll horizontal ── */
@media (max-width: 1366px) {
  body, html { overflow-x: hidden !important; }
  .card, .stats-card { padding: 12px 14px !important; }
}

/* ── LAPTOPS 13" baja altura (768px): ajustar paddings verticales ── */
@media (max-height: 800px) and (min-width: 901px) {
  .sidebar { padding-top: 12px !important; padding-bottom: 12px !important; }
  .page-header { padding-top: 8px !important; padding-bottom: 8px !important; }
}

/* ── FOOTER USUARIO DEL SIDEBAR — siempre visible ── */
@media (max-height: 760px) {
  .sidebar-footer, .sb-v2-footer {
    padding: 8px 12px !important;
    font-size: 12px !important;
  }
}

/* ── INPUT TOUCH-FRIENDLY EN MÓVIL ── */
@media (max-width: 700px) {
  input[type="text"], input[type="email"], input[type="password"],
  input[type="time"], input[type="date"], input[type="number"],
  select, textarea {
    font-size: 16px !important; /* evita zoom-in iOS */
    min-height: 40px !important;
  }
  button { min-height: 38px !important; }
}

/* ── CAPTCHA SLIDE responsive ── */
@media (max-width: 480px) {
  #captcha-block {
    margin-bottom: 18px !important;
  }
}

/* ── LOGIN PAGE responsive ── */
@media (max-width: 540px) {
  .auth-card, [class*="auth"][class*="card"], .login-form {
    padding: 20px 18px !important;
    border-radius: 14px !important;
  }
}

/* ── KANBAN bottom-row2 en móvil (Editar / Cerrar / Pendiente) ── */
@media (max-width: 600px) {
  #tt-kanban-board .kb-bottom-row2 {
    flex-wrap: wrap !important;
    gap: 5px !important;
  }
  #tt-kanban-board .kb-icoBtn { width: 32px !important; height: 30px !important; }
  #tt-kanban-board .kb-btn-close { padding: 0 10px !important; font-size: 11px !important; }
  #tt-kanban-board .kb-sel { min-width: 90px !important; padding: 0 22px 0 8px !important; }
}

/* ── PREVENIR overflow en cards estrechas (cualquier tamaño) ── */
.kb-card, .card { min-width: 0 !important; }
.kb-title, .kb-sede-text, .kb-desc {
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* ── RANGOS DE ANCHURA EXACTOS PARA PORTÁTILES ── */
/* 16" típico (1728-1919px) */
/* REMOVED v214: centrado que rompía sidebar offset */
/* 15" Full HD (1920px+) */
/* REMOVED v214: centrado que rompía sidebar offset */
/* 14" (1440-1620px) */
@media (min-width: 1440px) and (max-width: 1620px) {
  #tt-kanban-board { padding: 14px !important; }
}

/* ════════════════════════════════════════════════════════════════════
   LAYOUT FIX v214 — restaurar margin-left del main para sidebar fijo
   ════════════════════════════════════════════════════════════════════ */
@media (min-width: 769px) {
  .main {
    margin-left: 240px !important;
    width: auto !important;
    max-width: none !important;
  }
}

/* ════════════════════════════════════════════════════════════════════
   TIGHT LETTERS v217 — letter-spacing más juntas en modal Nueva tarea
   ════════════════════════════════════════════════════════════════════ */
#tt-modal label,
#tt-modal #tt-modal-title,
#tt-modal h2, #tt-modal h3 {
  letter-spacing: -0.01em !important;
}
#tt-modal input, #tt-modal select, #tt-modal textarea {
  letter-spacing: -0.005em !important;
}
/* Chips del multi-sede */
#tt-f-sede-multi #tt-sede-summary span,
#tt-f-sede-panel button {
  letter-spacing: -0.005em !important;
}
/* Chip especial 'Todas las sedes' */
#tt-f-sede-multi #tt-sede-summary span[style*=gradient] {
  letter-spacing: 0 !important;
}

/* ════════════════════════════════════════════════════════════════════
   KB ACTIONS HEIGHT v218 — Editar / Cerrar / Estado misma altura
   ════════════════════════════════════════════════════════════════════ */
#tt-kanban-board .kb-icoBtn,
#tt-kanban-board .kb-btn-close,
#tt-kanban-board .kb-sel,
#tt-kanban-board .kb-reopen {
  height: 32px !important;
  min-height: 32px !important;
  max-height: 32px !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
  line-height: 1 !important;
  display: inline-flex !important;
  align-items: center !important;
}
#tt-kanban-board .kb-icoBtn {
  width: 32px !important;
  justify-content: center !important;
  padding: 0 !important;
}
#tt-kanban-board .kb-btn-close {
  padding: 0 13px !important;
  justify-content: center !important;
  gap: 5px !important;
}
#tt-kanban-board .kb-sel {
  padding: 0 26px 0 12px !important;
  line-height: 1 !important;
  text-align: center !important;
  text-align-last: center !important;
}
#tt-kanban-board .kb-reopen {
  padding: 0 13px !important;
  justify-content: center !important;
}

/* ════════════════════════════════════════════════════════════════════
   KB SEL WIDTH v221 — 'En proceso' completo sin cortar
   ════════════════════════════════════════════════════════════════════ */
#tt-kanban-board .kb-sel {
  width: auto !important;
  min-width: 122px !important;
  max-width: 140px !important;
  padding: 0 28px 0 12px !important;
}


/* ════════════════════════════════════════════════════════════════════
   DASH HOTEL FILTER WIDTH v234 — select sin cortar
   ════════════════════════════════════════════════════════════════════ */
#dash-hotel-filter{
  min-width:260px !important;
  padding-right:36px !important;
  width:auto !important;
  text-overflow:clip !important;
  white-space:nowrap !important;
}
@media(max-width:700px){
  #dash-hotel-filter{ min-width:100% !important; max-width:100% !important; flex:1 1 100% !important; }
}

/* CENTRAL NEW BTN HOVER v237 */
.central-new-btn:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 18px rgba(0,0,0,.18) !important;
}


/* ════════════════════════════════════════════════════════════════════
   DASH ACTIONS HEIGHT v242 — fila superior dashboard uniforme
   ════════════════════════════════════════════════════════════════════ */
#dash-hotel-filter,
#dash-op-co-toggle,
#dash-central-btn,
.page-header button[onclick*="initDashboard"] {
  height: 38px !important;
  min-height: 38px !important;
  max-height: 38px !important;
  box-sizing: border-box !important;
  display: inline-flex !important;
  align-items: center !important;
  vertical-align: middle !important;
  line-height: 1 !important;
}

#dash-hotel-filter { padding-top: 0 !important; padding-bottom: 0 !important; }

#dash-op-co-toggle { padding: 3px !important; }
#dash-op-co-toggle .dash-opco-btn {
  height: 30px !important;
  min-height: 30px !important;
  max-height: 30px !important;
}

#dash-central-btn,
.page-header button[onclick*="initDashboard"] {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}


/* ════════════════════════════════════════════════════════════════════
   BANNER PADDING v250 — más separación entre banner y stats row
   ════════════════════════════════════════════════════════════════════ */
#dash-score-banner {
  margin-bottom: 28px !important;
}
#opco-stats-panel {
  margin-bottom: 32px !important;
}
/* La fila de stats KPI (urgentes/inventario/parking/revisiones) necesita más respiración arriba */
#page-dashboard > div.row.stats-grid,
#page-dashboard .stats-row,
#page-dashboard > div[style*="grid-template-columns"]:nth-of-type(1) {
  margin-top: 10px !important;
}



/* GHOST PRIMARY v283 */
/* Aplica estilo ghost lila a todos los botones primarios excepto el CTA del login */
.submit-btn:not(#login-btn),
.save-btn,
.btn-primary:not(#login-btn) {
  background: #fff !important;
  color: #5b21b6 !important;
  border: 1.5px solid #c4b5fd !important;
  box-shadow: 0 4px 14px rgba(196,181,253,.45) !important;
  text-shadow: none !important;
}
.submit-btn:not(#login-btn):hover,
.save-btn:hover,
.btn-primary:not(#login-btn):hover {
  background: #faf5ff !important;
  border-color: #a78bfa !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 18px rgba(196,181,253,.55) !important;
}
.submit-btn:not(#login-btn):active,
.save-btn:active,
.btn-primary:not(#login-btn):active {
  transform: scale(.98) !important;
}


/* KB PILL v287 */
#tt-kanban-board .kb-pill,
#tareas-mobile-card-list-final .kb-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 26px;
  padding: 0 10px 0 3px;
  border-radius: 999px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  max-width: 170px;
  overflow: hidden;
  cursor: default;
  flex-shrink: 1;
  min-width: 0;
}
#tt-kanban-board .kb-pill-dot,
#tareas-mobile-card-list-final .kb-pill-dot {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 9px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
  text-shadow: 0 1px 1px rgba(0,0,0,.15);
}
#tt-kanban-board .kb-pill-name,
#tareas-mobile-card-list-final .kb-pill-name {
  font-size: 11.5px;
  font-weight: 700;
  color: #334155;
  letter-spacing: -.005em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1;
}


/* MOBILE QA v295 */
/* === MODALES en móvil: full-screen, scroll natural, botones fijos abajo === */
@media (max-width:640px){
  #tt-modal, #corr-modal, #task-modal,
  div[id*='-modal'][style*='position:fixed'],
  div[style*='position:fixed'][style*='inset:0'][style*='z-index:9999']{
    padding:0!important;
  }
  #tt-modal > div, #task-modal > div,
  div[id*='-modal'] > div[style*='max-width']{
    max-width:100%!important;
    width:100%!important;
    height:100vh!important;
    max-height:100vh!important;
    border-radius:0!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
  }
  /* Inputs táctiles más altos para que sean accesibles */
  #tt-modal input, #tt-modal select, #tt-modal textarea,
  #task-modal input, #task-modal select, #task-modal textarea{
    min-height:42px!important;
    font-size:16px!important; /* evita zoom auto iOS */
  }
}

/* === SLIDER CAPTCHA táctil más grande en móvil === */
@media (max-width:640px){
  #captcha-block{
    height:48px!important;
    min-height:48px!important;
  }
  #cap-handle{
    width:44px!important;
    height:44px!important;
    top:1px!important;
  }
  #cap-text{
    font-size:13px!important;
  }
}

/* === KANBAN cards: ancho completo y stack en móvil === */
@media (max-width:640px){
  #tt-kanban-board{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  #tt-kanban-board .kb-card{
    max-width:100%!important;
  }
  #tareas-table-body{display:block!important}
}

/* === Botones grandes táctiles === */
@media (max-width:640px){
  button:not(.menu-toggle):not(.kb-icoBtn):not(.gcb){
    min-height:42px;
  }
  .filter-btn, .export-btn{
    min-height:38px!important;
    padding:0 16px!important;
  }
}

/* === Tablas → scroll horizontal con sombra de hint === */
@media (max-width:640px){
  table{
    display:block!important;
    overflow-x:auto!important;
    white-space:nowrap!important;
    -webkit-overflow-scrolling:touch;
  }
}

/* === Banner Op/Co: chips con mini-barras de progreso === */
#opco-stats-panel .opco-chip-wrap{
  position:relative;
}
#opco-stats-panel .opco-chip-bar{
  position:absolute;
  bottom:-2px;
  left:8px;right:8px;
  height:2px;
  background:rgba(91,33,182,.12);
  border-radius:2px;
  overflow:hidden;
}
#opco-stats-panel .opco-chip-bar::after{
  content:'';
  position:absolute;
  top:0;left:0;bottom:0;
  background:linear-gradient(90deg,#7c3aed,#a78bfa);
  border-radius:2px;
  width:var(--w,50%);
  transition:width .6s ease;
}

/* === Spinner para botones en estado loading === */
.btn-loading{position:relative;color:transparent!important;pointer-events:none}
.btn-loading::after{
  content:'';
  position:absolute;top:50%;left:50%;
  width:18px;height:18px;
  margin:-9px 0 0 -9px;
  border:2px solid rgba(255,255,255,.4);
  border-top-color:#fff;
  border-radius:50%;
  animation:btnSpin .7s linear infinite;
}
@keyframes btnSpin{to{transform:rotate(360deg)}}


/* KB PILL UNIVERSAL v295 */
.kb-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 24px;
  padding: 0 10px 0 3px;
  border-radius: 999px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  max-width: 200px;
  overflow: hidden;
  cursor: default;
  flex-shrink: 1;
}
.kb-pill-dot {
  width: 18px;
  height: 18px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 9px;
  font-weight: 800;
  color: #fff;
  flex-shrink: 0;
  text-shadow: 0 1px 1px rgba(0,0,0,.12);
}
.kb-pill-name {
  font-size: 11.5px;
  font-weight: 700;
  color: #334155;
  letter-spacing: -.005em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1;
}

/* === KANBAN TAREAS · paleta suave por estado (overrides) === */
#tt-kanban-board .kb-col[data-kb-col="Pendiente"] .kb-header-title,
#tt-kanban-board .kb-col[data-kb-col="Pendiente"] .kb-count { color:#9a3412 !important; }
#tt-kanban-board .kb-col[data-kb-col="Pendiente"] .kb-header-dot { background:#fb923c !important; }
#tt-kanban-board .kb-col[data-kb-col="Pendiente"] .kb-count { background:rgba(154,52,18,.12) !important; border-color:rgba(154,52,18,.20) !important; }

#tt-kanban-board .kb-col[data-kb-col="En proceso"] .kb-header-title,
#tt-kanban-board .kb-col[data-kb-col="En proceso"] .kb-count { color:#1e40af !important; }
#tt-kanban-board .kb-col[data-kb-col="En proceso"] .kb-header-dot { background:#3b82f6 !important; }
#tt-kanban-board .kb-col[data-kb-col="En proceso"] .kb-count { background:rgba(30,64,175,.12) !important; border-color:rgba(30,64,175,.20) !important; }

#tt-kanban-board .kb-col[data-kb-col="En espera"] .kb-header-title,
#tt-kanban-board .kb-col[data-kb-col="En espera"] .kb-count { color:#854d0e !important; }
#tt-kanban-board .kb-col[data-kb-col="En espera"] .kb-header-dot { background:#eab308 !important; }
#tt-kanban-board .kb-col[data-kb-col="En espera"] .kb-count { background:rgba(133,77,14,.12) !important; border-color:rgba(133,77,14,.20) !important; }

#tt-kanban-board .kb-col[data-kb-col="Cerradas"] .kb-header-title,
#tt-kanban-board .kb-col[data-kb-col="Cerradas"] .kb-count { color:#334155 !important; }
#tt-kanban-board .kb-col[data-kb-col="Cerradas"] .kb-header-dot { background:#94a3b8 !important; }
#tt-kanban-board .kb-col[data-kb-col="Cerradas"] .kb-count { background:rgba(51,65,85,.12) !important; border-color:rgba(51,65,85,.20) !important; }

/* Quitar los blobs blancos del header (se ven raros sobre fondos pastel claros) */
#tt-kanban-board .kb-header::before,
#tt-kanban-board .kb-header::after { background:rgba(255,255,255,.35) !important; opacity:.5; }

/* Borde sutil de la columna para que el pastel no quede demasiado disuelto */
#tt-kanban-board .kb-col { border:1px solid rgba(15,23,42,.06); background:#fff; }
/* ═══════════════════════════════════════════════════════════════
   REDESIGN INCIDENCIAS · solo CSS, sin tocar HTML/JS
   ═══════════════════════════════════════════════════════════════ */

/* ─── Tabs superiores (Nueva incidencia / Registro) ─── */
#page-incidencias .page-tabs {
  display: flex !important; gap: 8px;
  background: var(--surface2, #f1f5f9);
  padding: 6px;
  border-radius: 14px;
  margin-bottom: 1.4rem;
}
#page-incidencias .page-tab {
  flex: 1;
  display: inline-flex; align-items: center; justify-content: center;
  gap: 8px;
  padding: 12px 18px;
  border: none;
  background: transparent;
  border-radius: 10px;
  font-size: 13.5px;
  font-weight: 600;
  color: var(--muted, #64748b);
  cursor: pointer;
  transition: all .2s ease;
  font-family: inherit;
}
#page-incidencias .page-tab:hover:not(.active) {
  background: rgba(255,255,255,.6);
  color: var(--text);
}
#page-incidencias .page-tab.active {
  background: #fff !important;
  color: #1e293b !important;
  box-shadow: 0 2px 8px rgba(15,23,42,.08), 0 1px 2px rgba(15,23,42,.04);
  font-weight: 700;
}

/* ─── Card contenedor ─── */
#page-incidencias #tab-nueva .card {
  background: #fff;
  border: 1px solid rgba(15,23,42,.06);
  border-radius: 18px;
  padding: 1.8rem !important;
  box-shadow: 0 4px 20px -8px rgba(15,23,42,.08);
}

/* ─── Labels ─── */
#page-incidencias #tab-nueva .label {
  font-size: 11.5px !important;
  font-weight: 700 !important;
  color: #475569 !important;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .5rem !important;
}

/* ─── Inputs, selects, textarea ─── */
#page-incidencias #tab-nueva select,
#page-incidencias #tab-nueva input[type="date"],
#page-incidencias #tab-nueva input[type="time"],
#page-incidencias #tab-nueva textarea {
  width: 100%;
  padding: 11px 14px !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 10px !important;
  font-size: 13.5px !important;
  font-family: inherit !important;
  color: #0f172a !important;
  background: #fff !important;
  transition: border-color .15s, box-shadow .15s;
  outline: none;
}
#page-incidencias #tab-nueva select:hover,
#page-incidencias #tab-nueva input[type="date"]:hover,
#page-incidencias #tab-nueva input[type="time"]:hover,
#page-incidencias #tab-nueva textarea:hover {
  border-color: #cbd5e1 !important;
}
#page-incidencias #tab-nueva select:focus,
#page-incidencias #tab-nueva input[type="date"]:focus,
#page-incidencias #tab-nueva input[type="time"]:focus,
#page-incidencias #tab-nueva textarea:focus {
  border-color: var(--accent, #7c3aed) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #7c3aed) 15%, transparent) !important;
}
#page-incidencias #tab-nueva textarea {
  min-height: 100px;
  resize: vertical;
  line-height: 1.5;
}

/* ─── Botones de prioridad ─── */
#page-incidencias #tab-nueva .prio-row {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 10px !important;
}
#page-incidencias #tab-nueva .prio-btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: 7px;
  padding: 11px 14px;
  border: 1.5px solid #e2e8f0;
  background: #fff;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  cursor: pointer;
  transition: all .15s ease;
  font-family: inherit;
}
#page-incidencias #tab-nueva .prio-btn:hover {
  border-color: #cbd5e1;
  background: #f8fafc;
}
#page-incidencias #tab-nueva .prio-btn[data-p="Urgente"].active {
  background: #fef2f2; border-color: #ef4444; color: #991b1b;
  box-shadow: 0 0 0 3px rgba(239,68,68,.12);
}
#page-incidencias #tab-nueva .prio-btn[data-p="Alta"].active {
  background: #fff7ed; border-color: #f97316; color: #9a3412;
  box-shadow: 0 0 0 3px rgba(249,115,22,.12);
}
#page-incidencias #tab-nueva .prio-btn[data-p="Media"].active {
  background: #fefce8; border-color: #eab308; color: #854d0e;
  box-shadow: 0 0 0 3px rgba(234,179,8,.12);
}
#page-incidencias #tab-nueva .prio-btn[data-p="Baja"].active {
  background: #f0fdf4; border-color: #22c55e; color: #166534;
  box-shadow: 0 0 0 3px rgba(34,197,94,.12);
}

/* ─── Software cards (Programa afectado) ─── */
#page-incidencias #tab-nueva .sw-grid {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  gap: 10px !important;
}
#page-incidencias #tab-nueva .sw-btn {
  position: relative;
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px !important;
  border: 1.5px solid #e2e8f0 !important;
  background: #fff !important;
  border-radius: 12px !important;
  text-align: left;
  cursor: pointer;
  transition: all .18s ease;
  font-family: inherit;
  min-height: 64px;
}
#page-incidencias #tab-nueva .sw-btn:hover {
  border-color: #cbd5e1 !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 14px -6px rgba(15,23,42,.12);
}
#page-incidencias #tab-nueva .sw-btn.active {
  border-color: var(--accent, #7c3aed) !important;
  background: color-mix(in srgb, var(--accent, #7c3aed) 4%, #fff) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent, #7c3aed) 14%, transparent),
              0 6px 14px -6px color-mix(in srgb, var(--accent, #7c3aed) 30%, transparent) !important;
}
#page-incidencias #tab-nueva .sw-btn.active::after {
  content: "✓";
  position: absolute; top: 8px; right: 10px;
  width: 18px; height: 18px;
  background: var(--accent, #7c3aed);
  color: #fff;
  border-radius: 50%;
  display: grid; place-items: center;
  font-size: 11px; font-weight: 800;
  line-height: 1;
}
#page-incidencias #tab-nueva .sw-btn .sw-dot {
  display: none !important;
}
#page-incidencias #tab-nueva .sw-btn .sw-name {
  display: block;
  font-size: 13.5px !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  line-height: 1.2;
}
#page-incidencias #tab-nueva .sw-btn .sw-sub {
  display: block;
  font-size: 11.5px !important;
  color: #64748b !important;
  margin-top: 2px;
  font-weight: 500;
}
/* Icono coloreado a la izquierda de cada sw-btn */
#page-incidencias #tab-nueva .sw-btn::before {
  content: "";
  flex-shrink: 0;
  width: 36px; height: 36px;
  border-radius: 9px;
  display: block;
  background-color: #6366f1;
  background-image: linear-gradient(135deg, rgba(255,255,255,.25), transparent);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.18);
}
#page-incidencias #tab-nueva .sw-btn[data-sw="Soul Suite"]::before     { background-color: #8b5cf6; }
#page-incidencias #tab-nueva .sw-btn[data-sw="Sistema Demo"]::before   { background-color: #3b82f6; }
#page-incidencias #tab-nueva .sw-btn[data-sw="Salto"]::before          { background-color: #06b6d4; }
#page-incidencias #tab-nueva .sw-btn[data-sw="Portal Demo"]::before    { background-color: #10b981; }
#page-incidencias #tab-nueva .sw-btn[data-sw="Canary"]::before         { background-color: #f59e0b; }
#page-incidencias #tab-nueva .sw-btn[data-sw="Acceso Demo"]::before    { background-color: #ef4444; }
#page-incidencias #tab-nueva .sw-btn[data-sw="Reveniew"]::before       { background-color: #14b8a6; }
#page-incidencias #tab-nueva .sw-btn[data-sw="Call Center"]::before    { background-color: #ec4899; }

/* ─── Botón submit (Registrar incidencia →) ─── */
#page-incidencias #tab-nueva .submit-btn {
  width: 100%;
  padding: 14px 22px !important;
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 12px !important;
  font-size: 14.5px !important;
  font-weight: 700 !important;
  letter-spacing: -.005em;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  gap: 8px;
  box-shadow: 0 8px 20px -8px rgba(124,58,237,.5),
              inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform .15s, box-shadow .15s, filter .15s;
  font-family: inherit;
}
#page-incidencias #tab-nueva .submit-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.05);
  box-shadow: 0 12px 26px -10px rgba(124,58,237,.6),
              inset 0 1px 0 rgba(255,255,255,.22);
}
#page-incidencias #tab-nueva .submit-btn:active { transform: translateY(0); }

/* ─── Responsive: 1 columna en móvil ─── */
@media (max-width: 768px) {
  #page-incidencias #tab-nueva > .card > div[style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
    gap: 1.4rem !important;
  }
  #page-incidencias #tab-nueva .prio-row,
  #page-incidencias #tab-nueva .sw-grid {
    grid-template-columns: 1fr !important;
  }
}

/* === KANBAN TAREAS · igualar altura de columnas (Cerradas se quedaba más corta) === */
#tt-kanban-board { align-items: stretch !important; }
#tt-kanban-board .kb-col { height: 100%; }
#tt-kanban-board .kb-body { flex: 1 1 auto; min-height: 280px !important; }
/* Empty state vertical center cuando no hay tareas ni botón */
#tt-kanban-board .kb-body > div[style*="text-align:center"]:only-child,
#tt-kanban-board .kb-body > .kb-empty:only-child {
  margin: auto;
}
/* ═══════════════════════════════════════════════════════════════
   REDESIGN SOLICITUD CLIENTES · destacar el calendario
   Solo CSS, sin tocar HTML/JS
   ═══════════════════════════════════════════════════════════════ */

/* ─── Form de búsqueda (más compacto y subordinado al calendario) ─── */
#page-solicitud-huespedes > .card:first-of-type {
  background: #fff;
  border: 1px solid rgba(15,23,42,.06);
  border-radius: 14px;
  box-shadow: 0 2px 8px -3px rgba(15,23,42,.06);
  padding: 1.2rem 1.4rem !important;
}

#page-solicitud-huespedes .label {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #475569 !important;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .4rem !important;
}

#page-solicitud-huespedes > .card:first-of-type input,
#page-solicitud-huespedes > .card:first-of-type select {
  padding: 10px 12px !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 9px !important;
  font-size: 13px !important;
  font-family: inherit !important;
  background: #fff !important;
  color: #0f172a !important;
  transition: border-color .15s, box-shadow .15s;
}
#page-solicitud-huespedes > .card:first-of-type input:focus,
#page-solicitud-huespedes > .card:first-of-type select:focus {
  border-color: #7c3aed !important;
  box-shadow: 0 0 0 3px rgba(124,58,237,.12) !important;
  outline: none;
}

#page-solicitud-huespedes > .card:first-of-type .submit-btn {
  padding: 10px 18px !important;
  background: linear-gradient(135deg,#7c3aed 0%,#6d28d9 100%) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 9px !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 6px 14px -6px rgba(124,58,237,.45);
  transition: transform .15s, box-shadow .15s;
}
#page-solicitud-huespedes > .card:first-of-type .submit-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 20px -8px rgba(124,58,237,.55);
}

/* ═══════════════════════════════════════════════════════════════
   CALENDARIO DESTACADO · es el protagonista de la página
   ═══════════════════════════════════════════════════════════════ */

#guest-calendar-wrap .garage-week-shell,
#guest-calendar-wrap .gcal-v150 {
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  border-radius: 18px !important;
  overflow: hidden;
  box-shadow:
    0 16px 40px -16px rgba(15,23,42,.12),
    0 4px 12px -2px rgba(15,23,42,.05),
    0 0 0 1px rgba(124,58,237,.03);
  position: relative;
}

/* Sutil acento naranja-morado en el borde superior */
#guest-calendar-wrap .garage-week-shell::before,
#guest-calendar-wrap .gcal-v150::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #7c3aed, #a855f7, #ec4899);
  z-index: 2;
}

/* ─── Toolbar superior (título + range pills + nav) ─── */
#guest-calendar-wrap .garage-week-toolbar {
  padding: 18px 22px !important;
  background: linear-gradient(180deg, #fafaff 0%, #fff 100%) !important;
  border-bottom: 1px solid rgba(15,23,42,.06) !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}

#guest-calendar-wrap .garage-week-title {
  font-size: 19px !important;
  font-weight: 800 !important;
  color: #0f172a !important;
  letter-spacing: -.015em;
  position: relative;
  padding-left: 14px;
}
#guest-calendar-wrap .garage-week-title::before {
  content: "";
  position: absolute;
  left: 0; top: 4px; bottom: 4px;
  width: 4px;
  background: linear-gradient(180deg, #7c3aed, #a855f7);
  border-radius: 2px;
}

/* ─── Botones de rango (7d / 15d / 30d) - segmented control ─── */
#guest-calendar-wrap .gcal-range-btns,
#guest-calendar-wrap [class*="range"] button {
  display: inline-flex;
  background: #f1f5f9 !important;
  padding: 4px;
  border-radius: 10px;
  gap: 2px;
}
#guest-calendar-wrap .gcal-range-btn,
#guest-calendar-wrap button[onclick*="renderGuestCalendar"][onclick*="day"] {
  padding: 6px 14px !important;
  border: none !important;
  background: transparent !important;
  border-radius: 7px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  color: #64748b !important;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
#guest-calendar-wrap .gcal-range-btn:hover {
  color: #0f172a !important;
  background: rgba(255,255,255,.6) !important;
}
#guest-calendar-wrap .gcal-range-btn.active,
#guest-calendar-wrap .gcal-range-btn[aria-pressed="true"] {
  background: #fff !important;
  color: #0f172a !important;
  box-shadow: 0 2px 6px rgba(15,23,42,.08), 0 1px 2px rgba(15,23,42,.04);
}

/* ─── Botones nav (‹ Hoy ›) ─── */
#guest-calendar-wrap .garage-week-actions {
  display: flex;
  gap: 4px;
  background: #f1f5f9;
  padding: 4px;
  border-radius: 10px;
}
#guest-calendar-wrap .garage-week-actions button {
  padding: 7px 14px !important;
  border: none !important;
  background: transparent !important;
  border-radius: 7px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  color: #475569 !important;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
  min-width: 32px;
}
#guest-calendar-wrap .garage-week-actions button:hover {
  background: #fff !important;
  color: #0f172a !important;
  box-shadow: 0 2px 6px rgba(15,23,42,.08);
}

/* ─── Grid del calendario ─── */
#guest-calendar-wrap .garage-grid,
#guest-calendar-wrap .gcal-v150-grid {
  background: #fff !important;
}

/* ─── Cabeceras de día (Lun 25, Mar 26...) ─── */
#guest-calendar-wrap .garage-head,
#guest-calendar-wrap .gcal-head {
  padding: 14px 8px !important;
  background: #fafbfc !important;
  border-bottom: 1.5px solid #e2e8f0 !important;
  border-right: 1px solid #f1f5f9 !important;
  text-align: center !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  color: #94a3b8 !important;
  text-transform: uppercase;
  letter-spacing: .04em;
  position: sticky; top: 0;
  z-index: 1;
}
#guest-calendar-wrap .gcal-head .gcal-head-num,
#guest-calendar-wrap .gcal-head-num {
  display: block;
  font-size: 18px !important;
  font-weight: 800 !important;
  color: #0f172a !important;
  margin-top: 3px;
  letter-spacing: -.02em;
}

/* ─── Cabecera del día actual ─── */
#guest-calendar-wrap .gcal-head.gcal-today-head,
#guest-calendar-wrap .gcal-head.today {
  background: linear-gradient(180deg, #f5f3ff 0%, #ede9fe 100%) !important;
  color: #7c3aed !important;
  border-bottom-color: #7c3aed !important;
}
#guest-calendar-wrap .gcal-head.gcal-today-head .gcal-head-num,
#guest-calendar-wrap .gcal-head.today .gcal-head-num {
  background: linear-gradient(135deg, #7c3aed, #a855f7) !important;
  color: #fff !important;
  width: 28px; height: 28px;
  border-radius: 50%;
  display: inline-flex !important;
  align-items: center; justify-content: center;
  font-size: 13.5px !important;
  margin: 4px auto 0;
  box-shadow: 0 4px 10px rgba(124,58,237,.4);
}

/* ─── Etiquetas de fila (CUNA, GARAJE, AMENITY, ESPECIAL) ─── */
#guest-calendar-wrap .garage-time,
#guest-calendar-wrap .gcal-row-label {
  padding: 18px 10px !important;
  background: #fafbfc !important;
  border-right: 1.5px solid #e2e8f0 !important;
  border-bottom: 1px solid #f1f5f9 !important;
  text-align: center !important;
  font-size: 9.5px !important;
  font-weight: 800 !important;
  color: #64748b !important;
  text-transform: uppercase;
  letter-spacing: .06em;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 7px;
}

/* ─── Celdas del calendario ─── */
#guest-calendar-wrap .garage-cell,
#guest-calendar-wrap .gcal-cell {
  background: #fff !important;
  border-right: 1px solid #f1f5f9 !important;
  border-bottom: 1px solid #f1f5f9 !important;
  min-height: 70px !important;
  padding: 5px !important;
  position: relative;
  transition: background .12s;
}
#guest-calendar-wrap .garage-cell:hover,
#guest-calendar-wrap .gcal-cell:hover {
  background: #fafbfc !important;
}

/* ─── Columna del día actual destacada ─── */
#guest-calendar-wrap .garage-cell.today,
#guest-calendar-wrap .gcal-cell.gcal-today,
#guest-calendar-wrap .gcal-cell.today {
  background: linear-gradient(180deg, rgba(124,58,237,.05), rgba(124,58,237,.02)) !important;
}
#guest-calendar-wrap .garage-cell.today:hover,
#guest-calendar-wrap .gcal-cell.gcal-today:hover,
#guest-calendar-wrap .gcal-cell.today:hover {
  background: linear-gradient(180deg, rgba(124,58,237,.09), rgba(124,58,237,.04)) !important;
}

/* ─── Eventos dentro de la celda ─── */
#guest-calendar-wrap .garage-event {
  padding: 5px 8px !important;
  border-radius: 6px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  margin-bottom: 3px;
  line-height: 1.3;
}
#guest-calendar-wrap .garage-event.occ {
  background: rgba(124,58,237,.10) !important;
  color: #6d28d9 !important;
  border-left: 3px solid #7c3aed;
}
#guest-calendar-wrap .garage-event.block {
  background: rgba(245,158,11,.12) !important;
  color: #92400e !important;
  border-left: 3px solid #f59e0b;
}

/* ─── Card inferior (lista de solicitudes) ─── */
#page-solicitud-huespedes .card[style*="margin-top"] {
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.06) !important;
  border-radius: 14px !important;
  padding: 1.4rem !important;
  box-shadow: 0 2px 8px -3px rgba(15,23,42,.06);
}

/* ─── Responsive: scroll horizontal en calendario para móvil ─── */
@media (max-width: 900px) {
  #guest-calendar-wrap .gcal-v150-grid,
  #guest-calendar-wrap .garage-grid {
    overflow-x: auto;
  }
  #guest-calendar-wrap .garage-week-toolbar {
    padding: 14px 16px !important;
  }
}
/* ═══════════════════════════════════════════════════════════════
   REDESIGN INVENTARIO · solo CSS, sin tocar HTML
   ═══════════════════════════════════════════════════════════════ */

/* ─── Tabs superiores (Inventario / Nuevo / Movimientos / Alertas / Proveedores) ─── */
#page-stock .page-tabs {
  display: flex !important;
  gap: 4px !important;
  background: #f1f5f9;
  padding: 5px;
  border-radius: 12px;
  margin-bottom: 1.4rem;
  flex-wrap: wrap;
}
#page-stock .page-tab {
  flex: 1 1 auto;
  min-width: 100px;
  display: inline-flex; align-items: center; justify-content: center;
  gap: 7px;
  padding: 11px 16px !important;
  border: none !important;
  background: transparent !important;
  border-radius: 9px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  color: #64748b !important;
  cursor: pointer;
  transition: all .15s;
  font-family: inherit;
}
#page-stock .page-tab:hover:not(.active) {
  background: rgba(255,255,255,.6) !important;
  color: #0f172a !important;
}
#page-stock .page-tab.active {
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px -2px rgba(124,58,237,.45);
  font-weight: 700 !important;
}

/* ─── Filtros card ─── */
#page-stock #stock-tab-inventario > .card.mb-md {
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.06) !important;
  border-radius: 14px !important;
  padding: 1.25rem 1.4rem !important;
  box-shadow: 0 2px 8px -3px rgba(15,23,42,.06);
  margin-bottom: 1.2rem !important;
}
#page-stock #stock-tab-inventario .label {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #475569 !important;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .4rem !important;
}
#page-stock #stock-tab-inventario select,
#page-stock #stock-tab-inventario input {
  padding: 10px 12px !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 9px !important;
  font-size: 13px !important;
  font-family: inherit !important;
  background: #fff !important;
  color: #0f172a !important;
  transition: border-color .15s, box-shadow .15s;
  outline: none;
}
#page-stock #stock-tab-inventario select:focus,
#page-stock #stock-tab-inventario input:focus {
  border-color: #7c3aed !important;
  box-shadow: 0 0 0 3px rgba(124,58,237,.12) !important;
}

/* ─── Lista de productos (cards más visual) ─── */
#page-stock #stock-tab-inventario > div:not(.card),
#page-stock #stock-list,
#page-stock #inv-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Cada item del inventario - reemplazar el estilo plano */
#page-stock #stock-tab-inventario .card:not(.mb-md):not(:first-of-type),
#page-stock #stock-tab-inventario [class*="inv-row"],
#page-stock #stock-list > div,
#page-stock #inv-list > div {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px !important;
  padding: 14px 18px !important;
  margin-bottom: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 14px;
  transition: all .15s ease;
  position: relative;
  overflow: hidden;
}

#page-stock #stock-tab-inventario .card:not(.mb-md):not(:first-of-type):hover,
#page-stock #stock-list > div:hover,
#page-stock #inv-list > div:hover {
  border-color: #cbd5e1 !important;
  box-shadow: 0 4px 14px -6px rgba(15,23,42,.12);
  transform: translateY(-1px);
}

/* Badge OK / Bajo en la derecha */
#page-stock #stock-tab-inventario [style*="color: var(--success)"],
#page-stock #stock-tab-inventario [style*="color:#15803d"],
#page-stock #stock-tab-inventario [style*="color: green"],
#page-stock [class*="stock-ok"] {
  background: #f0fdf4 !important;
  color: #15803d !important;
  padding: 4px 12px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: .03em;
  border: 1px solid #bbf7d0;
  white-space: nowrap;
}

#page-stock #stock-tab-inventario [style*="color: var(--danger)"],
#page-stock #stock-tab-inventario [style*="color:#b91c1c"],
#page-stock #stock-tab-inventario [style*="color: red"],
#page-stock [class*="stock-bajo"] {
  background: #fef2f2 !important;
  color: #b91c1c !important;
  padding: 4px 12px !important;
  border-radius: 999px !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  text-transform: uppercase;
  letter-spacing: .03em;
  border: 1px solid #fecaca;
  white-space: nowrap;
}

/* ═══════════════════════════════════════════════════════════════
   PROVEEDORES integrado como tab dentro de Stock
   ═══════════════════════════════════════════════════════════════ */

/* El wrapper inyectado por JS */
#stock-tab-proveedores {
  background: transparent;
  padding: 0;
}

/* Ocultar el header propio de page-proveedores cuando está embebido */
#stock-tab-proveedores #page-proveedores > .page-header {
  display: none !important;
}

/* Ocultar las page-tabs propias de proveedores (Pedidos/Nuevo) para evitar tabs anidados */
#stock-tab-proveedores #page-proveedores > .page-tabs {
  margin-top: 0 !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 4px;
}
#stock-tab-proveedores #page-proveedores > .page-tabs .page-tab {
  flex: 1;
  padding: 9px 14px !important;
  font-size: 12.5px !important;
  background: transparent !important;
  color: #64748b !important;
  border-radius: 7px !important;
  box-shadow: none !important;
}
#stock-tab-proveedores #page-proveedores > .page-tabs .page-tab.active {
  background: #fff !important;
  color: #0f172a !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 6px rgba(15,23,42,.08);
}

/* Ocultar el nav-item Proveedores del sidebar (ahora vive en Inventario) */
.nav-item[onclick*="'proveedores'"],
.nav-item[onclick*="\"proveedores\""] {
  display: none !important;
}
/* ═══════════════════════════════════════════════════════════════
   REDESIGN PROVEEDORES · forms + pedidos por email
   ═══════════════════════════════════════════════════════════════ */

/* ─── Sub-tabs internas (Directorio / Pedidos / Nuevo proveedor / Nuevo pedido) ─── */
#stock-tab-proveedores #page-proveedores > .page-tabs,
#page-proveedores > .page-tabs {
  display: flex !important;
  gap: 3px !important;
  background: #f1f5f9 !important;
  padding: 4px !important;
  border-radius: 11px !important;
  margin-bottom: 1.4rem !important;
  border: none !important;
  flex-wrap: wrap;
}
#stock-tab-proveedores #page-proveedores .page-tab,
#page-proveedores > .page-tabs .page-tab {
  flex: 1 1 auto;
  min-width: 110px;
  padding: 10px 14px !important;
  background: transparent !important;
  color: #64748b !important;
  border: none !important;
  border-radius: 8px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  cursor: pointer;
  transition: all .15s;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  font-family: inherit;
}
#stock-tab-proveedores #page-proveedores .page-tab:hover:not(.active),
#page-proveedores > .page-tabs .page-tab:hover:not(.active) {
  background: rgba(255,255,255,.6) !important;
  color: #0f172a !important;
}
#stock-tab-proveedores #page-proveedores .page-tab.active,
#page-proveedores > .page-tabs .page-tab.active {
  background: #fff !important;
  color: #0f172a !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 6px rgba(15,23,42,.08), 0 1px 2px rgba(15,23,42,.04) !important;
}

/* ─── Card base de cada sub-tab ─── */
#page-proveedores [id^="prov-tab-"] .card {
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.06) !important;
  border-radius: 14px !important;
  padding: 1.5rem 1.7rem !important;
  box-shadow: 0 2px 10px -4px rgba(15,23,42,.08);
  margin-bottom: 1rem !important;
}

/* ─── Título "Nuevo pedido" / "Datos del proveedor" ─── */
#page-proveedores [id^="prov-tab-"] .card > .label.mb-md:first-child {
  display: inline-block !important;
  font-size: 14px !important;
  font-weight: 800 !important;
  color: #0f172a !important;
  text-transform: none !important;
  letter-spacing: -.01em !important;
  margin-bottom: 1.2rem !important;
  padding-bottom: .6rem !important;
  border-bottom: 1.5px solid #f1f5f9 !important;
  width: 100%;
}

/* ─── Labels ─── */
#page-proveedores [id^="prov-tab-"] .label {
  font-size: 11px !important;
  font-weight: 700 !important;
  color: #475569 !important;
  text-transform: uppercase !important;
  letter-spacing: .04em !important;
  margin-bottom: .4rem !important;
}

/* ─── Inputs / Selects / Textareas ─── */
#page-proveedores [id^="prov-tab-"] input[type="text"],
#page-proveedores [id^="prov-tab-"] input[type="email"],
#page-proveedores [id^="prov-tab-"] input[type="number"],
#page-proveedores [id^="prov-tab-"] input[type="date"],
#page-proveedores [id^="prov-tab-"] input[type="time"],
#page-proveedores [id^="prov-tab-"] select,
#page-proveedores [id^="prov-tab-"] textarea {
  width: 100% !important;
  padding: 11px 13px !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 9px !important;
  font-size: 13.5px !important;
  font-family: inherit !important;
  background: #fff !important;
  color: #0f172a !important;
  transition: border-color .15s, box-shadow .15s !important;
  outline: none !important;
  box-sizing: border-box;
}
#page-proveedores [id^="prov-tab-"] input:hover:not(:focus),
#page-proveedores [id^="prov-tab-"] select:hover:not(:focus),
#page-proveedores [id^="prov-tab-"] textarea:hover:not(:focus) {
  border-color: #cbd5e1 !important;
}
#page-proveedores [id^="prov-tab-"] input:focus,
#page-proveedores [id^="prov-tab-"] select:focus,
#page-proveedores [id^="prov-tab-"] textarea:focus {
  border-color: #7c3aed !important;
  box-shadow: 0 0 0 3px rgba(124,58,237,.12) !important;
}
#page-proveedores [id^="prov-tab-"] textarea {
  resize: vertical !important;
  line-height: 1.5 !important;
}

/* ─── Grid layout: row2 ─── */
#page-proveedores [id^="prov-tab-"] .row2 {
  display: grid !important;
  grid-template-columns: 1fr 1fr !important;
  gap: 14px !important;
}

/* Forzar márgenes verticales coherentes entre filas */
#page-proveedores [id^="prov-tab-"] .row2,
#page-proveedores [id^="prov-tab-"] > .card > div:not(.label):not(.row2) {
  margin-bottom: 14px !important;
}
#page-proveedores [id^="prov-tab-"] > .card > div:last-child {
  margin-bottom: 0 !important;
}

/* ─── Botones de acción (Crear pedido / Email) ─── */
.pedido-actions {
  display: flex !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  margin-top: 1.4rem !important;
  padding-top: 1.2rem !important;
  border-top: 1.5px solid #f1f5f9 !important;
}

#page-proveedores [id^="prov-tab-"] .submit-btn,
.pedido-actions .submit-btn {
  flex: 1 1 auto;
  padding: 13px 22px !important;
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  letter-spacing: -.005em;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  box-shadow: 0 8px 18px -8px rgba(124,58,237,.45),
              inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform .15s, box-shadow .15s, filter .15s;
  font-family: inherit;
  min-width: 160px;
}
#page-proveedores [id^="prov-tab-"] .submit-btn:hover,
.pedido-actions .submit-btn:hover {
  transform: translateY(-1px);
  filter: brightness(1.05);
  box-shadow: 0 12px 24px -10px rgba(124,58,237,.55),
              inset 0 1px 0 rgba(255,255,255,.22);
}

/* Botón "Email" — verde */
.submit-btn-email {
  flex: 1 1 auto;
  padding: 13px 22px !important;
  background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 10px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  box-shadow: 0 8px 18px -8px rgba(16,185,129,.45),
              inset 0 1px 0 rgba(255,255,255,.18);
  transition: transform .15s, box-shadow .15s, filter .15s;
  font-family: inherit;
  min-width: 200px;
}
.submit-btn-email:hover {
  transform: translateY(-1px);
  filter: brightness(1.05);
  box-shadow: 0 12px 24px -10px rgba(16,185,129,.55);
}

/* Botón "Solo email" — ghost */
.submit-btn-ghost {
  padding: 13px 18px !important;
  background: #fff !important;
  color: #475569 !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 10px !important;
  font-size: 13px !important;
  font-weight: 600 !important;
  cursor: pointer;
  display: inline-flex; align-items: center; gap: 6px;
  transition: all .15s;
  font-family: inherit;
}
.submit-btn-ghost:hover {
  border-color: #7c3aed !important;
  color: #7c3aed !important;
  background: #faf5ff !important;
}

/* ─── Estado vacío ("Sin proveedores — añade uno primero") en el select ─── */
#nped-proveedor option[value=""] {
  color: #ef4444;
  font-style: italic;
}

/* ─── Estado proveedor con email (mostrar 📧 en la lista) ─── */
#nped-proveedor option {
  padding: 8px;
  font-size: 13px;
}

/* ─── Estrellas valoración ─── */
#prov-tab-nuevo-prov [id^="star-"] {
  font-size: 26px !important;
  padding: 4px !important;
  margin-right: 2px;
  transition: opacity .15s, transform .15s !important;
}
#prov-tab-nuevo-prov [id^="star-"]:hover {
  transform: scale(1.15);
  opacity: 1 !important;
}

/* ─── Responsive ─── */
@media (max-width: 768px) {
  #page-proveedores [id^="prov-tab-"] .row2 {
    grid-template-columns: 1fr !important;
  }
  .pedido-actions {
    flex-direction: column !important;
  }
  .pedido-actions > button {
    width: 100% !important;
  }
}

/* === Email cards historial === */
#emails-lista { display: flex; flex-direction: column; gap: 10px; }
.email-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 14px 16px;
  transition: border-color .15s, box-shadow .15s;
}
.email-card:hover {
  border-color: #cbd5e1;
  box-shadow: 0 4px 14px -6px rgba(15,23,42,.12);
}
.email-card-top {
  display: flex; justify-content: space-between; align-items: flex-start;
  gap: 14px; margin-bottom: 8px; flex-wrap: wrap;
}
.email-card-prov-name {
  font-size: 14px; font-weight: 700; color: #0f172a; line-height: 1.2;
}
.email-card-prov-email {
  font-size: 12px; color: #64748b; margin-top: 2px;
}
.email-card-meta { text-align: right; flex-shrink: 0; }
.email-card-fecha { font-size: 11.5px; color: #94a3b8; margin-bottom: 4px; }
.email-card-chips { display: flex; gap: 4px; justify-content: flex-end; flex-wrap: wrap; }
.email-chip {
  display: inline-flex; align-items: center; gap: 3px;
  padding: 3px 9px; font-size: 10.5px; font-weight: 700;
  border-radius: 999px; border: 1px solid;
  text-transform: uppercase; letter-spacing: .03em;
}
.email-chip-ok      { background: #f0fdf4; color: #15803d; border-color: #bbf7d0; }
.email-chip-warn    { background: #fff7ed; color: #9a3412; border-color: #fed7aa; }
.email-chip-neutral { background: #f1f5f9; color: #475569; border-color: #cbd5e1; }
.email-card-asunto {
  font-size: 13px; color: #334155; font-weight: 600;
  padding: 7px 10px; background: #f8fafc; border-radius: 7px;
  margin-bottom: 8px; line-height: 1.4;
}
.email-card-bottom {
  display: flex; gap: 14px; flex-wrap: wrap;
  font-size: 11.5px; color: #64748b; padding-top: 8px;
  border-top: 1px solid #f1f5f9;
}
.email-card-confirm {
  margin-top: 10px; padding: 7px 14px;
  background: #f0fdf4; color: #15803d;
  border: 1px solid #bbf7d0; border-radius: 7px;
  font-size: 12px; font-weight: 700; cursor: pointer;
  transition: all .15s; font-family: inherit;
}
.email-card-confirm:hover {
  background: #15803d; color: #fff; border-color: #15803d;
}
/* ═══════════════════════════════════════════════════════════════
   REDESIGN INCIDENCIAS · cada incidencia como un chat/seguimiento
   Solo CSS — el HTML inline lo respeta con !important
   ═══════════════════════════════════════════════════════════════ */

/* ─── Container general del registro ─── */
#tab-registro,
#inc-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-top: .5rem;
}

/* ─── Cada incidencia · estilo conversación ─── */
[id^="inc-card-"] {
  background: #fff !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 16px !important;
  margin-bottom: 16px !important;
  overflow: visible !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.04),
              0 1px 12px -6px rgba(15,23,42,.06) !important;
  position: relative;
  transition: box-shadow .2s, border-color .2s;
}
[id^="inc-card-"]:hover {
  box-shadow: 0 4px 16px -8px rgba(15,23,42,.12),
              0 1px 3px rgba(15,23,42,.04) !important;
  border-color: #cbd5e1 !important;
}

/* La barra lateral de estado se vuelve más prominente */
[id^="inc-card-"] > div:first-child {
  width: 5px !important;
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
}

/* Convertir la "descripción" en una burbuja de chat */
[id^="inc-card-"] > div:nth-child(2) > div:nth-of-type(2) {
  display: inline-block !important;
  position: relative;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0;
  padding: 12px 16px !important;
  border-radius: 14px 14px 14px 4px !important;
  margin-bottom: 12px !important;
  max-width: 92%;
  line-height: 1.55 !important;
  color: #1e293b !important;
}

/* Cola de la burbuja (efecto chat) */
[id^="inc-card-"] > div:nth-child(2) > div:nth-of-type(2)::before {
  content: "";
  position: absolute;
  left: -8px; bottom: 0;
  width: 16px; height: 14px;
  background: #f8fafc;
  border-left: 1px solid #e2e8f0;
  border-bottom: 1px solid #e2e8f0;
  border-radius: 0 0 0 14px;
  clip-path: polygon(0 0, 100% 100%, 100% 0);
}

/* Pill del reportador (kb-pill) se convierte en "remitente" del mensaje */
[id^="inc-card-"] .kb-pill {
  display: inline-flex !important;
  align-items: center;
  gap: 8px !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 0 14px 0 !important;
  font-size: 12px;
  color: #64748b;
  font-weight: 600;
}
[id^="inc-card-"] .kb-pill-dot {
  width: 28px !important;
  height: 28px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  box-shadow: 0 2px 8px rgba(15,23,42,.15);
  flex-shrink: 0;
}
[id^="inc-card-"] .kb-pill-name {
  font-size: 12.5px !important;
  font-weight: 700 !important;
  color: #334155 !important;
}
[id^="inc-card-"] .kb-pill-name::after {
  content: " · creó la incidencia";
  font-weight: 500;
  color: #94a3b8;
}

/* Header row más limpio (ID y meta-chips) */
[id^="inc-card-"] > div:nth-child(2) > div:first-child {
  margin-bottom: 14px !important;
  padding-bottom: 10px;
  border-bottom: 1px dashed #e2e8f0;
}

/* Divider entre el "mensaje" y la "respuesta" */
[id^="inc-card-"] > div:nth-child(2) > div[style*="height:1px"] {
  position: relative;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, #e2e8f0 30%, #e2e8f0 70%, transparent) !important;
  margin: 16px 0 !important;
}
[id^="inc-card-"] > div:nth-child(2) > div[style*="height:1px"]::before {
  content: "Seguimiento";
  position: absolute;
  left: 50%; top: -8px; transform: translateX(-50%);
  background: #fff;
  padding: 0 12px;
  font-size: 10px;
  font-weight: 800;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .12em;
}

/* ─── Estado: input de resolución como composer de chat ─── */
[id^="inc-card-"] [id^="resol-txt-"] {
  flex: 1;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 22px !important;
  padding: 10px 18px !important;
  font-size: 13px !important;
  background: #f8fafc !important;
  color: #334155 !important;
  outline: none;
  transition: border-color .15s, box-shadow .15s, background .15s !important;
  font-family: inherit !important;
}
[id^="inc-card-"] [id^="resol-txt-"]:focus {
  border-color: #7c3aed !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(124,58,237,.12) !important;
}
[id^="inc-card-"] [id^="resol-txt-"]::placeholder {
  color: #94a3b8;
}

/* Botón Guardar como botón de "enviar" del chat */
[id^="inc-card-"] [onclick^="saveResolution"] {
  padding: 9px 18px !important;
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 22px !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  cursor: pointer;
  box-shadow: 0 4px 12px -4px rgba(124,58,237,.4),
              inset 0 1px 0 rgba(255,255,255,.18) !important;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: transform .15s, box-shadow .15s, filter .15s;
  white-space: nowrap;
}
[id^="inc-card-"] [onclick^="saveResolution"]:hover {
  transform: translateY(-1px);
  filter: brightness(1.05);
  box-shadow: 0 8px 18px -6px rgba(124,58,237,.5) !important;
}
[id^="inc-card-"] [onclick^="saveResolution"]::before {
  content: "✈";
  font-size: 13px;
  display: inline-block;
}

/* ─── Resolución resuelta como burbuja de respuesta (verde) ─── */
[id^="inc-card-"] > div:nth-child(2) > div[style*="background:#f0fdf4"] {
  display: flex !important;
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  padding: 12px 16px !important;
  border-radius: 14px 14px 4px 14px !important;
  margin-top: 4px !important;
  margin-left: auto !important;
  margin-right: 0 !important;
  max-width: 88% !important;
  position: relative;
  flex-direction: row !important;
  gap: 10px !important;
}
/* Cola de la burbuja verde (al revés, lado derecho) */
[id^="inc-card-"] > div:nth-child(2) > div[style*="background:#f0fdf4"]::after {
  content: "";
  position: absolute;
  right: -8px; bottom: 0;
  width: 16px; height: 14px;
  background: #f0fdf4;
  border-right: 1px solid #bbf7d0;
  border-bottom: 1px solid #bbf7d0;
  border-radius: 0 0 14px 0;
  clip-path: polygon(0 0, 100% 100%, 0 100%);
}
[id^="inc-card-"] > div:nth-child(2) > div[style*="background:#f0fdf4"] svg {
  flex-shrink: 0;
  margin-top: 2px;
}

/* ─── Estado dot pequeño a la izquierda como en chat status ─── */
[id^="inc-card-"]::before {
  content: "";
  position: absolute;
  left: -7px; top: 24px;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: #fff;
  border: 3px solid;
  z-index: 1;
}

/* Color del dot por estado · usa el color de la barra lateral */
[id^="inc-card-"]:has(span[style*="background:#d97706"]):before,
[id^="inc-card-"]:has([style*="color:#d97706"]):before { border-color: #f59e0b; }
[id^="inc-card-"]:has(span[style*="background:#0284c7"]):before,
[id^="inc-card-"]:has([style*="color:#0284c7"]):before { border-color: #2563eb; }
[id^="inc-card-"]:has(span[style*="background:#16a34a"]):before,
[id^="inc-card-"]:has([style*="color:#16a34a"]):before { border-color: #16a34a; }

/* Línea de tiempo conectora vertical entre cards */
#inc-list { position: relative; }
#inc-list::before {
  content: "";
  position: absolute;
  left: 0px; top: 30px; bottom: 30px;
  width: 2px;
  background: linear-gradient(180deg, transparent, #e2e8f0 8%, #e2e8f0 92%, transparent);
  z-index: 0;
}

/* Padding-left para dejar espacio al timeline */
#inc-list > [id^="inc-card-"] {
  margin-left: 18px !important;
  position: relative;
}

/* Tags/chips del header se vuelven más coherentes con estilo chat */
[id^="inc-card-"] span[style*="border-radius:999px"] {
  padding: 3px 10px !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  text-transform: none;
  letter-spacing: 0;
}

/* ─── Filtros superiores (Todos / Pendiente / En progreso / Resuelta) ─── */
.filter-btn {
  padding: 8px 16px !important;
  background: #fff !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 999px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: #64748b !important;
  cursor: pointer;
  transition: all .15s !important;
  font-family: inherit !important;
}
.filter-btn:hover:not(.active) {
  border-color: #cbd5e1 !important;
  color: #334155 !important;
}
.filter-btn.active {
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%) !important;
  border-color: #6d28d9 !important;
  color: #fff !important;
  box-shadow: 0 4px 12px -4px rgba(124,58,237,.4);
}

/* Botón "Exportar Excel" - estilo coherente */
.export-btn {
  padding: 8px 16px !important;
  background: #fff !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 9px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: #475569 !important;
  cursor: pointer;
  transition: all .15s !important;
}
.export-btn:hover {
  border-color: #16a34a !important;
  color: #15803d !important;
  background: #f0fdf4 !important;
}

/* ─── Responsive ─── */
@media (max-width: 768px) {
  #inc-list::before { display: none; }
  #inc-list > [id^="inc-card-"] { margin-left: 0 !important; }
  [id^="inc-card-"]::before { display: none; }
  [id^="inc-card-"] > div:nth-child(2) > div:nth-of-type(2) {
    max-width: 100%;
  }
  [id^="inc-card-"] > div:nth-child(2) > div[style*="background:#f0fdf4"] {
    max-width: 100% !important;
    margin-left: 0 !important;
  }
}
/* ═══════════════════════════════════════════════════════════════
   REDESIGN PMS CALENDAR · estilo profesional tipo PMS hotelero
   Solo CSS — sin tocar HTML/JS
   Iconos monocromos · rack de días · selección clara
   ═══════════════════════════════════════════════════════════════ */

/* ─── Forzar iconos a monocromo (gris neutro) ─── */
#guest-calendar-wrap .gcal-row-icon {
  background: #f1f5f9 !important;
  background-image: none !important;
  color: #475569 !important;
  width: 38px !important;
  height: 38px !important;
  border-radius: 9px !important;
  display: grid !important;
  place-items: center !important;
  box-shadow: inset 0 0 0 1px #e2e8f0 !important;
  transition: background .15s, color .15s;
}
#guest-calendar-wrap .gcal-row-icon svg,
#guest-calendar-wrap .gcal-row-icon img {
  width: 19px !important;
  height: 19px !important;
  color: #475569 !important;
  stroke: #475569 !important;
  fill: none !important;
  filter: none !important;
  opacity: 1 !important;
}

/* Etiqueta de fila (CUNA / GARAJE / AMENITY / ESPECIAL) */
#guest-calendar-wrap .gcal-row-label {
  background: #fafbfc !important;
  border-right: 1.5px solid #e2e8f0 !important;
  padding: 16px 8px !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  font-size: 10px !important;
  font-weight: 800 !important;
  color: #64748b !important;
  text-transform: uppercase;
  letter-spacing: .12em;
  position: sticky;
  left: 0;
  z-index: 2;
}

/* Hover sobre la etiqueta de fila */
#guest-calendar-wrap .gcal-row-label:hover .gcal-row-icon {
  background: #0f172a !important;
  color: #fff !important;
}
#guest-calendar-wrap .gcal-row-label:hover .gcal-row-icon svg {
  color: #fff !important;
  stroke: #fff !important;
}

/* ═══════════════════════════════════════════════════════════════
   RACK DE DÍAS · cabecera tipo PMS profesional
   ═══════════════════════════════════════════════════════════════ */

#guest-calendar-wrap .gcal-v150-grid,
#guest-calendar-wrap .garage-grid {
  background: #fff !important;
  border: 1px solid #e2e8f0;
  border-radius: 0 0 18px 18px;
  overflow: hidden;
}

/* Cabecera de cada día · separar nombre día y número */
#guest-calendar-wrap .gcal-head,
#guest-calendar-wrap .garage-head {
  background: linear-gradient(180deg, #fafbfc 0%, #f8fafc 100%) !important;
  border-bottom: 2px solid #e2e8f0 !important;
  border-right: 1px solid #f1f5f9 !important;
  padding: 12px 6px 10px !important;
  text-align: center !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  color: #94a3b8 !important;
  text-transform: uppercase;
  letter-spacing: .08em;
  position: sticky;
  top: 0;
  z-index: 3;
  display: flex !important;
  flex-direction: column;
  align-items: center;
  gap: 3px;
}

/* Número del día más grande */
#guest-calendar-wrap .gcal-head .gcal-head-num,
#guest-calendar-wrap .gcal-head-num,
#guest-calendar-wrap .garage-head strong {
  display: block;
  font-size: 17px !important;
  font-weight: 800 !important;
  color: #1e293b !important;
  margin-top: 2px;
  letter-spacing: -.02em;
  line-height: 1;
}

/* Fines de semana con tinte sutil */
#guest-calendar-wrap .gcal-head[data-weekday="6"],
#guest-calendar-wrap .gcal-head[data-weekday="0"],
#guest-calendar-wrap .gcal-head.is-weekend {
  background: linear-gradient(180deg, #fef3f2 0%, #fef2f2 100%) !important;
  color: #f87171 !important;
}

/* Hoy: corona morada en el número */
#guest-calendar-wrap .gcal-head.gcal-today-head,
#guest-calendar-wrap .gcal-head.today {
  background: linear-gradient(180deg, #f5f3ff 0%, #ede9fe 100%) !important;
  border-bottom-color: #7c3aed !important;
}
#guest-calendar-wrap .gcal-head.gcal-today-head .gcal-head-num,
#guest-calendar-wrap .gcal-head.today .gcal-head-num,
#guest-calendar-wrap .gcal-head.today strong {
  background: #7c3aed !important;
  color: #fff !important;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: inline-grid !important;
  place-items: center;
  font-size: 12.5px !important;
  margin: 2px auto 0;
  box-shadow: 0 4px 10px rgba(124,58,237,.35),
              inset 0 1px 0 rgba(255,255,255,.18);
}
#guest-calendar-wrap .gcal-head.today {
  color: #7c3aed !important;
}

/* ═══════════════════════════════════════════════════════════════
   CELDAS · estilo PMS con selección visual
   ═══════════════════════════════════════════════════════════════ */

#guest-calendar-wrap .gcal-cell,
#guest-calendar-wrap .garage-cell {
  background: #fff !important;
  border-right: 1px solid #f1f5f9 !important;
  border-bottom: 1px solid #f1f5f9 !important;
  min-height: 58px !important;
  padding: 4px !important;
  position: relative;
  transition: background .12s, box-shadow .12s;
  cursor: pointer;
}
#guest-calendar-wrap .gcal-cell:hover,
#guest-calendar-wrap .garage-cell:hover {
  background: #f8fafc !important;
  box-shadow: inset 0 0 0 1.5px #7c3aed !important;
  z-index: 5;
}

/* Columna hoy con tinte permanente */
#guest-calendar-wrap .gcal-today,
#guest-calendar-wrap .gcal-cell.gcal-today,
#guest-calendar-wrap .gcal-cell.today,
#guest-calendar-wrap .garage-cell.today {
  background: linear-gradient(180deg, rgba(124,58,237,.04) 0%, rgba(124,58,237,.01) 100%) !important;
}

/* Celdas de fin de semana */
#guest-calendar-wrap .gcal-cell[data-weekday="6"],
#guest-calendar-wrap .gcal-cell[data-weekday="0"],
#guest-calendar-wrap .gcal-cell.is-weekend {
  background: rgba(254,242,242,.4) !important;
}

/* ═══════════════════════════════════════════════════════════════
   RESERVAS · bloques estilo PMS
   ═══════════════════════════════════════════════════════════════ */

#guest-calendar-wrap .garage-event,
#guest-calendar-wrap .gcal-event {
  padding: 5px 9px !important;
  border-radius: 6px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  margin-bottom: 3px;
  line-height: 1.3;
  background: #f1f5f9 !important;
  color: #334155 !important;
  border-left: 3px solid #7c3aed !important;
  box-shadow: 0 1px 2px rgba(15,23,42,.06);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

#guest-calendar-wrap .garage-event.occ,
#guest-calendar-wrap .gcal-event.occ {
  background: linear-gradient(135deg, #ddd6fe 0%, #c4b5fd 100%) !important;
  color: #5b21b6 !important;
  border-left-color: #7c3aed !important;
}
#guest-calendar-wrap .garage-event.block,
#guest-calendar-wrap .gcal-event.block {
  background: linear-gradient(135deg, #fed7aa 0%, #fdba74 100%) !important;
  color: #9a3412 !important;
  border-left-color: #ea580c !important;
}

/* ═══════════════════════════════════════════════════════════════
   BOTONES "QUICK ADD" al hacer hover · monocromos
   ═══════════════════════════════════════════════════════════════ */

#guest-calendar-wrap .gcal-cell-hover,
#guest-calendar-wrap .garage-cell-hover {
  position: absolute !important;
  inset: 2px !important;
  background: rgba(255,255,255,.97) !important;
  backdrop-filter: blur(3px);
  border-radius: 6px;
  display: none;
  flex-direction: row !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  padding: 4px;
  z-index: 10;
}
#guest-calendar-wrap .gcal-cell:hover .gcal-cell-hover,
#guest-calendar-wrap .garage-cell:hover .gcal-cell-hover {
  display: flex !important;
}

/* Los buttons de quick-add (gcb / gcal-add) en monocromo */
#guest-calendar-wrap .gcb,
#guest-calendar-wrap .gcal-add-btn {
  flex: 1;
  display: flex !important;
  flex-direction: column !important;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 4px 2px !important;
  background: #fff !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 6px !important;
  color: #64748b !important;
  cursor: pointer;
  transition: all .12s;
  font-size: 9.5px !important;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}
#guest-calendar-wrap .gcb:hover,
#guest-calendar-wrap .gcal-add-btn:hover {
  background: #0f172a !important;
  border-color: #0f172a !important;
  color: #fff !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(15,23,42,.18);
}
#guest-calendar-wrap .gcb svg,
#guest-calendar-wrap .gcb .gcal-add-icon svg,
#guest-calendar-wrap .gcal-add-icon svg,
#guest-calendar-wrap .gcal-add-icon {
  width: 14px !important;
  height: 14px !important;
  color: inherit !important;
  stroke: currentColor !important;
  fill: none !important;
  filter: grayscale(100%) !important;
}
#guest-calendar-wrap .gcb-lbl,
#guest-calendar-wrap .gcal-add-lbl {
  font-size: 9px !important;
  color: inherit !important;
  background: none !important;
  -webkit-background-clip: initial !important;
  background-clip: initial !important;
  font-weight: 800 !important;
}
#guest-calendar-wrap .gcal-add-plus {
  display: none !important;
}

/* Override de colores brand en hover de añadir (que venían por --rt-color) */
#guest-calendar-wrap .gcb:hover .gcb-lbl {
  color: #fff !important;
}

/* ═══════════════════════════════════════════════════════════════
   RANGO SELECCIONADO · cuando arrastres entre cells
   ═══════════════════════════════════════════════════════════════ */

#guest-calendar-wrap .gcal-cell.is-selected,
#guest-calendar-wrap .gcal-cell.selecting,
#guest-calendar-wrap .garage-cell.is-selected {
  background: linear-gradient(135deg, rgba(124,58,237,.16), rgba(124,58,237,.10)) !important;
  box-shadow: inset 0 0 0 2px #7c3aed !important;
}

/* Soporte para fechas seleccionadas en los inputs desde/hasta */
#guest-calendar-wrap .gcal-cell[data-in-range="1"] {
  background: rgba(124,58,237,.06) !important;
}

/* ═══════════════════════════════════════════════════════════════
   PEQUEÑOS DETALLES PMS
   ═══════════════════════════════════════════════════════════════ */

/* Contador de eventos por celda (badge esquina superior derecha) */
#guest-calendar-wrap .gcal-cell::after {
  content: "";
  position: absolute;
  top: 4px; right: 4px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: transparent;
  pointer-events: none;
}
#guest-calendar-wrap .gcal-cell:has(.gcal-event)::after,
#guest-calendar-wrap .gcal-cell:has(.garage-event)::after {
  background: #7c3aed;
  box-shadow: 0 0 0 2px #fff;
}

/* Scrollbar custom para el rack horizontal */
#guest-calendar-wrap .gcal-v150-grid::-webkit-scrollbar,
#guest-calendar-wrap .garage-grid::-webkit-scrollbar {
  height: 8px;
}
#guest-calendar-wrap .gcal-v150-grid::-webkit-scrollbar-track,
#guest-calendar-wrap .garage-grid::-webkit-scrollbar-track {
  background: #f1f5f9;
}
#guest-calendar-wrap .gcal-v150-grid::-webkit-scrollbar-thumb,
#guest-calendar-wrap .garage-grid::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 4px;
}
#guest-calendar-wrap .gcal-v150-grid::-webkit-scrollbar-thumb:hover,
#guest-calendar-wrap .garage-grid::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}
/* ═══════════════════════════════════════════════════════════════
   REDESIGN INCIDENCIAS · historial chat v2
   Fix botón Guardar + mejoras visuales conversacionales
   ═══════════════════════════════════════════════════════════════ */

/* ─── FIX CRÍTICO: botón "Guardar" partido en 2 líneas ─── */
.iht-resol-actions .save-btn,
.iht-resol-actions button.save-btn,
#tab-registro .save-btn {
  white-space: nowrap !important;
  min-width: 90px !important;
  width: auto !important;
  padding: 9px 18px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  flex-shrink: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  border-radius: 22px !important;
  background: linear-gradient(135deg, #7c3aed 0%, #6d28d9 100%) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 4px 12px -4px rgba(124,58,237,.45), inset 0 1px 0 rgba(255,255,255,.18) !important;
  cursor: pointer;
  transition: transform .15s, filter .15s, box-shadow .15s;
  font-family: inherit !important;
}
.iht-resol-actions .save-btn:hover {
  transform: translateY(-1px) !important;
  filter: brightness(1.08) !important;
  box-shadow: 0 8px 18px -6px rgba(124,58,237,.55), inset 0 1px 0 rgba(255,255,255,.22) !important;
}
.iht-resol-actions .save-btn::before {
  content: "✈";
  font-size: 12px;
}

/* ─── Contenedor de acciones (input + select + botón) como composer ─── */
.iht-resol-actions {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  margin-top: 10px !important;
}

/* ─── Textarea como campo de chat ─── */
.iht-resol-form .resol-input,
#tab-registro .resol-input,
[id^="resol-txt-"] {
  flex: 1 !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 22px !important;
  padding: 10px 16px !important;
  font-size: 13px !important;
  background: #f8fafc !important;
  color: #334155 !important;
  font-family: inherit !important;
  outline: none !important;
  resize: none !important;
  min-height: 42px !important;
  max-height: 120px !important;
  transition: border-color .15s, box-shadow .15s, background .15s !important;
  line-height: 1.4 !important;
}
[id^="resol-txt-"]:focus {
  border-color: #7c3aed !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(124,58,237,.10) !important;
}
[id^="resol-txt-"]::placeholder {
  color: #94a3b8 !important;
  font-style: italic;
}

/* ─── Status select inline ─── */
.iht-resol-actions .status-select,
[id^="status-"] {
  height: 42px !important;
  padding: 0 12px !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 12px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  background: #fff !important;
  color: #334155 !important;
  font-family: inherit !important;
  flex-shrink: 0 !important;
  min-width: 120px !important;
  outline: none !important;
  transition: border-color .15s !important;
}
.iht-resol-actions .status-select:focus,
[id^="status-"]:focus {
  border-color: #7c3aed !important;
  box-shadow: 0 0 0 3px rgba(124,58,237,.10) !important;
}

/* ─── Card de incidencia (contenedor iht-card) · estilo chat ─── */
.iht-card {
  background: #fff !important;
  border: 1px solid #e8ecf3 !important;
  border-radius: 16px !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.04), 0 2px 12px -6px rgba(15,23,42,.08) !important;
  transition: box-shadow .2s, border-color .2s !important;
  overflow: visible !important;
}
.iht-card:hover {
  box-shadow: 0 4px 16px -8px rgba(15,23,42,.14) !important;
  border-color: #cbd5e1 !important;
}

/* ─── Descripción como burbuja de chat ─── */
.iht-desc {
  display: inline-block !important;
  position: relative !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 14px 14px 14px 4px !important;
  padding: 11px 16px !important;
  max-width: 88% !important;
  line-height: 1.55 !important;
  color: #1e293b !important;
  font-size: 13.5px !important;
  margin-bottom: 10px !important;
}

/* ─── Resolución como burbuja de respuesta (verde, lado derecho) ─── */
.iht-resol:not(.iht-resol-form) {
  display: flex !important;
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  border-radius: 14px 14px 4px 14px !important;
  padding: 10px 14px !important;
  margin-left: auto !important;
  max-width: 88% !important;
  font-size: 12.5px !important;
  color: #166534 !important;
  font-weight: 600 !important;
  gap: 8px;
  align-items: flex-start;
}

/* ─── Dot del timeline ─── */
.iht-dot {
  width: 14px !important;
  height: 14px !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
  background: #fff !important;
  border: 3px solid currentColor !important;
  position: relative;
  z-index: 1;
}

/* ─── Divider "Seguimiento" ─── */
.iht-divider,
.iht-card > div[style*="height:1px"],
.iht-card > div[style*="height: 1px"] {
  position: relative !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, #e2e8f0 30%, #e2e8f0 70%, transparent) !important;
  margin: 14px 0 !important;
}
.iht-divider::before,
.iht-card > div[style*="height:1px"]::before {
  content: "Seguimiento";
  position: absolute;
  left: 50%; top: -8px; transform: translateX(-50%);
  background: #fff;
  padding: 0 10px;
  font-size: 9.5px;
  font-weight: 800;
  color: #94a3b8;
  text-transform: uppercase;
  letter-spacing: .12em;
  white-space: nowrap;
}

/* ─── Reporter pill ─── */
.iht-reporter,
.kb-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  font-size: 12px !important;
  color: #475569 !important;
  margin-bottom: 10px !important;
}
.iht-reporter .kb-pill-dot,
.kb-pill .kb-pill-dot {
  width: 26px !important;
  height: 26px !important;
  border-radius: 50% !important;
  display: grid !important;
  place-items: center !important;
  font-size: 11px !important;
  font-weight: 800 !important;
  color: #fff !important;
  box-shadow: 0 2px 6px rgba(15,23,42,.14) !important;
}
.iht-reporter .kb-pill-name::after,
.kb-pill .kb-pill-name::after {
  content: " · reportó" !important;
  color: #94a3b8 !important;
  font-weight: 400 !important;
}

/* ─── Filtros como pills segmentadas ─── */
#tab-registro ~ * .filter-btn,
.filter-btn {
  white-space: nowrap !important;
}

/* ─── Timeline spine ─── */
.iht-line {
  background: linear-gradient(180deg, #e2e8f0, transparent) !important;
}

/* ─── Responsive ─── */
@media (max-width: 640px) {
  .iht-resol-actions {
    flex-wrap: wrap !important;
  }
  .iht-resol-actions .save-btn {
    width: 100% !important;
  }
  .iht-desc, .iht-resol:not(.iht-resol-form) {
    max-width: 100% !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   FIX INCIDENCIAS · layout que no se rompe · v2
   ═══════════════════════════════════════════════════════════════ */

/* Contenedor timeline: ocupar el ancho disponible sin desbordarse */
.inc-timeline {
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
}

/* Fila: limitar al ancho padre */
.iht-row {
  width: 100% !important;
  box-sizing: border-box !important;
  min-width: 0 !important;
}

/* Card: no desbordarse NUNCA */
.iht-card {
  min-width: 0 !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  word-break: break-word !important;
  overflow: hidden !important;
  padding: 14px 16px !important;
  margin: 6px 0 10px 6px !important;
  border-radius: 14px !important;
}

/* Header: chips en fila sin overflow */
.iht-header {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 5px !important;
  margin-bottom: 8px !important;
  min-width: 0 !important;
}
.iht-time {
  margin-left: auto !important;
  white-space: nowrap !important;
  font-size: 11px !important;
  color: var(--muted) !important;
  flex-shrink: 0 !important;
}

/* Descripción como burbuja acotada */
.iht-desc {
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 12px 12px 12px 4px !important;
  padding: 10px 14px !important;
  font-size: 13px !important;
  color: #1e293b !important;
  line-height: 1.5 !important;
  margin-bottom: 10px !important;
  display: block !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  word-break: break-word !important;
}

/* Acciones: fila sin desbordarse, botón NO se corta */
.iht-resol-actions {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  flex-wrap: nowrap !important;
  width: 100% !important;
  box-sizing: border-box !important;
  min-width: 0 !important;
}

/* Textarea resolución: ocupa el espacio libre */
.iht-resol-actions .resol-input,
.iht-resol-form .resol-input {
  flex: 1 1 auto !important;
  min-width: 0 !important;
  width: auto !important;
  box-sizing: border-box !important;
  border-radius: 22px !important;
  border: 1.5px solid #e2e8f0 !important;
  padding: 10px 16px !important;
  font-size: 13px !important;
  background: #f8fafc !important;
  color: #334155 !important;
  font-family: inherit !important;
  outline: none !important;
  resize: none !important;
  height: 42px !important;
  overflow: hidden !important;
  transition: border-color .15s, box-shadow .15s, background .15s !important;
}
.iht-resol-actions .resol-input:focus,
.iht-resol-form .resol-input:focus {
  border-color: #7c3aed !important;
  background: #fff !important;
  box-shadow: 0 0 0 3px rgba(124,58,237,.10) !important;
}

/* Status select: tamaño fijo, no crece */
.iht-resol-actions select,
.iht-resol-actions .status-select {
  flex: 0 0 auto !important;
  width: 120px !important;
  min-width: 100px !important;
  height: 42px !important;
  padding: 0 10px !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 10px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  background: #fff !important;
  color: #334155 !important;
  font-family: inherit !important;
  outline: none !important;
}

/* Botón Guardar: NUNCA se parte */
.iht-resol-actions .save-btn,
.iht-resol-actions button {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  min-width: 90px !important;
  width: auto !important;
  height: 42px !important;
  padding: 0 18px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  border-radius: 22px !important;
  background: linear-gradient(135deg, #7c3aed, #6d28d9) !important;
  color: #fff !important;
  border: none !important;
  cursor: pointer !important;
  font-family: inherit !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 5px !important;
  box-shadow: 0 4px 12px -4px rgba(124,58,237,.4) !important;
  transition: transform .15s, filter .15s !important;
}
.iht-resol-actions .save-btn:hover,
.iht-resol-actions button:hover {
  transform: translateY(-1px) !important;
  filter: brightness(1.08) !important;
}

/* Resolución resuelta: burbuja alineada derecha */
.iht-resol:not(.iht-resol-form) {
  display: block !important;
  background: #f0fdf4 !important;
  border: 1px solid #bbf7d0 !important;
  border-radius: 12px 12px 4px 12px !important;
  padding: 9px 14px !important;
  margin-left: auto !important;
  max-width: 90% !important;
  font-size: 12.5px !important;
  color: #166534 !important;
  font-weight: 600 !important;
  word-break: break-word !important;
  box-sizing: border-box !important;
}

/* Mobile */
@media (max-width: 640px) {
  .iht-resol-actions {
    flex-wrap: wrap !important;
  }
  .iht-resol-actions select,
  .iht-resol-actions .status-select {
    width: 100% !important;
    flex: 1 1 auto !important;
  }
  .iht-resol-actions .save-btn,
  .iht-resol-actions button {
    width: 100% !important;
    min-width: unset !important;
    justify-content: center !important;
  }
  .iht-time { font-size: 10px !important; }
}

/* ═══════════════════════════════════════════════════════════════
   FIX INCIDENCIAS · responsive completo
   ═══════════════════════════════════════════════════════════════ */

/* Página contenedora: nunca desbordarse */
#page-incidencias {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

/* El tab-registro no más ancho que su padre */
#tab-registro {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
}

/* Timeline */
.inc-timeline {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  overflow-x: hidden !important;
  padding: 0 !important;
}

/* Fila */
.iht-row {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  min-width: 0 !important;
  display: flex !important;
  gap: 0 !important;
  align-items: flex-start !important;
}

/* Spine (columna timeline) */
.iht-spine {
  flex-shrink: 0 !important;
  width: 24px !important;
}

/* Card */
.iht-card {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  max-width: calc(100% - 30px) !important;
  width: 0 !important; /* fuerza el flex a calcular correctamente */
  box-sizing: border-box !important;
  overflow: hidden !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  padding: 14px 16px !important;
  margin: 4px 0 10px 6px !important;
}

/* Header chips: no desbordar */
.iht-header {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 5px !important;
  align-items: center !important;
  min-width: 0 !important;
  width: 100% !important;
  box-sizing: border-box !important;
}
.iht-time {
  margin-left: auto !important;
  white-space: nowrap !important;
  flex-shrink: 0 !important;
}
.iht-id, .iht-sw, .iht-prio, .iht-status {
  flex-shrink: 0 !important;
  white-space: nowrap !important;
}

/* Descripción: nunca desborda */
.iht-desc {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  word-break: break-word !important;
  overflow-wrap: break-word !important;
  display: block !important;
}

/* Acciones: 3 columnas → flex responsivo */
.iht-resol-actions {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
}
.iht-resol-form {
  width: 100% !important;
  box-sizing: border-box !important;
}

/* Textarea ocupa el espacio libre */
.iht-resol-actions .resol-input {
  flex: 1 1 auto !important;
  min-width: 60px !important;
  width: auto !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  height: 42px !important;
  resize: none !important;
}

/* Select: compacto */
.iht-resol-actions select {
  flex: 0 0 110px !important;
  width: 110px !important;
  min-width: 90px !important;
  max-width: 110px !important;
  height: 42px !important;
  box-sizing: border-box !important;
}

/* Botón Guardar: nunca wrappea */
.iht-resol-actions .save-btn,
.iht-resol-actions button[class*="save"],
.iht-resol-actions button:not([class*="status"]) {
  flex: 0 0 auto !important;
  white-space: nowrap !important;
  width: auto !important;
  min-width: 80px !important;
  height: 42px !important;
  padding: 0 16px !important;
  box-sizing: border-box !important;
}

/* Resolución resuelta */
.iht-resol:not(.iht-resol-form) {
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
  word-break: break-word !important;
}

/* ─── Mobile ≤ 540px: apilar acciones ─── */
@media (max-width: 540px) {
  .iht-resol-actions {
    flex-wrap: wrap !important;
  }
  .iht-resol-actions .resol-input {
    width: 100% !important;
    flex: 1 1 100% !important;
  }
  .iht-resol-actions select {
    flex: 1 1 auto !important;
    width: auto !important;
    max-width: 100% !important;
  }
  .iht-resol-actions .save-btn,
  .iht-resol-actions button[class*="save"],
  .iht-resol-actions button:not([class*="status"]) {
    flex: 1 1 auto !important;
    width: 100% !important;
    justify-content: center !important;
  }
  .iht-card {
    padding: 12px 12px !important;
    margin: 4px 0 8px 4px !important;
  }
  .iht-time {
    width: 100% !important;
    margin-left: 0 !important;
    text-align: right !important;
    order: 99 !important;
  }
}

/* ═══════════════════════════════════════════════════════════════
   RACK PMS v3 · paleta morada suave + iconos sin fondo + drag fix
   ═══════════════════════════════════════════════════════════════ */

/* ─── ICONOS: sin fondo, monocromo, solo stroke ─── */
#guest-calendar-wrap .gcal-row-icon {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  width: 32px !important;
  height: 32px !important;
  display: grid !important;
  place-items: center !important;
  color: #6d28d9 !important;
}
#guest-calendar-wrap .gcal-row-icon svg {
  width: 22px !important;
  height: 22px !important;
  color: #6d28d9 !important;
  stroke: #6d28d9 !important;
  fill: none !important;
  filter: none !important;
  opacity: 1 !important;
}

/* ─── FILA LABEL: fondo muy sutil ─── */
#guest-calendar-wrap .gcal-row-label {
  background: #faf9ff !important;
  border-right: 1.5px solid #ede9fe !important;
  padding: 18px 8px !important;
  gap: 6px !important;
}
#guest-calendar-wrap .gcal-row-name {
  font-size: 9px !important;
  font-weight: 800 !important;
  color: #6d28d9 !important;
  text-transform: uppercase;
  letter-spacing: .12em;
}

/* Hover fila label */
#guest-calendar-wrap .gcal-row-label:hover .gcal-row-icon svg {
  stroke: #fff !important;
  color: #fff !important;
}
#guest-calendar-wrap .gcal-row-label:hover {
  background: #6d28d9 !important;
  border-right-color: #6d28d9 !important;
}
#guest-calendar-wrap .gcal-row-label:hover .gcal-row-name {
  color: rgba(255,255,255,.85) !important;
}

/* ─── CELDAS: blancas con bordes suaves ─── */
#guest-calendar-wrap .gcal-cell,
#guest-calendar-wrap .garage-cell {
  background: #fff !important;
  border-right: 1px solid #f1f5f9 !important;
  border-bottom: 1px solid #f1f5f9 !important;
  cursor: crosshair !important;
  min-height: 64px !important;
  position: relative;
  user-select: none !important;
  -webkit-user-select: none !important;
  transition: background .08s;
}

/* ─── HOVER celda: tinte morado muy sutil ─── */
#guest-calendar-wrap .gcal-cell:hover {
  background: rgba(109,40,217,.05) !important;
  box-shadow: inset 0 0 0 1.5px rgba(109,40,217,.3) !important;
}
/* Ocultar el hover-button antiguo */
#guest-calendar-wrap .gcal-cell:hover .gcal-cell-hover,
#guest-calendar-wrap .gcal-cell:hover .garage-cell-hover {
  display: none !important;
}

/* ─── ARRASTRE: celdas seleccionadas ─── */
#guest-calendar-wrap .gcal-cell.pms-cell-selecting,
.pms-cell-selecting {
  background: rgba(109,40,217,.15) !important;
  box-shadow: inset 0 0 0 2px #7c3aed !important;
  z-index: 5 !important;
  position: relative !important;
}

/* ─── EVENTOS: morado soft, sin gradiente oscuro ─── */
#guest-calendar-wrap .gcal-event,
#guest-calendar-wrap .garage-event {
  padding: 4px 8px !important;
  border-radius: 6px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  margin-bottom: 3px !important;
  background: rgba(109,40,217,.12) !important;
  color: #5b21b6 !important;
  border-left: 3px solid #7c3aed !important;
  box-shadow: none !important;
  line-height: 1.3 !important;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ─── DÍA ACTUAL: morado suave ─── */
#guest-calendar-wrap .gcal-cell.gcal-today,
#guest-calendar-wrap .gcal-cell.today {
  background: rgba(109,40,217,.06) !important;
}

/* ─── CABECERA: hover morado para selección semana ─── */
#guest-calendar-wrap .gcal-head {
  cursor: pointer !important;
  user-select: none !important;
  transition: background .12s, color .12s !important;
}
#guest-calendar-wrap .gcal-head:hover {
  background: linear-gradient(180deg, #f5f3ff, #ede9fe) !important;
  color: #6d28d9 !important;
}
#guest-calendar-wrap .gcal-head:hover .gcal-day-name,
#guest-calendar-wrap .gcal-head:hover .gcal-day-num {
  color: #6d28d9 !important;
}

/* ─── GRID BORDER ─── */
#guest-calendar-wrap .gcal-v150-grid,
#guest-calendar-wrap .garage-grid {
  border: 1px solid #ede9fe !important;
  border-radius: 0 0 16px 16px !important;
  overflow: hidden !important;
}

/* ─── CORNER (esquina vacía) ─── */
#guest-calendar-wrap .gcal-corner {
  background: #faf9ff !important;
  border-right: 1.5px solid #ede9fe !important;
  border-bottom: 2px solid #ede9fe !important;
}

/* ─── TOOLTIP instrucción en toolbar ─── */
.garage-week-toolbar::after {
  content: "Arrastra sobre las celdas para seleccionar un rango de fechas" !important;
  font-size: 10.5px !important;
  color: #a78bfa !important;
  display: block !important;
  margin-top: 4px !important;
  font-weight: 600 !important;
  letter-spacing: .01em !important;
}

/* ═══════════════════════════════════════════════════════════════
   USUARIOS REGISTRADOS · visual personalizado con fotos
   ═══════════════════════════════════════════════════════════════ */

/* Card de usuario más visual */
#admin-users-list > .card {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 14px 16px !important;
  margin-bottom: 8px !important;
  border-radius: 14px !important;
  border: 1px solid rgba(15,23,42,.06) !important;
  background: #fff !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.04) !important;
  transition: box-shadow .15s, border-color .15s !important;
}
#admin-users-list > .card:hover {
  box-shadow: 0 4px 14px -6px rgba(15,23,42,.12) !important;
  border-color: #e2e8f0 !important;
}

/* Avatar: siempre redondo, foto o iniciales */
#admin-users-list .avatar {
  width: 46px !important;
  height: 46px !important;
  border-radius: 50% !important;
  flex-shrink: 0 !important;
  overflow: hidden !important;
  display: grid !important;
  place-items: center !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  box-shadow: 0 2px 8px rgba(15,23,42,.14) !important;
  border: 2px solid rgba(255,255,255,.9) !important;
  outline: 2px solid rgba(124,58,237,.15) !important;
}
#admin-users-list .avatar img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 50% !important;
  display: block !important;
}

/* Info del usuario */
#admin-users-list > .card > div:nth-child(2) > div:first-child {
  font-size: 14.5px !important;
  font-weight: 700 !important;
  color: #0f172a !important;
  letter-spacing: -.01em !important;
}
#admin-users-list > .card > div:nth-child(2) > div:last-child {
  font-size: 11.5px !important;
  color: #64748b !important;
  margin-top: 2px !important;
}

/* Rol select */
#admin-users-list .zl-role-sel {
  padding: 6px 10px !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  color: #334155 !important;
  background: #fff !important;
  font-family: inherit !important;
  cursor: pointer !important;
  transition: border-color .15s !important;
}
#admin-users-list .zl-role-sel:focus {
  border-color: #7c3aed !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(124,58,237,.10) !important;
}

/* Botón Editar */
#admin-users-list button[onclick*="openPageAccessModal"] {
  padding: 6px 12px !important;
  border-radius: 8px !important;
  font-size: 11.5px !important;
  font-weight: 700 !important;
  color: #7c3aed !important;
  border: 1.5px solid #e9d5ff !important;
  background: #faf5ff !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: all .15s !important;
  font-family: inherit !important;
}
#admin-users-list button[onclick*="openPageAccessModal"]:hover {
  background: #7c3aed !important;
  color: #fff !important;
  border-color: #7c3aed !important;
}

/* === FIX select estado incidencias (En progres → cortado) === */
.iht-resol-actions select,
.iht-resol-actions .status-select,
[id^="status-"] {
  flex: 0 0 130px !important;
  min-width: 130px !important;
  max-width: 130px !important;
  width: 130px !important;
  height: 42px !important;
  padding: 0 10px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* ═══════════════════════════════════════════════════════════════
   FIX 1: Desplegable colaboradores → no se corta en 14"
   FIX 2: Iconos rack · morado suave, sin negro
   ═══════════════════════════════════════════════════════════════ */

/* ─── COLABORADORES DROPDOWN: posición y tamaño responsivo ─── */
#tt-f-colab-chips + * ,
[id$="-collab"] ~ [style*="position:absolute"],
[id*="colab"] ~ div[style*="position:absolute"],
[id*="collab-drop"],
.colab-dropdown, .tt-colab-drop {
  max-height: 220px !important;
  overflow-y: auto !important;
}

/* Forzar que el dropdown de colaboradores no salga de la ventana */
[id*="colab"][style*="position:absolute"],
[id*="collab"][style*="position:absolute"],
.pac-dropdown,
#tt-colab-dropdown {
  position: fixed !important;
  max-height: min(220px, 40vh) !important;
  overflow-y: auto !important;
  z-index: 9999 !important;
  box-shadow: 0 12px 32px rgba(15,23,42,.18) !important;
  border-radius: 12px !important;
  border: 1px solid #e2e8f0 !important;
  background: #fff !important;
}

/* ─── RACK CALENDARIO: iconos morado suave, sin negro ─── */

/* Eliminar el fondo negro/oscuro del icono activo (CUNA seleccionada) */
#guest-calendar-wrap .gcal-row-icon,
#guest-calendar-wrap .gcal-row-label .gcal-row-icon {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  color: #7c3aed !important;
}
#guest-calendar-wrap .gcal-row-icon svg {
  stroke: #7c3aed !important;
  color: #7c3aed !important;
  fill: none !important;
}

/* Hover fila: morado suave (no negro) */
#guest-calendar-wrap .gcal-row-label:hover {
  background: rgba(124,58,237,.07) !important;
  border-right-color: rgba(124,58,237,.3) !important;
}
#guest-calendar-wrap .gcal-row-label:hover .gcal-row-icon svg {
  stroke: #7c3aed !important;
  color: #7c3aed !important;
}
#guest-calendar-wrap .gcal-row-label:hover .gcal-row-name {
  color: #6d28d9 !important;
}

/* Estado activo/seleccionado de una fila: fondo lavanda muy suave */
#guest-calendar-wrap .gcal-row-label.active,
#guest-calendar-wrap .gcal-row-label[data-active="1"] {
  background: rgba(124,58,237,.10) !important;
  border-right-color: #7c3aed !important;
}

/* ─── RACK RESPONSIVO en pantallas 14": reducir tamaño icono y label ─── */
@media (max-width: 1366px) {
  #guest-calendar-wrap .gcal-row-label {
    width: 60px !important;
    min-width: 60px !important;
    padding: 14px 4px !important;
    gap: 4px !important;
  }
  #guest-calendar-wrap .gcal-row-icon {
    width: 28px !important;
    height: 28px !important;
  }
  #guest-calendar-wrap .gcal-row-icon svg {
    width: 16px !important;
    height: 16px !important;
  }
  #guest-calendar-wrap .gcal-row-name {
    font-size: 8px !important;
    letter-spacing: .06em !important;
  }
  /* Ajustar el grid para que encaje */
  #guest-calendar-wrap .gcal-v150-grid {
    grid-template-columns: 60px repeat(auto-fill, minmax(80px, 1fr)) !important;
  }
}
/* ═══════════════════════════════════════════════════════════════
   SEDES · carpetas por sede · CSS
   ═══════════════════════════════════════════════════════════════ */

.sf-sede-block {
  background: #fff;
  border: 1px solid #e8ecf3;
  border-radius: 14px;
  margin-bottom: 10px;
  overflow: hidden;
  transition: box-shadow .15s;
}
.sf-sede-block:hover { box-shadow: 0 4px 14px -6px rgba(15,23,42,.1); }

.sf-sede-header {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 16px;
  cursor: pointer;
  user-select: none;
}
.sf-sede-header:hover { background: #faf9ff; }

.sf-sede-ic {
  width: 40px; height: 40px;
  border-radius: 10px;
  background: linear-gradient(135deg, #ede9fe, #c4b5fd);
  color: #6d28d9;
  font-size: 13px; font-weight: 800;
  display: grid; place-items: center;
  flex-shrink: 0;
}

.sf-sede-info { flex: 1; min-width: 0; }
.sf-sede-name {
  font-size: 14px; font-weight: 700; color: #0f172a;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.sf-sede-count { font-size: 11.5px; color: #64748b; margin-top: 1px; }

.sf-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.sf-btn-add {
  padding: 6px 12px;
  background: #f5f3ff; color: #6d28d9;
  border: 1px solid #ddd6fe;
  border-radius: 8px;
  font-size: 12px; font-weight: 700;
  cursor: pointer; font-family: inherit;
  white-space: nowrap;
  transition: all .15s;
}
.sf-btn-add:hover { background: #7c3aed; color: #fff; border-color: #7c3aed; }

.sf-caret {
  color: #94a3b8;
  transition: transform .2s;
  flex-shrink: 0;
}

.sf-sede-body {
  padding: 0 14px 14px;
  display: block;
}

/* Carpeta */
.sf-folder {
  background: #faf9ff;
  border: 1px solid #ede9fe;
  border-radius: 10px;
  margin-bottom: 8px;
  overflow: hidden;
}
.sf-folder-head {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 12px;
  font-size: 13px; font-weight: 700; color: #5b21b6;
  background: #f5f3ff;
  border-bottom: 1px solid #ede9fe;
}
.sf-folder-count {
  margin-left: auto;
  background: #ede9fe; color: #6d28d9;
  font-size: 10.5px; font-weight: 800;
  padding: 2px 7px; border-radius: 999px;
}
.sf-del-folder {
  background: none; border: none; cursor: pointer;
  color: #94a3b8; font-size: 16px; line-height: 1;
  padding: 0 2px;
  transition: color .15s;
}
.sf-del-folder:hover { color: #ef4444; }

/* Documentos */
.sf-doc {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 12px;
  cursor: pointer;
  font-size: 12.5px; color: #334155;
  transition: background .1s;
  border-bottom: 1px solid #f1f5f9;
}
.sf-doc:last-child { border-bottom: none; }
.sf-doc:hover { background: #f5f3ff; }
.sf-doc-icon {
  font-size: 10px; font-weight: 900;
  padding: 3px 6px; border-radius: 5px;
  background: #ede9fe; color: #6d28d9;
  flex-shrink: 0;
}
.sf-doc-name {
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.sf-empty-folder {
  padding: 10px 12px;
  font-size: 12px; color: #94a3b8; font-style: italic;
}
.sf-uncategorized { padding: 4px 0; }
.sf-unc-label {
  font-size: 10px; font-weight: 800;
  color: #94a3b8; text-transform: uppercase;
  letter-spacing: .08em; padding: 6px 12px 4px;
}
/* ═══════════════════════════════════════════════════════════════
   RACK GANTT v3 · PMS-style con barras horizontales
   ═══════════════════════════════════════════════════════════════ */

/* ─── Shell ─── */
.rk-shell {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 4px 24px -12px rgba(15,23,42,.12), 0 1px 4px rgba(15,23,42,.04);
  position: relative;
}
.rk-shell::before {
  content: "";
  position: absolute; top: 0; left: 0; right: 0; height: 3px;
  background: linear-gradient(90deg, #7c3aed, #a855f7, #6366f1);
  z-index: 2;
}

/* ─── Toolbar ─── */
.rk-toolbar {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 10px;
  padding: 14px 20px 12px;
  background: linear-gradient(180deg, #fafaff 0%, #fff 100%);
  border-bottom: 1px solid #f1f5f9;
}
.rk-toolbar-left { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.rk-toolbar-right { display: flex; align-items: center; gap: 4px; }

.rk-hotel-title {
  font-size: 18px; font-weight: 800; color: #0f172a;
  letter-spacing: -.02em;
  padding-left: 12px; position: relative;
}
.rk-hotel-title::before {
  content: "";
  position: absolute; left: 0; top: 3px; bottom: 3px;
  width: 4px; background: linear-gradient(180deg, #7c3aed, #a855f7);
  border-radius: 2px;
}
.rk-period { font-size: 13px; color: #64748b; font-weight: 600; }

.rk-range-bar { display: flex; gap: 3px; }
.rk-range {
  padding: 5px 12px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 8px; font-size: 11.5px; font-weight: 700;
  color: #64748b; cursor: pointer; font-family: inherit;
  transition: all .12s;
}
.rk-range:hover { border-color: #7c3aed; color: #7c3aed; }
.rk-range.active { background: #7c3aed; border-color: #7c3aed; color: #fff; }

.rk-nav {
  width: 32px; height: 32px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 8px; color: #475569; font-size: 15px; font-weight: 700;
  cursor: pointer; font-family: inherit;
  display: grid; place-items: center;
  transition: all .12s;
}
.rk-nav:hover { border-color: #7c3aed; color: #7c3aed; background: #f5f3ff; }
.rk-today { font-size: 11px; width: auto; padding: 0 10px; }

/* ─── Grid ─── */
.rk-grid {
  display: grid;
  overflow-x: auto;
  overflow-y: visible;
}

/* Corner */
.rk-corner {
  background: #fafbfc;
  border-right: 1.5px solid #e2e8f0;
  border-bottom: 2px solid #e2e8f0;
  padding: 10px 10px;
  font-size: 9.5px; font-weight: 800; color: #94a3b8;
  text-transform: uppercase; letter-spacing: .1em;
  display: flex; align-items: flex-end;
  position: sticky; left: 0; z-index: 3;
  background: #fafbfc;
}

/* Day headers */
.rk-head {
  background: #fafbfc;
  border-bottom: 2px solid #e2e8f0;
  border-right: 1px solid #f1f5f9;
  padding: 8px 6px;
  text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  position: sticky; top: 0; z-index: 2;
  user-select: none;
  transition: background .12s;
  cursor: pointer;
}
.rk-head:hover { background: #f5f3ff; }
.rk-head-today { background: linear-gradient(180deg, #f5f3ff, #ede9fe) !important; border-bottom-color: #7c3aed !important; }
.rk-head-weekend { background: linear-gradient(180deg, #fef2f2, #fff) !important; }
.rk-day-name { font-size: 9.5px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .06em; }
.rk-day-num { font-size: 17px; font-weight: 800; color: #1e293b; line-height: 1; }
.rk-day-today {
  background: #7c3aed; color: #fff;
  width: 26px; height: 26px; border-radius: 50%;
  display: inline-grid; place-items: center;
  font-size: 12.5px;
  box-shadow: 0 4px 10px rgba(124,58,237,.35);
}

/* Row labels */
.rk-row-label {
  background: #fafbfc;
  border-right: 1.5px solid #e2e8f0;
  border-bottom: 1px solid #f1f5f9;
  padding: 12px 8px;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 5px;
  position: sticky; left: 0; z-index: 1;
  background: color-mix(in srgb, var(--cat-bg) 40%, #fafbfc);
  transition: background .15s;
}
.rk-row-label:hover { background: var(--cat-bg); }
.rk-row-icon { color: var(--cat-color); display: flex; align-items: center; }
.rk-row-icon svg { stroke: var(--cat-color) !important; }
.rk-row-name { font-size: 9px; font-weight: 800; color: var(--cat-color); text-transform: uppercase; letter-spacing: .1em; text-align: center; }

/* Cells */
.rk-cell {
  border-right: 1px solid #f1f5f9;
  border-bottom: 1px solid #f1f5f9;
  min-height: 52px;
  padding: 4px 3px;
  position: relative;
  cursor: crosshair;
  user-select: none;
  display: flex;
  flex-direction: column;
  gap: 2px;
  transition: background .08s;
  overflow: visible;
}
.rk-cell:hover { background: rgba(124,58,237,.04); }
.rk-cell-today { background: rgba(124,58,237,.05) !important; }
.rk-cell-weekend { background: rgba(239,68,68,.02) !important; }
.rk-cell.rk-selecting {
  background: rgba(124,58,237,.15) !important;
  box-shadow: inset 0 0 0 2px #7c3aed;
}

/* ─── GANTT BARS ─── */
.rk-bar {
  display: block;
  background: var(--bar-bg);
  border: 1px solid var(--bar-border);
  border-left: 3px solid var(--bar-color);
  border-radius: 0 6px 6px 0;
  padding: 3px 7px;
  font-size: 11px; font-weight: 600;
  color: color-mix(in srgb, var(--bar-color) 80%, #000);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
  position: relative;
  z-index: 2;
  box-shadow: 0 1px 3px rgba(15,23,42,.08);
  transition: filter .12s, box-shadow .12s;
  /* Extend across columns */
  position: absolute;
  left: 3px;
  right: -1px; /* will be overridden by inline style */
  top: 4px;
}
.rk-bar:hover {
  filter: brightness(1.04);
  box-shadow: 0 3px 10px rgba(15,23,42,.15);
  z-index: 5;
}

/* Span across multiple cells: override positioning with inline */
[style*="grid-column"] .rk-bar {
  position: relative !important;
}

/* Use flex+absolute combo for span */
.rk-cell { position: relative; }

/* Bar text */
.rk-bar-text { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* ─── Scrollbar ─── */
.rk-grid::-webkit-scrollbar { height: 6px; }
.rk-grid::-webkit-scrollbar-track { background: #f1f5f9; }
.rk-grid::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 3px; }

/* ─── Responsive ─── */
@media (max-width: 1200px) {
  .rk-hotel-title { font-size: 16px; }
  .rk-day-num { font-size: 15px; }
  .rk-cell { min-height: 44px; }
}
@media (max-width: 900px) {
  .rk-toolbar { padding: 10px 14px; }
  .rk-hotel-title { font-size: 14px; }
  .rk-period { display: none; }
}

/* ═══════════════════════════════════════════════════════════════
   FIX: desplegable Colaboradores no se corta en pantallas 14"
   ═══════════════════════════════════════════════════════════════ */

/* El contenedor padre del modal no debe cortar el panel */
#tt-f-colab-chips {
  position: relative !important;
  overflow: visible !important;
}

/* El panel desplegable: usar position fixed para salir del modal */
#tt-colab-panel {
  position: fixed !important;
  z-index: 99999 !important;
  background: #fff !important;
  border: 1.5px solid #e2e8f0 !important;
  border-radius: 12px !important;
  box-shadow: 0 12px 40px -10px rgba(15,23,42,.20), 0 4px 12px rgba(15,23,42,.06) !important;
  max-height: min(260px, 50vh) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  padding: 6px !important;
  min-width: 280px !important;
  width: auto !important;
}

/* Scrollbar del panel */
#tt-colab-panel::-webkit-scrollbar { width: 6px; }
#tt-colab-panel::-webkit-scrollbar-track { background: #f1f5f9; border-radius: 3px; }
#tt-colab-panel::-webkit-scrollbar-thumb { background: #c4b5fd; border-radius: 3px; }

/* Cada fila de usuario */
#tt-colab-panel button {
  width: 100% !important;
  display: flex !important;
  align-items: center !important;
  gap: 9px !important;
  padding: 9px 12px !important;
  border: none !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  font-family: inherit !important;
  text-align: left !important;
  transition: background .1s !important;
  margin-bottom: 1px !important;
  min-height: 40px !important;
  box-sizing: border-box !important;
}
#tt-colab-panel button:hover { background: #f5f3ff !important; }

/* ═══════════════════════════════════════════════════════════════
   TPV ZANZIBAR · Desbloqueado para Joel
   body.tpv-joel-unlocked activa el acceso
   ═══════════════════════════════════════════════════════════════ */
body.tpv-joel-unlocked #page-tpv .locked-page-overlay {
  display: none !important;
}
body.tpv-joel-unlocked #page-tpv .locked-blur-wrap {
  pointer-events: auto !important;
  user-select: auto !important;
  opacity: 1 !important;
  filter: none !important;
}
body.tpv-joel-unlocked #nav-btn-tpv {
  opacity: 1 !important;
  cursor: pointer !important;
}
﻿
/* ═══════════════════════════════════════════════════════════════
   TPV ZANZIBAR FULL · Módulo completo
   ═══════════════════════════════════════════════════════════════ */

/* ── TPV Sub-navegación ── */
.tpv-subnav {
  display: flex; gap: 4px; padding: 0 20px 14px;
  border-bottom: 1px solid #f1f5f9; flex-wrap: wrap;
}
.tpv-subnav-btn {
  padding: 7px 16px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 10px; font-size: 12.5px; font-weight: 700; color: #64748b;
  cursor: pointer; font-family: inherit; display: flex; align-items: center;
  gap: 6px; transition: all .12s;
}
.tpv-subnav-btn:hover { border-color: #7c3aed; color: #7c3aed; background: #faf5ff; }
.tpv-subnav-btn.active { background: #7c3aed; border-color: #7c3aed; color: #fff; }
.tpv-subnav-btn .tpv-badge {
  background: rgba(255,255,255,.3); color: #fff; font-size: 10px; font-weight: 800;
  padding: 1px 6px; border-radius: 999px; min-width: 18px; text-align: center;
}
.tpv-subnav-btn:not(.active) .tpv-badge { background: #ede9fe; color: #5b21b6; }

/* ── Vistas TPV ── */
.tpv-view { display: none; }
.tpv-view.active { display: block; }

/* ── Carrito mejorado ── */
.tpv-cart-actions {
  display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 10px 14px;
  border-top: 1px solid #f1f5f9;
}
.tpv-cart-action {
  padding: 8px 10px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 10px; font-size: 11.5px; font-weight: 700; color: #475569;
  cursor: pointer; font-family: inherit; display: flex; align-items: center;
  justify-content: center; gap: 5px; transition: all .12s; white-space: nowrap;
}
.tpv-cart-action:hover { background: #f8fafc; border-color: #cbd5e1; }
.tpv-cart-action.orange { border-color: #fed7aa; color: #c2410c; }
.tpv-cart-action.orange:hover { background: #fff7ed; }
.tpv-cart-action.blue { border-color: #bfdbfe; color: #1d4ed8; }
.tpv-cart-action.blue:hover { background: #eff6ff; }

/* ── Cliente selector en carrito ── */
.tpv-cart-customer {
  margin: 8px 14px; padding: 10px 12px; border: 1.5px dashed #e2e8f0;
  border-radius: 10px; cursor: pointer; display: flex; align-items: center;
  gap: 8px; font-size: 12.5px; color: #64748b; font-weight: 600; transition: all .12s;
}
.tpv-cart-customer:hover { border-color: #7c3aed; color: #7c3aed; background: #faf5ff; }
.tpv-cart-customer.has-customer { border-style: solid; border-color: #c4b5fd; color: #5b21b6; background: #faf5ff; }

/* ── Descuento global ── */
.tpv-cart-discount {
  margin: 0 14px 8px; padding: 8px 12px; border-radius: 10px;
  background: #fff7ed; border: 1px solid #fed7aa; display: flex; align-items: center;
  gap: 8px; font-size: 12px; font-weight: 700; color: #c2410c; display: none;
}

/* ── MODAL BASE ── */
.tpv-modal-overlay {
  position: fixed; inset: 0; z-index: 9998;
  background: rgba(15,23,42,.5); backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center; padding: 16px;
}
.tpv-modal {
  background: #fff; border-radius: 20px; width: 100%; max-width: 520px;
  box-shadow: 0 24px 60px rgba(15,23,42,.2), 0 4px 16px rgba(15,23,42,.08);
  max-height: 92vh; overflow-y: auto; display: flex; flex-direction: column;
}
.tpv-modal-lg { max-width: 680px; }
.tpv-modal-xl { max-width: 820px; }
.tpv-modal-head {
  padding: 20px 24px 0; display: flex; align-items: center; gap: 12px;
  position: sticky; top: 0; background: #fff; z-index: 1; padding-bottom: 16px;
  border-bottom: 1px solid #f1f5f9;
}
.tpv-modal-ico {
  width: 44px; height: 44px; border-radius: 13px; display: flex;
  align-items: center; justify-content: center; flex-shrink: 0;
}
.tpv-modal-ico.green { background: linear-gradient(135deg,#d1fae5,#6ee7b7); }
.tpv-modal-ico.purple { background: linear-gradient(135deg,#ede9fe,#c4b5fd); }
.tpv-modal-ico.orange { background: linear-gradient(135deg,#ffedd5,#fed7aa); }
.tpv-modal-ico.red { background: linear-gradient(135deg,#fee2e2,#fca5a5); }
.tpv-modal-ico.blue { background: linear-gradient(135deg,#dbeafe,#93c5fd); }
.tpv-modal-title { font-size: 18px; font-weight: 800; color: #0f172a; letter-spacing: -.02em; }
.tpv-modal-sub { font-size: 12.5px; color: #64748b; margin-top: 2px; font-weight: 500; }
.tpv-modal-close {
  margin-left: auto; width: 32px; height: 32px; border: none; background: #f1f5f9;
  border-radius: 9px; cursor: pointer; display: flex; align-items: center;
  justify-content: center; color: #64748b; flex-shrink: 0; transition: background .12s;
}
.tpv-modal-close:hover { background: #e2e8f0; }
.tpv-modal-body { padding: 20px 24px; flex: 1; }
.tpv-modal-foot {
  padding: 16px 24px; border-top: 1px solid #f1f5f9; display: flex; gap: 10px;
  position: sticky; bottom: 0; background: #fff;
}
.tpv-modal-foot .btn-secondary {
  flex: 1; padding: 13px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 12px; font-size: 13.5px; font-weight: 700; color: #64748b;
  cursor: pointer; font-family: inherit; transition: all .12s;
}
.tpv-modal-foot .btn-secondary:hover { background: #f8fafc; }
.tpv-modal-foot .btn-primary {
  flex: 2; padding: 13px; border: none; border-radius: 12px;
  font-size: 14px; font-weight: 800; cursor: pointer; font-family: inherit;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  transition: opacity .12s; box-shadow: 0 4px 14px rgba(0,0,0,.15);
}
.tpv-modal-foot .btn-primary.green { background: linear-gradient(135deg,#059669,#10b981); color: #fff; }
.tpv-modal-foot .btn-primary.purple { background: linear-gradient(135deg,#5b21b6,#7c3aed); color: #fff; }
.tpv-modal-foot .btn-primary.orange { background: linear-gradient(135deg,#c2410c,#f97316); color: #fff; }
.tpv-modal-foot .btn-primary:hover { opacity: .9; }

/* ── PAGO modal ── */
.tpv-pay-total {
  background: linear-gradient(135deg,#0f172a,#1e293b); color: #fff;
  border-radius: 16px; padding: 20px 24px; margin-bottom: 20px; text-align: center;
}
.tpv-pay-total-label { font-size: 12px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .1em; }
.tpv-pay-total-amount { font-size: 42px; font-weight: 900; letter-spacing: -.04em; margin: 4px 0; }
.tpv-pay-total-items { font-size: 12.5px; color: #64748b; margin-top: 2px; color: #94a3b8; }

.tpv-pay-methods { display: grid; grid-template-columns: repeat(3,1fr); gap: 8px; margin-bottom: 18px; }
.tpv-pay-method {
  padding: 14px 8px; border: 2px solid #e2e8f0; background: #fff;
  border-radius: 14px; cursor: pointer; text-align: center; font-family: inherit;
  transition: all .15s; display: flex; flex-direction: column; align-items: center; gap: 6px;
}
.tpv-pay-method:hover { border-color: #7c3aed; background: #faf5ff; }
.tpv-pay-method.selected { border-color: #7c3aed; background: #ede9fe; }
.tpv-pay-method .pm-icon { font-size: 22px; }
.tpv-pay-method .pm-label { font-size: 11.5px; font-weight: 700; color: #374151; }
.tpv-pay-method.selected .pm-label { color: #5b21b6; }

.tpv-pay-quick { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 16px; }
.tpv-pay-quick-btn {
  padding: 8px 14px; border: 1.5px solid #e2e8f0; background: #f8fafc;
  border-radius: 9px; font-size: 13px; font-weight: 700; color: #374151;
  cursor: pointer; font-family: inherit; transition: all .12s;
}
.tpv-pay-quick-btn:hover { border-color: #7c3aed; background: #ede9fe; color: #5b21b6; }

.tpv-pay-input-group { margin-bottom: 14px; }
.tpv-pay-input-label { font-size: 11.5px; font-weight: 700; color: #374151; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 6px; display: block; }
.tpv-pay-input {
  width: 100%; box-sizing: border-box; padding: 13px 16px; border: 2px solid #e2e8f0;
  border-radius: 12px; font-size: 20px; font-weight: 700; color: #0f172a;
  font-family: inherit; outline: none; text-align: right; background: #fafafa;
  transition: border-color .15s, box-shadow .15s;
}
.tpv-pay-input:focus { border-color: #7c3aed; box-shadow: 0 0 0 3px rgba(124,58,237,.12); background: #fff; }
.tpv-pay-change {
  background: linear-gradient(135deg,#d1fae5,#ecfdf5); border-radius: 12px;
  padding: 14px 20px; display: flex; justify-content: space-between; align-items: center;
  border: 1px solid #6ee7b7; margin-bottom: 16px;
}
.tpv-pay-change-label { font-size: 13px; font-weight: 700; color: #065f46; }
.tpv-pay-change-amount { font-size: 24px; font-weight: 900; color: #059669; }

/* ── Tickets aparcados ── */
.tpv-parked-list { display: flex; flex-direction: column; gap: 8px; }
.tpv-parked-item {
  padding: 14px 16px; border: 1.5px solid #e2e8f0; border-radius: 14px;
  display: flex; align-items: center; gap: 12px; cursor: pointer;
  background: #fff; transition: all .12s;
}
.tpv-parked-item:hover { border-color: #f59e0b; background: #fffbeb; }
.tpv-parked-num {
  width: 36px; height: 36px; border-radius: 10px; background: #fff7ed;
  color: #c2410c; font-size: 12px; font-weight: 800; display: flex;
  align-items: center; justify-content: center; flex-shrink: 0;
}
.tpv-parked-info { flex: 1; min-width: 0; }
.tpv-parked-title { font-size: 13.5px; font-weight: 700; color: #0f172a; }
.tpv-parked-meta { font-size: 11.5px; color: #64748b; margin-top: 2px; }
.tpv-parked-total { font-size: 16px; font-weight: 800; color: #0f172a; }
.tpv-parked-del {
  width: 28px; height: 28px; border: none; background: #fee2e2; border-radius: 8px;
  color: #ef4444; cursor: pointer; display: flex; align-items: center; justify-content: center;
  transition: background .12s;
}
.tpv-parked-del:hover { background: #fca5a5; }

/* ── Historial de tickets ── */
.tpv-history-filters {
  display: flex; gap: 8px; margin-bottom: 16px; flex-wrap: wrap; align-items: center;
}
.tpv-history-filter {
  padding: 7px 14px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 9px; font-size: 12px; font-weight: 700; color: #64748b;
  cursor: pointer; font-family: inherit; transition: all .12s;
}
.tpv-history-filter.active { background: #ede9fe; border-color: #c4b5fd; color: #5b21b6; }
.tpv-ticket-row {
  display: flex; align-items: center; gap: 12px; padding: 12px 16px;
  border: 1px solid #f1f5f9; border-radius: 12px; margin-bottom: 6px;
  background: #fff; transition: background .12s;
}
.tpv-ticket-row:hover { background: #fafafa; }
.tpv-ticket-num { font-size: 11px; font-weight: 800; color: #7c3aed; min-width: 48px; }
.tpv-ticket-info { flex: 1; }
.tpv-ticket-items { font-size: 12px; color: #64748b; }
.tpv-ticket-method {
  font-size: 11px; font-weight: 700; padding: 3px 9px; border-radius: 999px;
}
.tpv-ticket-method.efectivo { background: #d1fae5; color: #065f46; }
.tpv-ticket-method.tarjeta { background: #dbeafe; color: #1e40af; }
.tpv-ticket-method.bizum { background: #ede9fe; color: #5b21b6; }
.tpv-ticket-method.transferencia { background: #fef3c7; color: #92400e; }
.tpv-ticket-method.mixto { background: #f3f4f6; color: #374151; }
.tpv-ticket-total { font-size: 15px; font-weight: 800; color: #0f172a; min-width: 70px; text-align: right; }
.tpv-ticket-actions { display: flex; gap: 4px; }
.tpv-ticket-action {
  padding: 5px 10px; border: 1px solid #e2e8f0; background: #f8fafc;
  border-radius: 7px; font-size: 11px; font-weight: 700; color: #475569;
  cursor: pointer; font-family: inherit; transition: all .1s;
}
.tpv-ticket-action:hover { background: #e2e8f0; }
.tpv-ticket-status {
  font-size: 10px; font-weight: 800; padding: 3px 8px; border-radius: 6px;
  text-transform: uppercase; letter-spacing: .04em;
}
.tpv-ticket-status.pagado { background: #d1fae5; color: #065f46; }
.tpv-ticket-status.anulado { background: #fee2e2; color: #991b1b; }
.tpv-ticket-status.devuelto { background: #fef3c7; color: #92400e; }

/* ── Informes mini ── */
.tpv-report-cards {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px,1fr)); gap: 12px; margin-bottom: 20px;
}
.tpv-report-card {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 16px;
  padding: 18px; box-shadow: 0 2px 8px rgba(15,23,42,.04);
}
.tpv-report-card-label { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.tpv-report-card-val { font-size: 26px; font-weight: 900; color: #0f172a; letter-spacing: -.03em; }
.tpv-report-card-sub { font-size: 12px; color: #64748b; margin-top: 4px; }
.tpv-report-card.green .tpv-report-card-val { color: #059669; }
.tpv-report-card.purple .tpv-report-card-val { color: #7c3aed; }
.tpv-report-card.orange .tpv-report-card-val { color: #c2410c; }

.tpv-report-methods { display: flex; flex-direction: column; gap: 8px; }
.tpv-report-method-row {
  display: flex; align-items: center; gap: 10px; padding: 10px 14px;
  background: #f8fafc; border-radius: 10px;
}
.tpv-report-method-label { flex: 1; font-size: 13px; font-weight: 600; color: #374151; }
.tpv-report-method-bar { flex: 2; height: 6px; background: #e2e8f0; border-radius: 3px; overflow: hidden; }
.tpv-report-method-fill { height: 100%; border-radius: 3px; background: linear-gradient(90deg,#7c3aed,#a855f7); }
.tpv-report-method-val { font-size: 13px; font-weight: 800; color: #0f172a; min-width: 70px; text-align: right; }

/* ── Mesas ── */
.tpv-tables-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px,1fr)); gap: 12px; padding: 4px 0; }
.tpv-table-card {
  aspect-ratio: 1; border-radius: 16px; border: 2px solid #e2e8f0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  cursor: pointer; gap: 6px; transition: all .15s; font-family: inherit;
  background: #fff; position: relative;
}
.tpv-table-card:hover { transform: translateY(-2px); box-shadow: 0 8px 20px rgba(15,23,42,.1); }
.tpv-table-card.libre { border-color: #6ee7b7; background: #f0fdf4; }
.tpv-table-card.ocupada { border-color: #fca5a5; background: #fef2f2; }
.tpv-table-card.pendiente { border-color: #fcd34d; background: #fffbeb; }
.tpv-table-card.reservada { border-color: #93c5fd; background: #eff6ff; }
.tpv-table-num { font-size: 22px; font-weight: 900; color: #0f172a; }
.tpv-table-status {
  font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em;
  padding: 2px 8px; border-radius: 999px;
}
.libre .tpv-table-status { background: #d1fae5; color: #065f46; }
.ocupada .tpv-table-status { background: #fee2e2; color: #991b1b; }
.pendiente .tpv-table-status { background: #fef3c7; color: #92400e; }
.reservada .tpv-table-status { background: #dbeafe; color: #1e40af; }
.tpv-table-total { font-size: 11px; font-weight: 700; color: #64748b; }
.tpv-table-time { font-size: 10px; color: #94a3b8; }

/* ── Movimientos de caja ── */
.tpv-move-row {
  display: flex; align-items: center; gap: 10px; padding: 10px 14px;
  border-radius: 10px; font-size: 13px;
}
.tpv-move-row:nth-child(even) { background: #f8fafc; }
.tpv-move-ico { width: 28px; height: 28px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0; }
.tpv-move-ico.entrada { background: #d1fae5; }
.tpv-move-ico.salida { background: #fee2e2; }
.tpv-move-desc { flex: 1; font-weight: 600; color: #374151; }
.tpv-move-time { font-size: 11px; color: #94a3b8; }
.tpv-move-amount { font-weight: 800; }
.tpv-move-amount.entrada { color: #059669; }
.tpv-move-amount.salida { color: #ef4444; }

/* ── Teclado numérico ── */
.tpv-numpad { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.tpv-numpad-btn {
  padding: 16px; border: 1.5px solid #e2e8f0; background: #fff; border-radius: 12px;
  font-size: 18px; font-weight: 700; color: #0f172a; cursor: pointer; font-family: inherit;
  transition: all .1s; display: flex; align-items: center; justify-content: center;
}
.tpv-numpad-btn:hover { background: #f1f5f9; border-color: #cbd5e1; }
.tpv-numpad-btn.backspace { color: #ef4444; }
.tpv-numpad-btn.ok { background: linear-gradient(135deg,#059669,#10b981); color: #fff; border-color: transparent; grid-column: span 3; }

/* ═══════════════════════════════════════════════════════════════
   REPUTACIÓN ACTIVA · Closed loop reputation management
   ═══════════════════════════════════════════════════════════════ */

/* ── Shell ── */
.rep-shell { padding: 0 20px 32px; max-width: 100%; }

/* ── Header ── */
.rep-header {
  display: flex; align-items: flex-start; justify-content: space-between;
  flex-wrap: wrap; gap: 16px; padding: 20px 0 18px;
  border-bottom: 1px solid #f1f5f9; margin-bottom: 20px;
}
.rep-title { font-size: 22px; font-weight: 900; color: #0f172a; letter-spacing: -.03em; margin: 0 0 6px; }
.rep-subtitle { font-size: 13px; color: #64748b; margin: 0; font-weight: 500; }
.rep-live-badge {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 4px 12px; background: #f0fdf4; border: 1px solid #bbf7d0;
  border-radius: 999px; font-size: 11.5px; font-weight: 700; color: #15803d; margin-bottom: 6px;
}
.rep-live-dot {
  width: 7px; height: 7px; border-radius: 50%; background: #16a34a;
  animation: repPulse 1.8s infinite;
}
@keyframes repPulse {
  0%   { box-shadow: 0 0 0 0 rgba(22,163,74,.55); }
  70%  { box-shadow: 0 0 0 7px rgba(22,163,74,0); }
  100% { box-shadow: 0 0 0 0 rgba(22,163,74,0); }
}
.rep-header-right { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; }
.rep-select {
  padding: 8px 14px; border: 1.5px solid #e2e8f0; border-radius: 10px;
  font-size: 13px; font-weight: 600; color: #374151; background: #fff;
  font-family: inherit; outline: none; cursor: pointer;
}
.rep-platform-tabs { display: flex; gap: 4px; }
.rep-ptab {
  padding: 6px 14px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 8px; font-size: 12px; font-weight: 700; color: #64748b;
  cursor: pointer; font-family: inherit; transition: all .12s;
}
.rep-ptab:hover { border-color: #7c3aed; color: #7c3aed; }
.rep-ptab.active { background: #7c3aed; border-color: #7c3aed; color: #fff; }

/* ── KPIs ── */
.rep-kpis {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(180px,1fr));
  gap: 12px; margin-bottom: 22px;
}
.rep-kpi {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 18px;
  box-shadow: 0 2px 8px rgba(15,23,42,.04); position: relative; overflow: hidden;
}
.rep-kpi::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: var(--kc,#7c3aed);
}
.rep-kpi-label { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.rep-kpi-val { font-size: 28px; font-weight: 900; color: #0f172a; letter-spacing: -.04em; }
.rep-kpi-sub { font-size: 12px; color: #64748b; margin-top: 4px; }
.rep-kpi-trend { font-size: 11.5px; font-weight: 700; margin-top: 6px; }
.rep-kpi-trend.up { color: #16a34a; }
.rep-kpi-trend.down { color: #ef4444; }

/* ── Main layout ── */
.rep-main {
  display: grid; grid-template-columns: 1fr 320px; gap: 18px; align-items: start;
}

/* ── Feed ── */
.rep-col-head {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 14px; flex-wrap: wrap; gap: 8px;
}
.rep-col-title { font-size: 14px; font-weight: 800; color: #0f172a; }
.rep-sentiment-filters { display: flex; gap: 4px; }
.rep-sf {
  padding: 5px 12px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 7px; font-size: 11.5px; font-weight: 700; color: #64748b;
  cursor: pointer; font-family: inherit; transition: all .12s;
}
.rep-sf:hover { border-color: #7c3aed; color: #7c3aed; }
.rep-sf.active { background: #ede9fe; border-color: #7c3aed; color: #5b21b6; }
.rep-sf.negative.active { background: #fee2e2; border-color: #ef4444; color: #dc2626; }

.rep-review-card {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 18px;
  margin-bottom: 10px; box-shadow: 0 2px 8px rgba(15,23,42,.04); transition: all .15s;
  position: relative;
}
.rep-review-card:hover { box-shadow: 0 6px 20px rgba(15,23,42,.08); border-color: #cbd5e1; }
.rep-review-card.negative {
  border-left: 4px solid #ef4444; background: linear-gradient(135deg, #fff 80%, #fef2f2);
}
.rep-review-card.positive {
  border-left: 4px solid #10b981; background: linear-gradient(135deg, #fff 80%, #f0fdf4);
}
.rep-review-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.rep-review-avatar {
  width: 38px; height: 38px; border-radius: 12px; display: flex; align-items: center;
  justify-content: center; font-size: 14px; font-weight: 800; color: #fff; flex-shrink: 0;
}
.rep-review-name { font-size: 13.5px; font-weight: 700; color: #0f172a; }
.rep-review-meta { font-size: 11.5px; color: #64748b; margin-top: 1px; }
.rep-review-platform {
  margin-left: auto; font-size: 10px; font-weight: 800; padding: 3px 9px;
  border-radius: 6px; text-transform: uppercase; letter-spacing: .06em; flex-shrink: 0;
}
.rep-review-platform.google { background: #fff3cd; color: #92400e; }
.rep-review-platform.booking { background: #dbeafe; color: #1e40af; }
.rep-review-platform.tripadvisor { background: #d1fae5; color: #065f46; }
.rep-stars { display: flex; gap: 2px; margin-bottom: 8px; }
.rep-star { color: #f59e0b; font-size: 14px; }
.rep-star.empty { color: #e2e8f0; }
.rep-review-text { font-size: 13px; color: #374151; line-height: 1.6; }
.rep-review-foot { margin-top: 12px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rep-review-sede { font-size: 11px; font-weight: 600; color: #7c3aed; background: #ede9fe; padding: 3px 9px; border-radius: 999px; }
.rep-reply-btn {
  padding: 6px 14px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 8px; font-size: 11.5px; font-weight: 700; color: #475569;
  cursor: pointer; font-family: inherit; transition: all .12s; margin-left: auto;
}
.rep-reply-btn:hover { border-color: #7c3aed; color: #7c3aed; background: #faf5ff; }

/* Auto-action badge on negative cards */
.rep-auto-badge {
  display: flex; align-items: center; gap: 6px; margin-top: 12px; padding: 10px 12px;
  background: #fef9ec; border: 1px solid #fde68a; border-radius: 10px;
  font-size: 11.5px; font-weight: 700; color: #92400e; cursor: pointer;
  transition: background .12s;
}
.rep-auto-badge:hover { background: #fef3c7; }
.rep-auto-badge-ico { font-size: 13px; }

/* ── Right panel cards ── */
.rep-score-card {
  background: linear-gradient(135deg, #0f172a, #1e293b); color: #fff;
  border-radius: 18px; padding: 22px; margin-bottom: 12px; text-align: center;
}
.rep-score-num { font-size: 52px; font-weight: 900; letter-spacing: -.06em; line-height: 1; }
.rep-score-stars { display: flex; justify-content: center; gap: 3px; margin: 8px 0 4px; }
.rep-score-label { font-size: 12px; color: #94a3b8; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; }
.rep-score-breakdown { margin-top: 14px; display: flex; flex-direction: column; gap: 5px; }
.rep-score-bar-row { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #94a3b8; }
.rep-score-bar-track { flex: 1; height: 4px; background: rgba(255,255,255,.1); border-radius: 2px; overflow: hidden; }
.rep-score-bar-fill { height: 100%; background: #f59e0b; border-radius: 2px; transition: width .6s cubic-bezier(.4,0,.2,1); }

.rep-auto-card {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 16px;
  margin-bottom: 12px; box-shadow: 0 2px 8px rgba(15,23,42,.04);
}
.rep-auto-head {
  display: flex; align-items: center; gap: 8px; margin-bottom: 14px;
  font-size: 13px; font-weight: 800; color: #0f172a;
}
.rep-auto-ic {
  width: 30px; height: 30px; border-radius: 9px; background: linear-gradient(135deg,#fff7ed,#fed7aa);
  color: #c2410c; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.rep-auto-toggle {
  margin-left: auto; width: 40px; height: 22px; background: #10b981; border-radius: 999px;
  cursor: pointer; position: relative; transition: background .15s;
}
.rep-auto-thumb {
  position: absolute; top: 3px; right: 3px; width: 16px; height: 16px;
  background: #fff; border-radius: 50%; transition: right .15s;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}
.rep-auto-toggle.off { background: #e2e8f0; }
.rep-auto-toggle.off .rep-auto-thumb { right: auto; left: 3px; }
.rep-rule {
  display: flex; align-items: center; gap: 7px; font-size: 12px; color: #374151;
  font-weight: 600; padding: 5px 0;
}
.rep-rule svg { color: #10b981; flex-shrink: 0; }
.rep-rule.inactive svg { color: #e2e8f0; }
.rep-rule.inactive { color: #94a3b8; }

.rep-activity-card {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 16px;
  margin-bottom: 12px; box-shadow: 0 2px 8px rgba(15,23,42,.04);
}
.rep-activity-head { font-size: 12.5px; font-weight: 800; color: #0f172a; margin-bottom: 12px; }
.rep-activity-item {
  display: flex; align-items: flex-start; gap: 8px; padding: 8px 0;
  border-bottom: 1px solid #f8fafc; font-size: 11.5px;
}
.rep-activity-item:last-child { border-bottom: none; }
.rep-activity-dot {
  width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; margin-top: 3px;
}
.rep-activity-dot.inc { background: #ef4444; }
.rep-activity-dot.wa { background: #25d366; }
.rep-activity-dot.rep { background: #7c3aed; }
.rep-activity-text { flex: 1; color: #374151; font-weight: 500; line-height: 1.4; }
.rep-activity-time { font-size: 10.5px; color: #94a3b8; white-space: nowrap; }

.rep-keywords-card {
  background: #fff; border: 1px solid #e2e8f0; border-radius: 16px; padding: 16px;
  box-shadow: 0 2px 8px rgba(15,23,42,.04);
}
.rep-keywords { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.rep-keyword {
  padding: 4px 10px; border-radius: 999px; font-size: 11.5px; font-weight: 700;
  cursor: pointer; transition: all .1s;
}
.rep-keyword.neg { background: #fee2e2; color: #dc2626; border: 1px solid #fca5a5; }
.rep-keyword.pos { background: #d1fae5; color: #065f46; border: 1px solid #6ee7b7; }
.rep-keyword.neu { background: #f1f5f9; color: #475569; border: 1px solid #e2e8f0; }

/* ── Response modal ── */
.rep-resp-modal-overlay {
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(15,23,42,.5); backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center; padding: 16px;
}
.rep-resp-modal {
  background: #fff; border-radius: 20px; width: 100%; max-width: 560px;
  box-shadow: 0 24px 60px rgba(15,23,42,.2); overflow: hidden;
}
.rep-resp-head {
  padding: 20px 24px 16px; border-bottom: 1px solid #f1f5f9;
  display: flex; align-items: center; gap: 12px;
}
.rep-resp-body { padding: 20px 24px; }
.rep-resp-quote {
  background: #f8fafc; border-left: 3px solid #e2e8f0; padding: 12px 14px;
  border-radius: 0 10px 10px 0; font-size: 13px; color: #475569; margin-bottom: 16px;
  line-height: 1.6;
}
.rep-resp-label { font-size: 11px; font-weight: 700; color: #94a3b8; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.rep-resp-textarea {
  width: 100%; box-sizing: border-box; padding: 12px 14px; border: 1.5px solid #e2e8f0;
  border-radius: 12px; font-size: 13.5px; color: #0f172a; font-family: inherit;
  resize: vertical; min-height: 120px; outline: none; line-height: 1.6;
  transition: border-color .15s, box-shadow .15s;
}
.rep-resp-textarea:focus { border-color: #7c3aed; box-shadow: 0 0 0 3px rgba(124,58,237,.12); }
.rep-resp-foot {
  padding: 14px 24px; border-top: 1px solid #f1f5f9; display: flex; gap: 8px;
}
.rep-resp-foot .r-btn-sec {
  flex: 1; padding: 12px; border: 1.5px solid #e2e8f0; background: #fff;
  border-radius: 11px; font-size: 13px; font-weight: 700; color: #64748b;
  cursor: pointer; font-family: inherit;
}
.rep-resp-foot .r-btn-pri {
  flex: 2; padding: 12px; border: none; background: linear-gradient(135deg,#5b21b6,#7c3aed);
  color: #fff; border-radius: 11px; font-size: 13px; font-weight: 800;
  cursor: pointer; font-family: inherit; box-shadow: 0 4px 14px rgba(91,33,182,.3);
}
.rep-resp-actions { display: flex; gap: 6px; margin-bottom: 14px; flex-wrap: wrap; }
.rep-resp-action {
  padding: 6px 12px; border: 1.5px solid #e2e8f0; background: #f8fafc;
  border-radius: 8px; font-size: 11.5px; font-weight: 700; color: #475569;
  cursor: pointer; font-family: inherit; display: flex; align-items: center; gap: 5px;
  transition: all .1s;
}
.rep-resp-action:hover { border-color: #7c3aed; color: #5b21b6; background: #faf5ff; }

/* ── Responsive ── */
@media (max-width: 900px) {
  .rep-main { grid-template-columns: 1fr; }
  .rep-panel-col { order: -1; }
  .rep-score-card { display: flex; align-items: center; gap: 16px; text-align: left; }
  .rep-score-breakdown { display: none; }
}
@media (max-width: 600px) {
  .rep-header { flex-direction: column; }
  .rep-header-right { align-items: flex-start; width: 100%; }
  .rep-kpis { grid-template-columns: 1fr 1fr; }
}

/* ── Ocultar subnav duplicado cuando zpos está montado ── */
#page-tpv:has(.zpos) div.tpv-subnav { display: none !important; }



/* === Barlow GLOBAL (toda la app) - override del bloque monospace === */
:root{
  --font-display:'Barlow','Segoe UI',system-ui,sans-serif!important;
  --font-body:'Barlow','Segoe UI',system-ui,sans-serif!important;
  --font-mono:'Barlow','Segoe UI',system-ui,sans-serif!important;
}
html,body,input,select,textarea,button,h1,h2,h3,h4,h5,h6,p,span,div,a,li,td,th,label{
  font-family:'Barlow','Segoe UI',system-ui,sans-serif!important;
}
.material-icons,.material-symbols-outlined,[class*="fa-"],[class*="icon-"],i.icon{font-family:inherit!important}

/* Ocultar items del menu izquierdo: Incidencias y Garantias */
.nav-item[onclick*="'incidencias'"],
.nav-item[onclick*="'garantias'"],
.nav-item[onclick*="'reservas'"]{display:none!important}


/* Ocultar sub-pestaña Calendario de la pagina Reservas */
#page-reservas .page-tab[onclick*="'calendario'"]{display:none!important}


/* === BARLOW ENFORCED GLOBAL (último bloque, gana la cascada) — toda la app + TPV === */
:root{
  --font-display:'Barlow','Segoe UI',system-ui,sans-serif!important;
  --font-body:'Barlow','Segoe UI',system-ui,sans-serif!important;
  --font-mono:'Barlow','Segoe UI',system-ui,sans-serif!important;
}
html,body,input,select,textarea,button,h1,h2,h3,h4,h5,h6,p,span,div,a,li,td,th,label,table,th,td{
  font-family:'Barlow','Segoe UI',system-ui,sans-serif!important;
}
.zpos,.zpos *{
  font-family:'Barlow','Segoe UI',system-ui,sans-serif!important;
}
.material-icons,.material-symbols-outlined,[class*="fa-"],[class*="icon-"],i.icon{font-family:inherit!important}
