/*
 * VegaHub Global CSS
 * Generado automáticamente.
 * Versión: 1781704997
 *
 * Todas las aplicaciones de /public/hub usan únicamente este archivo.
 */


/* =========================================================
   SOURCE: public/assets/hub/javiervega-global.css
   ========================================================= */
:root{
  --jv-bg:#eef7ff;
  --jv-bg-soft:#f8fbff;
  --jv-card:#ffffff;
  --jv-card-soft:#f7fbff;
  --jv-text:#061126;
  --jv-muted:#5f6f89;
  --jv-main:#005bff;
  --jv-main-2:#1273ff;
  --jv-border:#dbeafe;
  --jv-border-2:#c7ddff;
  --jv-shadow:0 18px 45px rgba(37,99,235,.10);
  --jv-shadow-soft:0 10px 28px rgba(15,23,42,.08);
  --jv-radius:22px;
  --jv-radius-sm:14px;
  --jv-max:1180px;
}

*{box-sizing:border-box}

body.jv-hub{
  margin:0;
  min-height:100vh;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--jv-text);
  background:
    radial-gradient(circle at 80% 8%, rgba(0,91,255,.13), transparent 28%),
    radial-gradient(circle at 10% 15%, rgba(0,174,255,.10), transparent 26%),
    linear-gradient(180deg,#eff8ff 0%,#ffffff 30%,#eef7ff 100%);
}

.jv-shell{
  width:min(var(--jv-max), calc(100% - 32px));
  margin:0 auto;
}

.jv-topbar{
  position:sticky;
  top:0;
  z-index:30;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(199,221,255,.75);
}

.jv-nav{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.jv-brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  color:var(--jv-text);
  text-decoration:none;
  letter-spacing:-.03em;
}

.jv-brand-mark{
  width:32px;
  height:32px;
  border-radius:10px;
  display:grid;
  place-items:center;
  color:#fff;
  font-weight:950;
  background:linear-gradient(135deg,var(--jv-main),#53a2ff);
  box-shadow:0 12px 25px rgba(0,91,255,.24);
}

.jv-nav-links{
  display:flex;
  align-items:center;
  gap:18px;
  font-size:14px;
}

.jv-nav-links a{
  color:#24324a;
  text-decoration:none;
  font-weight:700;
}

.jv-nav-links a:hover{
  color:var(--jv-main);
}

.jv-btn,
a.jv-btn,
button.jv-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:42px;
  padding:11px 17px;
  border-radius:12px;
  border:1px solid transparent;
  background:linear-gradient(135deg,var(--jv-main),var(--jv-main-2));
  color:#fff;
  text-decoration:none;
  font-weight:900;
  box-shadow:0 12px 28px rgba(0,91,255,.22);
  cursor:pointer;
}

.jv-btn.secondary,
a.jv-btn.secondary{
  background:#fff;
  color:var(--jv-main);
  border-color:var(--jv-border-2);
  box-shadow:var(--jv-shadow-soft);
}

.jv-main{
  padding:34px 0 70px;
}

.jv-hero,
.jv-section{
  background:rgba(255,255,255,.78);
  border:1px solid var(--jv-border);
  border-radius:var(--jv-radius);
  box-shadow:var(--jv-shadow);
  padding:34px;
  margin:0 0 26px;
  overflow:hidden;
}

.jv-hero{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  align-items:center;
  gap:34px;
  min-height:330px;
}

.jv-eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 12px;
  border-radius:999px;
  border:1px solid var(--jv-border);
  background:#fff;
  color:var(--jv-main);
  font-size:13px;
  font-weight:900;
}

.jv-title{
  margin:14px 0 12px;
  max-width:780px;
  font-size:clamp(34px,5vw,64px);
  line-height:.94;
  letter-spacing:-.06em;
  font-weight:950;
}

.jv-title .blue,
.jv-blue{
  color:var(--jv-main);
}

.jv-subtitle{
  max-width:720px;
  margin:0 0 20px;
  color:var(--jv-muted);
  font-size:16px;
  line-height:1.7;
}

.jv-section-title{
  margin:0 0 8px;
  font-size:clamp(26px,3vw,40px);
  line-height:1.05;
  letter-spacing:-.045em;
  text-align:center;
}

.jv-section-subtitle{
  margin:0 auto 26px;
  max-width:680px;
  color:var(--jv-muted);
  text-align:center;
  line-height:1.65;
}

.jv-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:18px;
}

.jv-card{
  background:linear-gradient(180deg,#fff 0%,#f8fbff 100%);
  border:1px solid var(--jv-border);
  border-radius:18px;
  padding:20px;
  box-shadow:var(--jv-shadow-soft);
}

.jv-card h3{
  margin:0 0 8px;
  font-size:18px;
  letter-spacing:-.025em;
}

.jv-card p{
  margin:0;
  color:var(--jv-muted);
  line-height:1.55;
  font-size:14px;
}

.jv-kpi{
  background:#fff;
  border:1px solid var(--jv-border);
  border-radius:18px;
  padding:20px;
  box-shadow:var(--jv-shadow-soft);
}

.jv-kpi strong{
  display:block;
  color:var(--jv-main);
  font-size:30px;
  line-height:1;
  margin-bottom:8px;
}

.jv-status{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  background:#eaf3ff;
  color:var(--jv-main);
  font-size:12px;
  font-weight:900;
}

.jv-status.ok{
  background:#e9fbef;
  color:#12813a;
}

.jv-status.warn{
  background:#fff7df;
  color:#9a6400;
}

.jv-form input,
.jv-form select,
.jv-form textarea{
  width:100%;
  min-height:42px;
  border:1px solid var(--jv-border-2);
  background:#fff;
  border-radius:12px;
  padding:11px 12px;
  color:var(--jv-text);
  outline:none;
}

.jv-form input:focus,
.jv-form select:focus,
.jv-form textarea:focus{
  border-color:var(--jv-main);
  box-shadow:0 0 0 4px rgba(0,91,255,.10);
}

.jv-label{
  display:block;
  margin-bottom:7px;
  color:var(--jv-muted);
  font-size:13px;
  font-weight:800;
}

.jv-raw{
  background:#061126;
  color:#dceafe;
  border-radius:16px;
  padding:16px;
  overflow:auto;
  white-space:pre-wrap;
}

@media(max-width:820px){
  .jv-nav{
    align-items:flex-start;
    flex-direction:column;
    padding:12px 0;
  }

  .jv-nav-links{
    flex-wrap:wrap;
    gap:10px 14px;
  }

  .jv-hero{
    grid-template-columns:1fr;
    padding:24px;
  }

  .jv-section{
    padding:24px;
  }
}

.jv-nav-user{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--jv-border);
  color:var(--jv-text);
  font-weight:800;
}

.jv-user-avatar{
  width:28px;
  height:28px;
  border-radius:999px;
  display:inline-grid;
  place-items:center;
  background:linear-gradient(135deg,var(--jv-main),#53a2ff);
  color:#fff;
  font-size:12px;
  font-weight:950;
}

.jv-app-disabled{
  opacity:.45;
  filter:grayscale(.4);
  pointer-events:none;
}

.jv-danger{
  color:#b42318;
}

.jv-small{
  font-size:13px;
  color:var(--jv-muted);
}

.jv-nav-user{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--jv-border);
  color:var(--jv-text);
  font-weight:800;
}

.jv-user-avatar{
  width:28px;
  height:28px;
  border-radius:999px;
  display:inline-grid;
  place-items:center;
  background:linear-gradient(135deg,var(--jv-main),#53a2ff);
  color:#fff;
  font-size:12px;
  font-weight:950;
}

.jv-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid var(--jv-border);
  border-radius:16px;
  background:#fff;
}

.jv-table th,
.jv-table td{
  padding:13px 14px;
  border-bottom:1px solid var(--jv-border);
  text-align:left;
  font-size:14px;
}

.jv-table th{
  color:var(--jv-muted);
  font-weight:900;
  background:#f8fbff;
}

.jv-table tr:last-child td{
  border-bottom:0;
}

.jv-small{
  font-size:13px;
  color:var(--jv-muted);
}


/* =========================================================
   SOURCE: public/assets/hub/vegahub-components.css
   ========================================================= */
.jv-nav-user{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid var(--jv-border);
  color:var(--jv-text);
  font-weight:800;
}

.jv-user-avatar{
  width:28px;
  height:28px;
  border-radius:999px;
  display:inline-grid;
  place-items:center;
  background:linear-gradient(135deg,var(--jv-main),#53a2ff);
  color:#fff;
  font-size:12px;
  font-weight:950;
}

.jv-app-disabled{
  opacity:.45;
  filter:grayscale(.4);
  pointer-events:none;
}

.jv-danger{
  color:#b42318;
}

.jv-small{
  font-size:13px;
  color:var(--jv-muted);
}

.jv-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
  overflow:hidden;
  border:1px solid var(--jv-border);
  border-radius:16px;
  background:#fff;
}

.jv-table th,
.jv-table td{
  padding:13px 14px;
  border-bottom:1px solid var(--jv-border);
  text-align:left;
  font-size:14px;
}

.jv-table th{
  color:var(--jv-muted);
  font-weight:900;
  background:#f8fbff;
}

.jv-table tr:last-child td{
  border-bottom:0;
}


/* =========================================================
   SOURCE: public/assets/hub/vegahub-shell.css
   ========================================================= */
:root{
  --vh-blue:#2563eb;
  --vh-blue-soft:#eff6ff;
  --vh-dark:#071226;
  --vh-muted:#64748b;
  --vh-border:#dbeafe;
  --vh-bg:#f8fbff;
  --vh-card:#ffffff;
  --vh-shadow:0 18px 55px rgba(15,23,42,.08);
}

body.vh-shell-ready{
  margin:0;
  background:
    radial-gradient(circle at 12% 8%, rgba(37,99,235,.10), transparent 28%),
    linear-gradient(135deg,#f8fbff,#eef7ff);
}

.vh-app-shell{
  min-height:100vh;
}

.vh-topbar{
  position:sticky;
  top:0;
  z-index:2000;
  height:68px;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(148,163,184,.28);
  backdrop-filter:blur(14px);
}

.vh-topbar-inner{
  max-width:1280px;
  margin:0 auto;
  height:68px;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.vh-brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  color:var(--vh-dark);
  text-decoration:none;
  white-space:nowrap;
}

.vh-brand-mark{
  width:38px;
  height:38px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#2563eb,#60a5fa);
  color:white;
  font-weight:900;
}

.vh-menu{
  display:flex;
  align-items:center;
  gap:6px;
  flex:1;
  justify-content:center;
}

.vh-menu a{
  color:#0f172a;
  text-decoration:none;
  font-weight:800;
  font-size:14px;
  padding:10px 12px;
  border-radius:12px;
}

.vh-menu a:hover,
.vh-menu a.active{
  background:var(--vh-blue-soft);
  color:var(--vh-blue);
}

.vh-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.vh-icon-btn,
.vh-user-btn{
  border:1px solid #bfdbfe;
  background:white;
  color:#0f172a;
  border-radius:14px;
  padding:10px 12px;
  font-weight:900;
  cursor:pointer;
}

.vh-user-btn{
  display:flex;
  align-items:center;
  gap:8px;
}

.vh-avatar{
  width:30px;
  height:30px;
  border-radius:999px;
  background:#2563eb;
  color:white;
  display:grid;
  place-items:center;
  font-size:12px;
  font-weight:900;
}

.vh-dropdown{
  position:fixed;
  top:72px;
  right:20px;
  min-width:260px;
  background:white;
  border:1px solid #dbeafe;
  border-radius:18px;
  box-shadow:0 24px 70px rgba(15,23,42,.16);
  padding:10px;
  z-index:3000;
  display:none;
}

.vh-dropdown.open{
  display:block;
}

.vh-dropdown a,
.vh-dropdown button{
  display:block;
  width:100%;
  box-sizing:border-box;
  text-align:left;
  padding:11px 12px;
  border:0;
  background:white;
  border-radius:12px;
  font-weight:800;
  color:#0f172a;
  text-decoration:none;
  cursor:pointer;
}

.vh-dropdown a:hover,
.vh-dropdown button:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-main-offset{
  padding-top:0;
}

.vh-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(7,18,38,.55);
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  z-index:5000;
}

.vh-modal-backdrop.open{
  display:flex;
}

.vh-modal{
  width:min(760px,100%);
  max-height:88vh;
  overflow:auto;
  background:white;
  border-radius:24px;
  border:1px solid #dbeafe;
  box-shadow:0 30px 90px rgba(15,23,42,.28);
}

.vh-modal-head{
  position:sticky;
  top:0;
  background:white;
  border-bottom:1px solid #e2e8f0;
  padding:18px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  z-index:2;
}

.vh-modal-head h2{
  margin:0;
  font-size:22px;
}

.vh-modal-close{
  border:0;
  background:#eff6ff;
  color:#2563eb;
  border-radius:12px;
  padding:9px 12px;
  font-weight:900;
  cursor:pointer;
}

.vh-modal-body{
  padding:22px;
}

.vh-modal-open-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid #bfdbfe;
  background:#2563eb;
  color:white;
  border-radius:14px;
  padding:12px 16px;
  font-weight:900;
  cursor:pointer;
  margin:8px 0 16px;
}

.vh-assist-box{
  margin-top:12px;
  padding:12px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  font-size:14px;
  color:#334155;
}

.vh-assist-error{
  color:#b91c1c;
  font-weight:800;
}

.vh-assist-ok{
  color:#166534;
  font-weight:800;
}

.vh-required-mark{
  color:#dc2626;
  font-weight:900;
}

@media(max-width:960px){
  .vh-topbar{
    height:auto;
  }

  .vh-topbar-inner{
    height:auto;
    align-items:flex-start;
    flex-wrap:wrap;
    padding:14px 16px;
  }

  .vh-menu{
    order:3;
    width:100%;
    overflow:auto;
    justify-content:flex-start;
    padding-bottom:4px;
  }

  .vh-menu a{
    white-space:nowrap;
  }
}

/* VEGAHUB UX 2.5 */
.vh-global-create{
  background:#2563eb;
  color:white;
  border-color:#2563eb;
}

.vh-global-search{
  width:220px;
  max-width:28vw;
  border:1px solid #bfdbfe;
  border-radius:14px;
  padding:10px 12px;
  font-weight:700;
}

.vh-ux-panel-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.vh-ux-create-type{
  border:1px solid #dbeafe;
  background:white;
  border-radius:16px;
  padding:16px;
  text-align:left;
  font-weight:900;
  cursor:pointer;
}

.vh-ux-create-type:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-ux-form{
  display:grid;
  gap:12px;
}

.vh-ux-form label{
  font-weight:900;
  font-size:14px;
}

.vh-ux-form input,
.vh-ux-form select,
.vh-ux-form textarea{
  width:100%;
  box-sizing:border-box;
  padding:12px;
  border:1px solid #cbd5e1;
  border-radius:12px;
}

.vh-ux-result-item{
  display:block;
  padding:12px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  margin-bottom:10px;
  text-decoration:none;
  color:#0f172a;
}

.vh-ux-result-item:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-ux-muted{
  color:#64748b;
  font-size:13px;
}

.vh-ux-notification{
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:14px;
  margin-bottom:10px;
}

.vh-ux-activity{
  border-left:4px solid #2563eb;
  padding:10px 12px;
  background:#f8fafc;
  border-radius:10px;
  margin-bottom:10px;
}

@media(max-width:900px){
  .vh-global-search{
    width:100%;
    max-width:none;
  }

  .vh-ux-panel-grid{
    grid-template-columns:1fr;
  }
}

/* VEGAHUB ROLE UX 2.6 */
.vh-menu{
  gap:4px;
}

.vh-menu a,
.vh-menu button.vh-menu-drop{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#0f172a;
  text-decoration:none;
  font-weight:850;
  font-size:14px;
  padding:10px 12px;
  border-radius:13px;
  border:0;
  background:transparent;
  cursor:pointer;
  white-space:nowrap;
}

.vh-menu a:hover,
.vh-menu a.active,
.vh-menu button.vh-menu-drop:hover,
.vh-menu button.vh-menu-drop.active{
  background:#eff6ff;
  color:#2563eb;
}

.vh-menu-icon{
  font-size:15px;
  line-height:1;
}

.vh-menu-dropdown{
  position:fixed;
  top:72px;
  min-width:220px;
  background:white;
  border:1px solid #dbeafe;
  border-radius:18px;
  box-shadow:0 24px 70px rgba(15,23,42,.16);
  padding:8px;
  z-index:3001;
  display:none;
}

.vh-menu-dropdown.open{
  display:block;
}

.vh-menu-dropdown a{
  display:flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  color:#0f172a;
  padding:11px 12px;
  border-radius:12px;
  font-weight:850;
}

.vh-menu-dropdown a:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-actions{
  flex-shrink:0;
}

.vh-actions .vh-icon-btn{
  min-height:40px;
}

.vh-actions button{
  white-space:nowrap;
}

.vh-actions button[data-vh-activity-hidden="1"]{
  display:none !important;
}

.vh-global-search{
  width:180px;
  max-width:20vw;
}

.vh-form-hidden{
  display:none !important;
}

.vh-modal .vh-form-hidden{
  display:block !important;
}

.vh-modal-body .card,
.vh-modal-body section,
.vh-modal-body form{
  margin:0 !important;
}

.vh-client-clean .permissions-section,
.vh-client-clean #permsBox{
  display:none !important;
}

@media(max-width:1180px){
  .vh-global-search{
    width:140px;
  }

  .vh-menu a,
  .vh-menu button.vh-menu-drop{
    font-size:13px;
    padding:9px 9px;
  }
}

@media(max-width:960px){
  .vh-menu{
    width:100%;
    overflow-x:auto;
    justify-content:flex-start;
  }

  .vh-actions{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
  }

  .vh-global-search{
    width:100%;
    max-width:none;
    order:20;
  }
}

/* VEGAHUB UX/UI 2.7 */
.vh-topbar{
  box-shadow:0 8px 28px rgba(15,23,42,.06);
}

.vh-menu{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.vh-menu-dd-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:0;
  background:transparent;
  color:#0f172a;
  font-weight:900;
  font-size:14px;
  padding:10px 12px;
  border-radius:14px;
  cursor:pointer;
  white-space:nowrap;
}

.vh-menu-dd-btn:hover,
.vh-menu-dd-btn.active{
  background:#eff6ff;
  color:#2563eb;
}

.vh-menu-dd-icon{
  font-size:14px;
  opacity:.9;
}

.vh-dd-panel{
  position:fixed;
  min-width:250px;
  max-width:340px;
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:20px;
  box-shadow:0 28px 90px rgba(15,23,42,.18);
  padding:10px;
  z-index:7000;
  display:none;
}

.vh-dd-panel.open{
  display:block;
}

.vh-dd-panel a,
.vh-dd-panel button{
  width:100%;
  display:flex;
  align-items:flex-start;
  gap:10px;
  border:0;
  background:white;
  color:#0f172a;
  text-decoration:none;
  border-radius:14px;
  padding:12px;
  cursor:pointer;
  text-align:left;
  box-sizing:border-box;
}

.vh-dd-panel a:hover,
.vh-dd-panel button:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-dd-title{
  display:block;
  font-weight:900;
  font-size:14px;
}

.vh-dd-desc{
  display:block;
  color:#64748b;
  font-size:12px;
  margin-top:2px;
  line-height:1.35;
}

.vh-actions{
  display:flex;
  align-items:center;
  gap:8px;
}

.vh-actions[data-ux25="1"] .vh-icon-btn,
.vh-actions[data-ux25="1"] .vh-user-btn{
  min-height:42px;
}

.vh-global-search{
  min-height:42px;
  width:190px;
  max-width:22vw;
  border:1px solid #bfdbfe;
  background:#fff;
  color:#0f172a;
  border-radius:16px;
  padding:0 14px;
  font-weight:800;
}

.vh-global-search:focus{
  outline:none;
  border-color:#2563eb;
  box-shadow:0 0 0 4px rgba(37,99,235,.14);
}

.vh-icon-btn.vh-primary{
  background:#2563eb;
  border-color:#2563eb;
  color:#fff;
}

.vh-modal-backdrop{
  background:rgba(15,23,42,.62) !important;
  backdrop-filter:blur(5px);
}

.vh-modal{
  background:#fff !important;
  color:#071226 !important;
  border:1px solid #dbeafe;
  box-shadow:0 34px 120px rgba(15,23,42,.35);
}

.vh-modal *{
  color:inherit;
}

.vh-modal-head{
  background:#fff !important;
  color:#071226 !important;
  border-bottom:1px solid #e2e8f0;
}

.vh-modal-head h2{
  color:#071226 !important;
  font-size:22px;
  letter-spacing:-.02em;
}

.vh-modal-body{
  background:#fff !important;
  color:#071226 !important;
}

.vh-modal-body input,
.vh-modal-body select,
.vh-modal-body textarea{
  color:#071226 !important;
  background:#fff !important;
  border:1px solid #cbd5e1;
}

.vh-modal-body .vh-ux-notification,
.vh-modal-body .vh-ux-result-item,
.vh-modal-body .vh-assist-box{
  color:#071226 !important;
  background:#fff !important;
}

.vh-modal-body .vh-ux-muted,
.vh-modal-body small{
  color:#64748b !important;
}

.vh-modal-close{
  background:#eff6ff !important;
  color:#2563eb !important;
}

.vh-page{
  max-width:1180px;
  margin:0 auto;
  padding:34px 20px 90px;
}

.vh-hero-card{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:30px;
  padding:34px;
  box-shadow:0 24px 80px rgba(15,23,42,.08);
}

.vh-page-title{
  margin:0;
  font-size:42px;
  letter-spacing:-.055em;
  color:#071226;
}

.vh-page-subtitle{
  color:#64748b;
  line-height:1.6;
  max-width:780px;
}

.vh-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.vh-card{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:24px;
  padding:22px;
  box-shadow:0 16px 50px rgba(15,23,42,.06);
}

.vh-card h3{
  margin:0 0 8px;
  color:#071226;
}

.vh-card p{
  color:#64748b;
}

.vh-kpi{
  font-size:34px;
  font-weight:950;
  color:#2563eb;
}

.vh-soft-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}

.vh-soft-table th,
.vh-soft-table td{
  padding:13px 12px;
  border-bottom:1px solid #e2e8f0;
  text-align:left;
}

.vh-soft-table th{
  color:#64748b;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.vh-soft-table button{
  border:1px solid #bfdbfe;
  background:#fff;
  color:#2563eb;
  border-radius:10px;
  padding:7px 10px;
  font-weight:900;
}

.vh-raw-collapsed{
  display:none;
}

.vh-ai-strip{
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:linear-gradient(135deg,#eff6ff,#fff);
  border:1px solid #bfdbfe;
  border-radius:22px;
  padding:18px;
  margin:18px 0;
}

.vh-ai-strip strong{
  color:#071226;
}

.vh-ai-strip p{
  margin:4px 0 0;
  color:#64748b;
}

@media(max-width:1100px){
  .vh-menu{
    order:3;
    width:100%;
    justify-content:flex-start;
    overflow-x:auto;
    padding-bottom:4px;
  }

  .vh-topbar-inner{
    height:auto;
    min-height:68px;
    flex-wrap:wrap;
    padding:12px 16px;
  }

  .vh-global-search{
    width:100%;
    max-width:none;
  }
}

@media(max-width:800px){
  .vh-grid{
    grid-template-columns:1fr;
  }

  .vh-page-title{
    font-size:34px;
  }

  .vh-actions{
    flex-wrap:wrap;
  }

  .vh-dd-panel{
    left:12px !important;
    right:12px !important;
    width:auto;
    max-width:none;
  }
}

/* VEGAHUB UX/UI + BOOKING FIX 2.8 */

.vh-topbar{
  z-index:9000 !important;
}

.vh-menu{
  display:flex !important;
  align-items:center;
  gap:8px;
}

.vh-menu a{
  display:none !important;
}

.vh-menu-dd-btn{
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  min-height:42px;
  border:0;
  background:transparent;
  color:#0f172a;
  font-weight:900;
  font-size:14px;
  padding:10px 12px;
  border-radius:14px;
  cursor:pointer;
  white-space:nowrap;
}

.vh-menu-dd-btn:hover,
.vh-menu-dd-btn.active,
.vh-menu-dd-btn[aria-expanded="true"]{
  background:#eff6ff;
  color:#2563eb;
}

.vh-dd-panel{
  position:fixed !important;
  z-index:12000 !important;
  min-width:270px;
  max-width:360px;
  background:#fff !important;
  color:#071226 !important;
  border:1px solid #dbeafe;
  border-radius:20px;
  box-shadow:0 28px 90px rgba(15,23,42,.22);
  padding:10px;
  display:none;
}

.vh-dd-panel.open{
  display:block !important;
}

.vh-dd-panel a,
.vh-dd-panel button{
  width:100%;
  display:flex;
  align-items:flex-start;
  gap:10px;
  border:0;
  background:#fff;
  color:#071226;
  text-decoration:none;
  border-radius:14px;
  padding:12px;
  cursor:pointer;
  text-align:left;
  box-sizing:border-box;
}

.vh-dd-panel a:hover,
.vh-dd-panel button:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-dd-title{
  display:block;
  font-weight:950;
  font-size:14px;
}

.vh-dd-desc{
  display:block;
  color:#64748b;
  font-size:12px;
  margin-top:3px;
  line-height:1.35;
}

.vh-activity-list{
  display:grid;
  gap:14px;
}

.vh-activity-card{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:22px;
  padding:18px;
  box-shadow:0 14px 42px rgba(15,23,42,.05);
}

.vh-activity-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.vh-activity-type{
  font-weight:950;
  color:#071226;
  font-size:17px;
}

.vh-activity-time{
  color:#64748b;
  font-size:13px;
  white-space:nowrap;
}

.vh-activity-summary{
  margin:10px 0 0;
  color:#334155;
  line-height:1.5;
}

.vh-activity-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.vh-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:6px 10px;
  background:#eff6ff;
  color:#2563eb;
  font-size:12px;
  font-weight:900;
}

.vh-booking-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.vh-booking-card{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:24px;
  padding:22px;
  box-shadow:0 18px 55px rgba(15,23,42,.07);
}

.vh-booking-card h3{
  margin:0 0 8px;
}

.vh-booking-card p{
  color:#64748b;
  line-height:1.5;
}

.vh-booking-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}

.vh-booking-actions a,
.vh-booking-actions button{
  border:1px solid #bfdbfe;
  background:#fff;
  color:#2563eb;
  border-radius:14px;
  padding:11px 14px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}

.vh-booking-actions .primary{
  background:#2563eb;
  color:#fff;
  border-color:#2563eb;
}

.vh-simulator-box{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:24px;
  padding:22px;
  box-shadow:0 18px 55px rgba(15,23,42,.07);
}

.vh-chat-window{
  height:420px;
  overflow:auto;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:16px;
}

.vh-chat-msg{
  max-width:80%;
  margin:10px 0;
  padding:12px 14px;
  border-radius:16px;
  line-height:1.45;
}

.vh-chat-user{
  margin-left:auto;
  background:#2563eb;
  color:#fff;
}

.vh-chat-bot{
  margin-right:auto;
  background:#fff;
  border:1px solid #dbeafe;
  color:#071226;
}

.vh-chat-form{
  display:flex;
  gap:10px;
  margin-top:12px;
}

.vh-chat-form input{
  flex:1;
  border:1px solid #cbd5e1;
  border-radius:14px;
  padding:13px;
}

.vh-chat-form button{
  border:0;
  background:#2563eb;
  color:#fff;
  border-radius:14px;
  padding:13px 18px;
  font-weight:900;
}

@media(max-width:900px){
  .vh-booking-grid{
    grid-template-columns:1fr;
  }

  .vh-activity-head{
    display:block;
  }

  .vh-activity-time{
    display:block;
    margin-top:6px;
  }

  .vh-chat-form{
    display:block;
  }

  .vh-chat-form button{
    width:100%;
    margin-top:10px;
  }
}


/* =========================================================
   SOURCE: public/assets/hub/booking-final-32.css
   ========================================================= */
/* BOOKING FINAL UX 3.2 */

body.booking-final-page .vh-modal-backdrop.open{
  display:none !important;
}

body.booking-final-page .vh-form-hidden{
  display:block !important;
}

.booking-final-page .vh-page{
  max-width:1120px;
}

.booking-final-page .vh-hero-card{
  padding:30px;
}

.booking-final-page .vh-page-title{
  font-size:42px;
}

.booking-final-page .vh-booking-actions{
  gap:10px;
}

.booking-final-page .vh-booking-actions a,
.booking-final-page .vh-booking-actions button{
  min-height:42px;
}

.booking-final-page .jv-raw{
  display:none;
}

.booking-final-page details.booking-debug{
  margin-top:16px;
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:18px;
  padding:14px;
}

.booking-final-page details.booking-debug summary{
  cursor:pointer;
  font-weight:900;
  color:#2563eb;
}

.booking-final-page details.booking-debug pre{
  background:#020617;
  color:#dbeafe;
  border-radius:16px;
  padding:16px;
  overflow:auto;
}

.booking-chat-layout{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:16px;
  align-items:start;
}

.booking-chat-panel{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:26px;
  padding:20px;
  box-shadow:0 18px 60px rgba(15,23,42,.07);
}

.booking-chat-window{
  height:500px;
  overflow:auto;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:22px;
  padding:16px;
}

.booking-msg{
  max-width:82%;
  margin:10px 0;
  padding:12px 14px;
  border-radius:18px;
  line-height:1.45;
  font-weight:750;
}

.booking-msg.user{
  margin-left:auto;
  background:#2563eb;
  color:#fff;
}

.booking-msg.bot{
  margin-right:auto;
  background:#fff;
  color:#071226;
  border:1px solid #dbeafe;
}

.booking-chip-row{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin:12px 0 0;
}

.booking-chip-row button{
  width:auto;
  border:1px solid #bfdbfe;
  background:#fff;
  color:#2563eb;
  border-radius:999px;
  padding:9px 12px;
  font-weight:900;
  cursor:pointer;
}

.booking-chat-form{
  display:flex;
  gap:10px;
  margin-top:12px;
}

.booking-chat-form input{
  flex:1;
  border:1px solid #cbd5e1;
  border-radius:16px;
  padding:14px;
  font-weight:800;
}

.booking-chat-form button{
  border:0;
  background:#2563eb;
  color:#fff;
  border-radius:16px;
  padding:14px 18px;
  font-weight:950;
  cursor:pointer;
}

.booking-side-list{
  display:grid;
  gap:10px;
}

.booking-side-item{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:18px;
  padding:14px;
}

.booking-side-item strong{
  display:block;
  color:#071226;
}

.booking-side-item small{
  color:#64748b;
}

@media(max-width:900px){
  .booking-chat-layout{
    grid-template-columns:1fr;
  }

  .booking-chat-form{
    display:block;
  }

  .booking-chat-form button{
    width:100%;
    margin-top:10px;
  }
}


/* =========================================================
   SOURCE: public/assets/hub/vegahub-ui.css
   ========================================================= */
/*
 * VegaHub UI
 * Capa global definitiva.
 *
 * Orden:
 * 1. tokens
 * 2. base
 * 3. navegación
 * 4. layout
 * 5. componentes
 * 6. estados
 * 7. responsive
 * 8. accesibilidad
 */

/* SOURCE: /opt/vega-assistant/api/public/assets/hub/vegahub-shell.css */
:root{
  --vh-blue:#2563eb;
  --vh-blue-soft:#eff6ff;
  --vh-dark:#071226;
  --vh-muted:#64748b;
  --vh-border:#dbeafe;
  --vh-bg:#f8fbff;
  --vh-card:#ffffff;
  --vh-shadow:0 18px 55px rgba(15,23,42,.08);
}

body.vh-shell-ready{
  margin:0;
  background:
    radial-gradient(circle at 12% 8%, rgba(37,99,235,.10), transparent 28%),
    linear-gradient(135deg,#f8fbff,#eef7ff);
}

.vh-app-shell{
  min-height:100vh;
}

.vh-topbar{
  position:sticky;
  top:0;
  z-index:2000;
  height:68px;
  background:rgba(255,255,255,.92);
  border-bottom:1px solid rgba(148,163,184,.28);
  backdrop-filter:blur(14px);
}

.vh-topbar-inner{
  max-width:1280px;
  margin:0 auto;
  height:68px;
  padding:0 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.vh-brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-weight:900;
  color:var(--vh-dark);
  text-decoration:none;
  white-space:nowrap;
}

.vh-brand-mark{
  width:38px;
  height:38px;
  border-radius:14px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,#2563eb,#60a5fa);
  color:white;
  font-weight:900;
}

.vh-menu{
  display:flex;
  align-items:center;
  gap:6px;
  flex:1;
  justify-content:center;
}

.vh-menu a{
  color:#0f172a;
  text-decoration:none;
  font-weight:800;
  font-size:14px;
  padding:10px 12px;
  border-radius:12px;
}

.vh-menu a:hover,
.vh-menu a.active{
  background:var(--vh-blue-soft);
  color:var(--vh-blue);
}

.vh-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.vh-icon-btn,
.vh-user-btn{
  border:1px solid #bfdbfe;
  background:white;
  color:#0f172a;
  border-radius:14px;
  padding:10px 12px;
  font-weight:900;
  cursor:pointer;
}

.vh-user-btn{
  display:flex;
  align-items:center;
  gap:8px;
}

.vh-avatar{
  width:30px;
  height:30px;
  border-radius:999px;
  background:#2563eb;
  color:white;
  display:grid;
  place-items:center;
  font-size:12px;
  font-weight:900;
}

.vh-dropdown{
  position:fixed;
  top:72px;
  right:20px;
  min-width:260px;
  background:white;
  border:1px solid #dbeafe;
  border-radius:18px;
  box-shadow:0 24px 70px rgba(15,23,42,.16);
  padding:10px;
  z-index:3000;
  display:none;
}

.vh-dropdown.open{
  display:block;
}

.vh-dropdown a,
.vh-dropdown button{
  display:block;
  width:100%;
  box-sizing:border-box;
  text-align:left;
  padding:11px 12px;
  border:0;
  background:white;
  border-radius:12px;
  font-weight:800;
  color:#0f172a;
  text-decoration:none;
  cursor:pointer;
}

.vh-dropdown a:hover,
.vh-dropdown button:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-main-offset{
  padding-top:0;
}

.vh-modal-backdrop{
  position:fixed;
  inset:0;
  background:rgba(7,18,38,.55);
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  z-index:5000;
}

.vh-modal-backdrop.open{
  display:flex;
}

.vh-modal{
  width:min(760px,100%);
  max-height:88vh;
  overflow:auto;
  background:white;
  border-radius:24px;
  border:1px solid #dbeafe;
  box-shadow:0 30px 90px rgba(15,23,42,.28);
}

.vh-modal-head{
  position:sticky;
  top:0;
  background:white;
  border-bottom:1px solid #e2e8f0;
  padding:18px 22px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  z-index:2;
}

.vh-modal-head h2{
  margin:0;
  font-size:22px;
}

.vh-modal-close{
  border:0;
  background:#eff6ff;
  color:#2563eb;
  border-radius:12px;
  padding:9px 12px;
  font-weight:900;
  cursor:pointer;
}

.vh-modal-body{
  padding:22px;
}

.vh-modal-open-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid #bfdbfe;
  background:#2563eb;
  color:white;
  border-radius:14px;
  padding:12px 16px;
  font-weight:900;
  cursor:pointer;
  margin:8px 0 16px;
}

.vh-assist-box{
  margin-top:12px;
  padding:12px;
  border-radius:14px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  font-size:14px;
  color:#334155;
}

.vh-assist-error{
  color:#b91c1c;
  font-weight:800;
}

.vh-assist-ok{
  color:#166534;
  font-weight:800;
}

.vh-required-mark{
  color:#dc2626;
  font-weight:900;
}

@media(max-width:960px){
  .vh-topbar{
    height:auto;
  }

  .vh-topbar-inner{
    height:auto;
    align-items:flex-start;
    flex-wrap:wrap;
    padding:14px 16px;
  }

  .vh-menu{
    order:3;
    width:100%;
    overflow:auto;
    justify-content:flex-start;
    padding-bottom:4px;
  }

  .vh-menu a{
    white-space:nowrap;
  }
}

/* VEGAHUB UX 2.5 */
.vh-global-create{
  background:#2563eb;
  color:white;
  border-color:#2563eb;
}

.vh-global-search{
  width:220px;
  max-width:28vw;
  border:1px solid #bfdbfe;
  border-radius:14px;
  padding:10px 12px;
  font-weight:700;
}

.vh-ux-panel-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}

.vh-ux-create-type{
  border:1px solid #dbeafe;
  background:white;
  border-radius:16px;
  padding:16px;
  text-align:left;
  font-weight:900;
  cursor:pointer;
}

.vh-ux-create-type:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-ux-form{
  display:grid;
  gap:12px;
}

.vh-ux-form label{
  font-weight:900;
  font-size:14px;
}

.vh-ux-form input,
.vh-ux-form select,
.vh-ux-form textarea{
  width:100%;
  box-sizing:border-box;
  padding:12px;
  border:1px solid #cbd5e1;
  border-radius:12px;
}

.vh-ux-result-item{
  display:block;
  padding:12px;
  border:1px solid #e2e8f0;
  border-radius:14px;
  margin-bottom:10px;
  text-decoration:none;
  color:#0f172a;
}

.vh-ux-result-item:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-ux-muted{
  color:#64748b;
  font-size:13px;
}

.vh-ux-notification{
  border:1px solid #e2e8f0;
  border-radius:14px;
  padding:14px;
  margin-bottom:10px;
}

.vh-ux-activity{
  border-left:4px solid #2563eb;
  padding:10px 12px;
  background:#f8fafc;
  border-radius:10px;
  margin-bottom:10px;
}

@media(max-width:900px){
  .vh-global-search{
    width:100%;
    max-width:none;
  }

  .vh-ux-panel-grid{
    grid-template-columns:1fr;
  }
}

/* VEGAHUB ROLE UX 2.6 */
.vh-menu{
  gap:4px;
}

.vh-menu a,
.vh-menu button.vh-menu-drop{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:#0f172a;
  text-decoration:none;
  font-weight:850;
  font-size:14px;
  padding:10px 12px;
  border-radius:13px;
  border:0;
  background:transparent;
  cursor:pointer;
  white-space:nowrap;
}

.vh-menu a:hover,
.vh-menu a.active,
.vh-menu button.vh-menu-drop:hover,
.vh-menu button.vh-menu-drop.active{
  background:#eff6ff;
  color:#2563eb;
}

.vh-menu-icon{
  font-size:15px;
  line-height:1;
}

.vh-menu-dropdown{
  position:fixed;
  top:72px;
  min-width:220px;
  background:white;
  border:1px solid #dbeafe;
  border-radius:18px;
  box-shadow:0 24px 70px rgba(15,23,42,.16);
  padding:8px;
  z-index:3001;
  display:none;
}

.vh-menu-dropdown.open{
  display:block;
}

.vh-menu-dropdown a{
  display:flex;
  align-items:center;
  gap:8px;
  text-decoration:none;
  color:#0f172a;
  padding:11px 12px;
  border-radius:12px;
  font-weight:850;
}

.vh-menu-dropdown a:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-actions{
  flex-shrink:0;
}

.vh-actions .vh-icon-btn{
  min-height:40px;
}

.vh-actions button{
  white-space:nowrap;
}

.vh-actions button[data-vh-activity-hidden="1"]{
  display:none !important;
}

.vh-global-search{
  width:180px;
  max-width:20vw;
}

.vh-form-hidden{
  display:none !important;
}

.vh-modal .vh-form-hidden{
  display:block !important;
}

.vh-modal-body .card,
.vh-modal-body section,
.vh-modal-body form{
  margin:0 !important;
}

.vh-client-clean .permissions-section,
.vh-client-clean #permsBox{
  display:none !important;
}

@media(max-width:1180px){
  .vh-global-search{
    width:140px;
  }

  .vh-menu a,
  .vh-menu button.vh-menu-drop{
    font-size:13px;
    padding:9px 9px;
  }
}

@media(max-width:960px){
  .vh-menu{
    width:100%;
    overflow-x:auto;
    justify-content:flex-start;
  }

  .vh-actions{
    width:100%;
    justify-content:flex-start;
    flex-wrap:wrap;
  }

  .vh-global-search{
    width:100%;
    max-width:none;
    order:20;
  }
}

/* VEGAHUB UX/UI 2.7 */
.vh-topbar{
  box-shadow:0 8px 28px rgba(15,23,42,.06);
}

.vh-menu{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

.vh-menu-dd-btn{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border:0;
  background:transparent;
  color:#0f172a;
  font-weight:900;
  font-size:14px;
  padding:10px 12px;
  border-radius:14px;
  cursor:pointer;
  white-space:nowrap;
}

.vh-menu-dd-btn:hover,
.vh-menu-dd-btn.active{
  background:#eff6ff;
  color:#2563eb;
}

.vh-menu-dd-icon{
  font-size:14px;
  opacity:.9;
}

.vh-dd-panel{
  position:fixed;
  min-width:250px;
  max-width:340px;
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:20px;
  box-shadow:0 28px 90px rgba(15,23,42,.18);
  padding:10px;
  z-index:7000;
  display:none;
}

.vh-dd-panel.open{
  display:block;
}

.vh-dd-panel a,
.vh-dd-panel button{
  width:100%;
  display:flex;
  align-items:flex-start;
  gap:10px;
  border:0;
  background:white;
  color:#0f172a;
  text-decoration:none;
  border-radius:14px;
  padding:12px;
  cursor:pointer;
  text-align:left;
  box-sizing:border-box;
}

.vh-dd-panel a:hover,
.vh-dd-panel button:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-dd-title{
  display:block;
  font-weight:900;
  font-size:14px;
}

.vh-dd-desc{
  display:block;
  color:#64748b;
  font-size:12px;
  margin-top:2px;
  line-height:1.35;
}

.vh-actions{
  display:flex;
  align-items:center;
  gap:8px;
}

.vh-actions[data-ux25="1"] .vh-icon-btn,
.vh-actions[data-ux25="1"] .vh-user-btn{
  min-height:42px;
}

.vh-global-search{
  min-height:42px;
  width:190px;
  max-width:22vw;
  border:1px solid #bfdbfe;
  background:#fff;
  color:#0f172a;
  border-radius:16px;
  padding:0 14px;
  font-weight:800;
}

.vh-global-search:focus{
  outline:none;
  border-color:#2563eb;
  box-shadow:0 0 0 4px rgba(37,99,235,.14);
}

.vh-icon-btn.vh-primary{
  background:#2563eb;
  border-color:#2563eb;
  color:#fff;
}

.vh-modal-backdrop{
  background:rgba(15,23,42,.62) !important;
  backdrop-filter:blur(5px);
}

.vh-modal{
  background:#fff !important;
  color:#071226 !important;
  border:1px solid #dbeafe;
  box-shadow:0 34px 120px rgba(15,23,42,.35);
}

.vh-modal *{
  color:inherit;
}

.vh-modal-head{
  background:#fff !important;
  color:#071226 !important;
  border-bottom:1px solid #e2e8f0;
}

.vh-modal-head h2{
  color:#071226 !important;
  font-size:22px;
  letter-spacing:-.02em;
}

.vh-modal-body{
  background:#fff !important;
  color:#071226 !important;
}

.vh-modal-body input,
.vh-modal-body select,
.vh-modal-body textarea{
  color:#071226 !important;
  background:#fff !important;
  border:1px solid #cbd5e1;
}

.vh-modal-body .vh-ux-notification,
.vh-modal-body .vh-ux-result-item,
.vh-modal-body .vh-assist-box{
  color:#071226 !important;
  background:#fff !important;
}

.vh-modal-body .vh-ux-muted,
.vh-modal-body small{
  color:#64748b !important;
}

.vh-modal-close{
  background:#eff6ff !important;
  color:#2563eb !important;
}

.vh-page{
  max-width:1180px;
  margin:0 auto;
  padding:34px 20px 90px;
}

.vh-hero-card{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:30px;
  padding:34px;
  box-shadow:0 24px 80px rgba(15,23,42,.08);
}

.vh-page-title{
  margin:0;
  font-size:42px;
  letter-spacing:-.055em;
  color:#071226;
}

.vh-page-subtitle{
  color:#64748b;
  line-height:1.6;
  max-width:780px;
}

.vh-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.vh-card{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:24px;
  padding:22px;
  box-shadow:0 16px 50px rgba(15,23,42,.06);
}

.vh-card h3{
  margin:0 0 8px;
  color:#071226;
}

.vh-card p{
  color:#64748b;
}

.vh-kpi{
  font-size:34px;
  font-weight:950;
  color:#2563eb;
}

.vh-soft-table{
  width:100%;
  border-collapse:separate;
  border-spacing:0;
}

.vh-soft-table th,
.vh-soft-table td{
  padding:13px 12px;
  border-bottom:1px solid #e2e8f0;
  text-align:left;
}

.vh-soft-table th{
  color:#64748b;
  font-size:13px;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.vh-soft-table button{
  border:1px solid #bfdbfe;
  background:#fff;
  color:#2563eb;
  border-radius:10px;
  padding:7px 10px;
  font-weight:900;
}

.vh-raw-collapsed{
  display:none;
}

.vh-ai-strip{
  display:flex;
  gap:12px;
  align-items:flex-start;
  background:linear-gradient(135deg,#eff6ff,#fff);
  border:1px solid #bfdbfe;
  border-radius:22px;
  padding:18px;
  margin:18px 0;
}

.vh-ai-strip strong{
  color:#071226;
}

.vh-ai-strip p{
  margin:4px 0 0;
  color:#64748b;
}

@media(max-width:1100px){
  .vh-menu{
    order:3;
    width:100%;
    justify-content:flex-start;
    overflow-x:auto;
    padding-bottom:4px;
  }

  .vh-topbar-inner{
    height:auto;
    min-height:68px;
    flex-wrap:wrap;
    padding:12px 16px;
  }

  .vh-global-search{
    width:100%;
    max-width:none;
  }
}

@media(max-width:800px){
  .vh-grid{
    grid-template-columns:1fr;
  }

  .vh-page-title{
    font-size:34px;
  }

  .vh-actions{
    flex-wrap:wrap;
  }

  .vh-dd-panel{
    left:12px !important;
    right:12px !important;
    width:auto;
    max-width:none;
  }
}

/* VEGAHUB UX/UI + BOOKING FIX 2.8 */

.vh-topbar{
  z-index:9000 !important;
}

.vh-menu{
  display:flex !important;
  align-items:center;
  gap:8px;
}

.vh-menu a{
  display:none !important;
}

.vh-menu-dd-btn{
  display:inline-flex !important;
  align-items:center;
  gap:8px;
  min-height:42px;
  border:0;
  background:transparent;
  color:#0f172a;
  font-weight:900;
  font-size:14px;
  padding:10px 12px;
  border-radius:14px;
  cursor:pointer;
  white-space:nowrap;
}

.vh-menu-dd-btn:hover,
.vh-menu-dd-btn.active,
.vh-menu-dd-btn[aria-expanded="true"]{
  background:#eff6ff;
  color:#2563eb;
}

.vh-dd-panel{
  position:fixed !important;
  z-index:12000 !important;
  min-width:270px;
  max-width:360px;
  background:#fff !important;
  color:#071226 !important;
  border:1px solid #dbeafe;
  border-radius:20px;
  box-shadow:0 28px 90px rgba(15,23,42,.22);
  padding:10px;
  display:none;
}

.vh-dd-panel.open{
  display:block !important;
}

.vh-dd-panel a,
.vh-dd-panel button{
  width:100%;
  display:flex;
  align-items:flex-start;
  gap:10px;
  border:0;
  background:#fff;
  color:#071226;
  text-decoration:none;
  border-radius:14px;
  padding:12px;
  cursor:pointer;
  text-align:left;
  box-sizing:border-box;
}

.vh-dd-panel a:hover,
.vh-dd-panel button:hover{
  background:#eff6ff;
  color:#2563eb;
}

.vh-dd-title{
  display:block;
  font-weight:950;
  font-size:14px;
}

.vh-dd-desc{
  display:block;
  color:#64748b;
  font-size:12px;
  margin-top:3px;
  line-height:1.35;
}

.vh-activity-list{
  display:grid;
  gap:14px;
}

.vh-activity-card{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:22px;
  padding:18px;
  box-shadow:0 14px 42px rgba(15,23,42,.05);
}

.vh-activity-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.vh-activity-type{
  font-weight:950;
  color:#071226;
  font-size:17px;
}

.vh-activity-time{
  color:#64748b;
  font-size:13px;
  white-space:nowrap;
}

.vh-activity-summary{
  margin:10px 0 0;
  color:#334155;
  line-height:1.5;
}

.vh-activity-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}

.vh-chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:6px 10px;
  background:#eff6ff;
  color:#2563eb;
  font-size:12px;
  font-weight:900;
}

.vh-booking-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.vh-booking-card{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:24px;
  padding:22px;
  box-shadow:0 18px 55px rgba(15,23,42,.07);
}

.vh-booking-card h3{
  margin:0 0 8px;
}

.vh-booking-card p{
  color:#64748b;
  line-height:1.5;
}

.vh-booking-actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:14px;
}

.vh-booking-actions a,
.vh-booking-actions button{
  border:1px solid #bfdbfe;
  background:#fff;
  color:#2563eb;
  border-radius:14px;
  padding:11px 14px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}

.vh-booking-actions .primary{
  background:#2563eb;
  color:#fff;
  border-color:#2563eb;
}

.vh-simulator-box{
  background:#fff;
  border:1px solid #dbeafe;
  border-radius:24px;
  padding:22px;
  box-shadow:0 18px 55px rgba(15,23,42,.07);
}

.vh-chat-window{
  height:420px;
  overflow:auto;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  border-radius:18px;
  padding:16px;
}

.vh-chat-msg{
  max-width:80%;
  margin:10px 0;
  padding:12px 14px;
  border-radius:16px;
  line-height:1.45;
}

.vh-chat-user{
  margin-left:auto;
  background:#2563eb;
  color:#fff;
}

.vh-chat-bot{
  margin-right:auto;
  background:#fff;
  border:1px solid #dbeafe;
  color:#071226;
}

.vh-chat-form{
  display:flex;
  gap:10px;
  margin-top:12px;
}

.vh-chat-form input{
  flex:1;
  border:1px solid #cbd5e1;
  border-radius:14px;
  padding:13px;
}

.vh-chat-form button{
  border:0;
  background:#2563eb;
  color:#fff;
  border-radius:14px;
  padding:13px 18px;
  font-weight:900;
}

@media(max-width:900px){
  .vh-booking-grid{
    grid-template-columns:1fr;
  }

  .vh-activity-head{
    display:block;
  }

  .vh-activity-time{
    display:block;
    margin-top:6px;
  }

  .vh-chat-form{
    display:block;
  }

  .vh-chat-form button{
    width:100%;
    margin-top:10px;
  }
}

/* SOURCE: /opt/vega-assistant/api/public/assets/hub/vegahub-product-final.css */
:root{
  --vh-primary:#2563eb;
  --vh-primary-hover:#1d4ed8;
  --vh-text:#0f172a;
  --vh-muted:#64748b;
  --vh-border:#dbe4f0;
  --vh-soft:#f8fafc;
  --vh-danger:#dc2626;
  --vh-radius:14px;
}

/* Base */
*{box-sizing:border-box}

body{
  color:var(--vh-text);
}

button,
input,
select,
textarea{
  font:inherit;
}

button,
.vh-btn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid transparent;
  border-radius:12px;
  padding:0 16px;
  font-size:14px;
  font-weight:750;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  transition:
    background-color .16s ease,
    border-color .16s ease,
    color .16s ease,
    box-shadow .16s ease,
    transform .16s ease;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid rgba(37,99,235,.22);
  outline-offset:2px;
}

.vh-btn-primary,
button.primary{
  background:var(--vh-primary);
  border-color:var(--vh-primary);
  color:#fff;
}

.vh-btn-primary:hover,
button.primary:hover{
  background:var(--vh-primary-hover);
}

.vh-btn-secondary{
  background:#fff;
  border-color:#bfdbfe;
  color:var(--vh-primary);
}

.vh-btn-secondary:hover{
  background:#eff6ff;
}

.vh-btn-ghost{
  background:transparent;
  color:var(--vh-text);
}

.vh-btn-ghost:hover{
  background:#f1f5f9;
}

.vh-btn-danger{
  background:#fff;
  border-color:#fecaca;
  color:var(--vh-danger);
}

.vh-btn-danger:hover{
  background:#fef2f2;
}

.vh-icon-btn{
  width:42px;
  min-width:42px;
  padding:0;
}

label{
  display:grid;
  gap:7px;
  color:#334155;
  font-size:13px;
  font-weight:700;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea{
  width:100%;
  min-height:44px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#fff;
  color:var(--vh-text);
  padding:0 14px;
  font-size:15px;
  font-weight:500;
}

textarea{
  min-height:110px;
  padding-top:12px;
  resize:vertical;
}

input:focus,
select:focus,
textarea:focus{
  border-color:var(--vh-primary);
  box-shadow:0 0 0 4px rgba(37,99,235,.12);
  outline:none;
}

.vh-field-error{
  color:var(--vh-danger);
  font-size:12px;
  font-weight:650;
}

/* Header */
.vh-topbar{
  position:sticky;
  top:0;
  z-index:9000;
  background:#fff;
  border-bottom:1px solid #e2e8f0;
  box-shadow:0 8px 28px rgba(15,23,42,.05);
}

.vh-topbar-inner{
  width:min(1320px,calc(100% - 32px));
  min-height:68px;
  margin:auto;
  display:flex;
  align-items:center;
  gap:18px;
}

.vh-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--vh-text);
  text-decoration:none;
  font-weight:850;
  white-space:nowrap;
}

.vh-brand-mark{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--vh-primary);
  color:#fff;
}

.vh-menu{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
}

.vh-nav-group{
  position:relative;
}

.vh-nav-toggle{
  min-height:40px;
  padding:0 12px;
  border:0;
  background:transparent;
  color:var(--vh-text);
  border-radius:11px;
}

.vh-nav-toggle:hover,
.vh-nav-toggle[aria-expanded="true"]{
  background:#eff6ff;
  color:var(--vh-primary);
}

.vh-nav-chevron{
  width:14px;
  height:14px;
  transition:transform .16s ease;
}

.vh-nav-toggle[aria-expanded="true"] .vh-nav-chevron{
  transform:rotate(180deg);
}

.vh-nav-panel{
  position:absolute;
  top:calc(100% + 9px);
  left:0;
  width:280px;
  display:none;
  padding:8px;
  border:1px solid var(--vh-border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.18);
  z-index:12000;
}

.vh-nav-panel.open{
  display:grid;
}

.vh-nav-panel a,
.vh-nav-panel button{
  width:100%;
  min-height:auto;
  display:grid;
  justify-content:stretch;
  gap:3px;
  padding:11px 12px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:var(--vh-text);
  text-align:left;
  text-decoration:none;
}

.vh-nav-panel a:hover,
.vh-nav-panel button:hover{
  background:#eff6ff;
  color:var(--vh-primary);
}

.vh-nav-item-title{
  font-size:14px;
  font-weight:800;
}

.vh-nav-item-description{
  color:var(--vh-muted);
  font-size:12px;
  font-weight:500;
}

.vh-actions{
  display:flex;
  align-items:center;
  gap:8px;
}

.vh-user-button{
  min-height:42px;
  border:1px solid #bfdbfe;
  background:#fff;
  color:var(--vh-text);
}

.vh-avatar{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--vh-primary);
  color:#fff;
  font-size:12px;
}

/* Layout */
.vh-page{
  width:min(1180px,calc(100% - 32px));
  margin:auto;
  padding:32px 0 80px;
}

.vh-page-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:24px;
}

.vh-page-header h1{
  margin:0;
  font-size:clamp(30px,4vw,44px);
  letter-spacing:-.045em;
}

.vh-page-header p{
  max-width:720px;
  margin:8px 0 0;
  color:var(--vh-muted);
  line-height:1.55;
}

.vh-card{
  background:#fff;
  border:1px solid var(--vh-border);
  border-radius:20px;
  padding:20px;
  box-shadow:0 14px 42px rgba(15,23,42,.045);
}

.vh-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.vh-stat{
  font-size:32px;
  font-weight:850;
  letter-spacing:-.04em;
}

.vh-muted{
  color:var(--vh-muted);
}

.vh-actions-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}

.vh-empty{
  padding:30px 18px;
  color:var(--vh-muted);
  text-align:center;
}

.vh-list{
  display:grid;
  gap:10px;
}

.vh-list-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 0;
  border-bottom:1px solid #e2e8f0;
}

.vh-list-item:last-child{
  border-bottom:0;
}

.vh-list-title{
  font-weight:750;
}

.vh-list-meta{
  margin-top:3px;
  color:var(--vh-muted);
  font-size:13px;
}

/* Tabs */
.vh-tabs{
  display:flex;
  gap:4px;
  overflow-x:auto;
  margin-bottom:18px;
  padding:4px;
  border:1px solid var(--vh-border);
  border-radius:14px;
  background:#fff;
}

.vh-tab{
  min-height:38px;
  border:0;
  background:transparent;
  color:#475569;
  white-space:nowrap;
}

.vh-tab.active{
  background:#eff6ff;
  color:var(--vh-primary);
}

.vh-tab-panel{
  display:none;
}

.vh-tab-panel.active{
  display:block;
}

/* Modales manuales, nunca automáticos */
.vh-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:20000;
  display:none;
  place-items:center;
  padding:20px;
  background:rgba(15,23,42,.62);
  backdrop-filter:blur(4px);
}

.vh-modal-backdrop.open{
  display:grid;
}

.vh-modal{
  width:min(680px,100%);
  max-height:calc(100vh - 40px);
  overflow:auto;
  border-radius:20px;
  background:#fff;
  box-shadow:0 32px 110px rgba(15,23,42,.35);
}

.vh-modal-header{
  position:sticky;
  top:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 20px;
  border-bottom:1px solid #e2e8f0;
  background:#fff;
}

.vh-modal-body{
  padding:20px;
}

/* Ocultar ruido */
.vh-ai-strip,
.vh-assist-box,
.vh-ux-helper,
.vh-raw-output,
.jv-raw{
  display:none !important;
}

.debug-only{
  display:none;
}

body.vh-role-admin .debug-only{
  display:block;
}

/* WhatsApp */
.wa-shell{
  width:min(1100px,calc(100% - 24px));
  height:calc(100vh - 110px);
  min-height:620px;
  margin:20px auto;
  display:grid;
  grid-template-columns:310px minmax(0,1fr);
  overflow:hidden;
  border:1px solid #cbd5e1;
  border-radius:18px;
  background:#fff;
  box-shadow:0 24px 80px rgba(15,23,42,.15);
}

.wa-sidebar{
  padding:20px;
  border-right:1px solid #d1d7db;
  background:#f7f8fa;
}

.wa-sidebar h2{
  margin:0;
  font-size:18px;
}

.wa-sidebar p{
  color:#667781;
  font-size:13px;
  line-height:1.5;
}

.wa-info-item{
  padding:12px 0;
  border-bottom:1px solid #e2e8f0;
}

.wa-main{
  min-width:0;
  display:grid;
  grid-template-rows:64px minmax(0,1fr) auto;
}

.wa-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 18px;
  background:#f0f2f5;
  border-bottom:1px solid #d1d7db;
}

.wa-avatar{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#008069;
  color:#fff;
  font-weight:800;
}

.wa-header-name{
  font-weight:750;
}

.wa-header-status{
  color:#667781;
  font-size:12px;
}

.wa-chat{
  display:flex;
  flex-direction:column;
  gap:8px;
  overflow:auto;
  padding:22px clamp(14px,6vw,72px);
  background-color:#efeae2;
  background-image:
    radial-gradient(rgba(17,27,33,.035) 1px,transparent 1px);
  background-size:18px 18px;
}

.wa-message{
  max-width:min(76%,620px);
  padding:8px 10px 6px;
  border-radius:9px;
  box-shadow:0 1px 1px rgba(11,20,26,.12);
  line-height:1.42;
}

.wa-message.bot{
  align-self:flex-start;
  background:#fff;
  border-top-left-radius:2px;
}

.wa-message.user{
  align-self:flex-end;
  background:#d9fdd3;
  border-top-right-radius:2px;
}

.wa-message-meta{
  display:flex;
  justify-content:flex-end;
  gap:4px;
  margin-top:3px;
  color:#667781;
  font-size:10px;
}

.wa-chips{
  align-self:flex-start;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  max-width:80%;
}

.wa-chip{
  min-height:34px;
  border:1px solid #00a884;
  border-radius:999px;
  background:#fff;
  color:#008069;
  padding:0 12px;
  font-size:13px;
}

.wa-compose{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  background:#f0f2f5;
}

.wa-compose input{
  min-height:42px;
  border:0;
  border-radius:21px;
  padding:0 16px;
}

.wa-send{
  width:44px;
  min-width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#00a884;
  color:#fff;
}

.wa-reset{
  margin-left:auto;
  border:0;
  background:transparent;
  color:#54656f;
}

/* Reserva pública */
.booking-public-body{
  min-height:100vh;
  margin:0;
  background:#f4f7fb;
}

.booking-public{
  width:min(760px,calc(100% - 24px));
  margin:auto;
  padding:36px 0 70px;
}

.booking-public-card{
  margin-bottom:14px;
  padding:24px;
  border:1px solid var(--vh-border);
  border-radius:20px;
  background:#fff;
  box-shadow:0 16px 48px rgba(15,23,42,.06);
}

.booking-steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin-bottom:20px;
}

.booking-step{
  height:5px;
  border-radius:999px;
  background:#e2e8f0;
}

.booking-step.active{
  background:var(--vh-primary);
}

.booking-slot-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.booking-slot{
  min-height:42px;
  border:1px solid #bfdbfe;
  background:#fff;
  color:var(--vh-primary);
}

.booking-slot.selected{
  background:var(--vh-primary);
  color:#fff;
}

/* Responsive */
@media(max-width:1050px){
  .vh-topbar-inner{
    flex-wrap:wrap;
    padding:10px 0;
  }

  .vh-menu{
    order:3;
    width:100%;
    overflow-x:auto;
  }

  .vh-actions{
    margin-left:auto;
  }
}

@media(max-width:820px){
  .vh-grid{
    grid-template-columns:1fr;
  }

  .vh-page-header{
    display:block;
  }

  .wa-shell{
    width:100%;
    height:calc(100vh - 68px);
    min-height:0;
    margin:0;
    grid-template-columns:1fr;
    border:0;
    border-radius:0;
  }

  .wa-sidebar{
    display:none;
  }

  .booking-slot-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:560px){
  .vh-page{
    width:min(100% - 20px,1180px);
    padding-top:20px;
  }

  .vh-actions > :not(.vh-user-button){
    display:none;
  }

  .vh-nav-panel{
    position:fixed;
    top:72px;
    left:10px;
    right:10px;
    width:auto;
  }

  .booking-slot-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

/* SOURCE: /opt/vega-assistant/api/public/assets/hub/vegahub-accessibility-40.css */
:root{
  --vh-a11y-focus:#1d4ed8;
  --vh-a11y-error:#b91c1c;
  --vh-a11y-success:#166534;
  --vh-a11y-border:#cbd5e1;
  --vh-a11y-muted:#475569;
  --vh-a11y-surface:#ffffff;
  --vh-a11y-soft:#f8fafc;
}

/* Salto al contenido */
.vh-skip-link{
  position:fixed;
  top:8px;
  left:8px;
  z-index:99999;
  transform:translateY(-150%);
  min-height:44px;
  display:flex;
  align-items:center;
  padding:0 16px;
  border-radius:10px;
  background:#0f172a;
  color:#fff;
  font-weight:800;
  text-decoration:none;
}

.vh-skip-link:focus{
  transform:translateY(0);
}

/* Foco */
:where(
  a,
  button,
  input,
  select,
  textarea,
  summary,
  [tabindex]:not([tabindex="-1"])
):focus-visible{
  outline:3px solid var(--vh-a11y-focus) !important;
  outline-offset:3px !important;
  box-shadow:none !important;
}

/* Controles */
button,
.vh-btn,
input:not([type="checkbox"]):not([type="radio"]),
select,
textarea{
  min-height:44px;
}

button,
.vh-btn{
  min-width:44px;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea{
  border:1px solid var(--vh-a11y-border);
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"]{
  border-color:var(--vh-a11y-error) !important;
  box-shadow:0 0 0 3px rgba(185,28,28,.14) !important;
}

.vh-field-error,
[role="alert"].vh-error{
  display:block;
  margin-top:6px;
  color:var(--vh-a11y-error);
  font-size:.875rem;
  font-weight:700;
}

/* Texto y lectura */
.vh-page p,
.vh-page li,
.vh-modal p,
.vh-modal li{
  max-width:75ch;
  line-height:1.55;
}

.vh-muted{
  color:var(--vh-a11y-muted) !important;
}

/* Menús */
.vh-nav-toggle{
  min-height:44px;
}

.vh-nav-panel{
  z-index:15000 !important;
  max-height:min(70vh,520px);
  overflow:auto;
}

.vh-nav-panel [role="menuitem"]{
  min-height:44px;
}

.vh-nav-panel [aria-current="page"]{
  background:#dbeafe;
  color:#1d4ed8;
  font-weight:800;
}

/* Pestañas */
[role="tablist"]{
  display:flex;
  gap:4px;
  overflow:auto;
  padding:4px;
  border:1px solid #dbe4f0;
  border-radius:14px;
  background:#fff;
}

[role="tab"]{
  flex:0 0 auto;
  min-height:44px;
}

[role="tab"][aria-selected="true"]{
  background:#dbeafe;
  color:#1d4ed8;
}

/* Tablas */
.vh-table-scroll{
  width:100%;
  overflow-x:auto;
  border-radius:14px;
  -webkit-overflow-scrolling:touch;
}

table{
  width:100%;
  border-collapse:collapse;
}

th{
  text-align:left;
}

th,
td{
  padding:12px;
  border-bottom:1px solid #e2e8f0;
  vertical-align:top;
}

tbody tr:hover{
  background:#f8fafc;
}

/* Formatos por tipo de página */
body[data-vh-page-type="dashboard"] .vh-grid{
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
}

body[data-vh-page-type="list"] .vh-card,
body[data-vh-page-type="activity"] .vh-card{
  box-shadow:none;
}

body[data-vh-page-type="form"] form,
body[data-vh-page-type="app-workspace"] form{
  max-width:860px;
}

body[data-vh-page-type="chat"]{
  overflow:hidden;
}

/* Ruido eliminado visualmente como respaldo */
.vh-ai-strip,
.vh-assist-box,
.vh-ux-helper,
.vh-raw-output,
[data-vh-noise="true"]{
  display:none !important;
}

.jv-raw,
pre[data-debug],
.debug-only{
  display:none;
}

body.vh-role-admin details.debug-only{
  display:block;
}

/* Estado vivo */
.vh-live-region{
  position:fixed;
  left:-10000px;
  width:1px;
  height:1px;
  overflow:hidden;
}

/* Solo lector de pantalla */
.vh-sr-only{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  overflow:hidden !important;
  clip:rect(0,0,0,0) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* Reflow */
img,
svg,
video,
canvas{
  max-width:100%;
}

.vh-page,
.vh-card,
.vh-modal,
.vh-list-item{
  min-width:0;
}

.vh-list-item{
  flex-wrap:wrap;
}

/* Reducción de movimiento */
@media (prefers-reduced-motion:reduce){
  *,
  *::before,
  *::after{
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* Alto contraste */
@media (forced-colors:active){
  button,
  .vh-btn,
  input,
  select,
  textarea,
  .vh-card,
  .vh-nav-panel{
    border:1px solid CanvasText !important;
  }

  :focus-visible{
    outline:3px solid Highlight !important;
  }
}

/* 320 px / zoom alto */
@media(max-width:640px){
  .vh-page{
    width:calc(100% - 20px);
  }

  .vh-page-header{
    display:grid !important;
    gap:16px;
  }

  .vh-page-header .vh-actions-row,
  .vh-actions-row{
    width:100%;
  }

  .vh-page-header .vh-actions-row > *,
  .vh-actions-row > .vh-btn,
  .vh-actions-row > button{
    flex:1 1 100%;
  }

  .vh-grid{
    grid-template-columns:1fr !important;
  }

  .vh-nav-panel{
    left:10px !important;
    right:10px !important;
    width:auto !important;
  }
}

/* Estados globales */
.vh-state-loading,
.vh-empty,
.vh-state-error,
.vh-state-success{
  padding:20px;
  border-radius:16px;
}

.vh-state-loading{
  color:#475569;
  background:#f8fafc;
}

.vh-empty{
  display:grid;
  justify-items:start;
  gap:8px;
  border:1px dashed #cbd5e1;
  background:#fff;
}

.vh-empty h3,
.vh-empty p{
  margin:0;
}

.vh-state-error{
  border:1px solid #fecaca;
  background:#fef2f2;
  color:#991b1b;
}

.vh-state-success{
  border:1px solid #bbf7d0;
  background:#f0fdf4;
  color:#166534;
}

/* Navegación móvil definitiva */

/* Navegación móvil definitiva */
.vh-mobile-nav{
  display:none;
}

@media(max-width:760px){
  body{
    padding-bottom:78px;
  }

  .vh-mobile-nav{
    position:fixed;
    left:8px;
    right:8px;
    bottom:8px;
    z-index:18000;
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:4px;
    padding:6px;
    border:1px solid #dbe4f0;
    border-radius:18px;
    background:rgba(255,255,255,.97);
    box-shadow:0 18px 60px rgba(15,23,42,.18);
    backdrop-filter:blur(16px);
  }

  .vh-mobile-nav a,
  .vh-mobile-nav button{
    min-width:0;
    min-height:54px;
    display:grid;
    place-items:center;
    gap:2px;
    padding:5px 3px;
    border:0;
    border-radius:12px;
    background:transparent;
    color:#475569;
    font-size:11px;
    font-weight:700;
    line-height:1.15;
    text-align:center;
    text-decoration:none;
  }

  .vh-mobile-nav .primary{
    background:#2563eb;
    color:#fff;
  }
}

/* Ajustes finales de componentes */
.wa-header-name{
  margin:0;
  font-size:16px;
  font-weight:750;
  line-height:1.2;
}

pre.debug-only,
.debug-only pre{
  overflow:auto;
  max-width:100%;
}


/* =========================================================
   SOURCE: public/hub/vega-ui.css
   ========================================================= */
:root {
  --vega-bg:#0d0f14;
  --vega-panel:#151922;
  --vega-panel-2:#1d2330;
  --vega-text:#f5f5f5;
  --vega-muted:#aab1c2;
  --vega-main:#e82a00;
  --vega-border:rgba(255,255,255,.08);
  --vega-ok:#3ddc97;
  --vega-warn:#ffcc66;
  --vega-bad:#ff667a;
  --vega-radius:18px;
  --vega-shadow:0 18px 50px rgba(0,0,0,.32);
}

html {
  scroll-behavior:smooth;
}

body {
  background:
    radial-gradient(circle at 20% 0%, rgba(232,42,0,.10), transparent 28%),
    radial-gradient(circle at 100% 20%, rgba(232,42,0,.08), transparent 22%),
    var(--vega-bg);
}

a, button {
  -webkit-tap-highlight-color:transparent;
}

.vega-ai-glow {
  position:relative;
  overflow:hidden;
}

.vega-ai-glow::before {
  content:"";
  position:absolute;
  inset:-2px;
  background:linear-gradient(115deg, transparent 0%, rgba(232,42,0,.18) 35%, transparent 70%);
  transform:translateX(-110%);
  animation:vegaSweep 7s ease-in-out infinite;
  pointer-events:none;
}

@keyframes vegaSweep {
  0%, 72% { transform:translateX(-110%); }
  100% { transform:translateX(110%); }
}

.vega-chip {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 9px;
  border-radius:999px;
  background:rgba(232,42,0,.10);
  border:1px solid rgba(232,42,0,.28);
  color:#fff;
  font-size:12px;
  font-weight:800;
}

.vega-chip::before {
  content:"";
  width:7px;
  height:7px;
  border-radius:999px;
  background:var(--vega-main);
  box-shadow:0 0 16px rgba(232,42,0,.9);
}

.vega-support-launcher {
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:9999;
  border:0;
  border-radius:999px;
  padding:13px 16px;
  background:var(--vega-main);
  color:#fff;
  font-weight:900;
  box-shadow:0 14px 35px rgba(232,42,0,.28);
  cursor:pointer;
}

.vega-support-panel {
  position:fixed;
  right:18px;
  bottom:76px;
  width:min(380px, calc(100vw - 36px));
  max-height:min(620px, calc(100vh - 110px));
  overflow:auto;
  z-index:9999;
  background:rgba(21,25,34,.98);
  border:1px solid var(--vega-border);
  border-radius:var(--vega-radius);
  box-shadow:var(--vega-shadow);
  padding:16px;
  display:none;
}

.vega-support-panel.open {
  display:block;
}

.vega-support-panel h3 {
  margin:0 0 8px;
}

.vega-support-panel p {
  color:var(--vega-muted);
  line-height:1.45;
}

.vega-support-actions {
  display:grid;
  gap:8px;
  margin-top:12px;
}

.vega-support-actions a,
.vega-support-actions button {
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:11px 12px;
  border-radius:13px;
  border:1px solid var(--vega-border);
  background:#0b0d12;
  color:#fff;
  text-decoration:none;
  font-weight:800;
  cursor:pointer;
}

.vega-support-actions span {
  color:var(--vega-muted);
  font-weight:600;
  font-size:12px;
}

@media (max-width: 780px) {
  header {
    padding:18px !important;
  }

  main {
    padding:16px !important;
  }

  .card {
    border-radius:14px !important;
  }

  table {
    display:block;
    width:100%;
    overflow-x:auto;
    white-space:nowrap;
  }

  .vega-support-launcher {
    right:12px;
    bottom:12px;
  }

  .vega-support-panel {
    right:12px;
    bottom:68px;
    width:calc(100vw - 24px);
  }
}

@media (prefers-reduced-motion: reduce) {
  * {
    animation:none !important;
    transition:none !important;
    scroll-behavior:auto !important;
  }
}


/* =========================================================
   SOURCE: public/hub/vega-global.css
   ========================================================= */
:root{
  --vega-primary:#1769ff;
  --vega-primary-2:#00a3ff;
  --vega-accent:#e82a00;

  --vega-bg:#f5f8ff;
  --vega-bg-soft:#eef5ff;
  --vega-surface:#ffffff;
  --vega-surface-2:#f8fbff;

  --vega-text:#071225;
  --vega-muted:#637083;
  --vega-border:#dce7f7;

  --vega-success:#16a36f;
  --vega-warning:#b7791f;
  --vega-danger:#d92d20;

  --vega-radius:18px;
  --vega-radius-lg:24px;
  --vega-shadow:0 18px 55px rgba(23,105,255,.10);
  --vega-shadow-soft:0 10px 35px rgba(15,23,42,.08);

  --vega-font:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}

html,
body{
  font-family:var(--vega-font) !important;
  background:
    radial-gradient(circle at 18% 0%, rgba(23,105,255,.10), transparent 28%),
    linear-gradient(180deg,#eef6ff 0%,#ffffff 280px,#f6f8fb 100%) !important;
  color:var(--vega-text) !important;
}

body{
  margin:0;
}

a{
  color:var(--vega-primary);
}

.vega-global-shell{
  min-height:100vh;
}

.vega-global-topbar{
  position:sticky;
  top:0;
  z-index:8000;
  background:rgba(255,255,255,.86);
  backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(23,105,255,.12);
}

.vega-global-topbar-inner{
  width:min(1240px,calc(100vw - 32px));
  margin:0 auto;
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}

.vega-global-brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
  color:var(--vega-text);
  font-weight:950;
}

.vega-global-logo{
  width:38px;
  height:38px;
  border-radius:14px;
  display:grid;
  place-items:center;
  color:#fff;
  background:linear-gradient(135deg,var(--vega-primary),var(--vega-primary-2));
  box-shadow:0 12px 30px rgba(23,105,255,.24);
  font-weight:950;
}

.vega-global-nav{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.vega-global-nav a,
.vega-global-nav button{
  border:1px solid transparent;
  background:transparent;
  color:var(--vega-text);
  text-decoration:none;
  border-radius:999px;
  padding:9px 12px;
  font-weight:850;
  font-size:14px;
  cursor:pointer;
}

.vega-global-nav a:hover,
.vega-global-nav button:hover,
.vega-global-nav a.is-active{
  background:rgba(23,105,255,.08);
  border-color:rgba(23,105,255,.16);
  color:var(--vega-primary);
}

.vega-global-nav .is-primary{
  background:var(--vega-primary);
  border-color:var(--vega-primary);
  color:#fff;
  box-shadow:0 12px 28px rgba(23,105,255,.22);
}

.vega-global-nav .is-primary:hover{
  background:#0f5ee8;
  color:#fff;
}

.vega-user-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 11px;
  border:1px solid var(--vega-border);
  background:#fff;
  border-radius:999px;
  color:var(--vega-muted);
  font-weight:850;
  font-size:13px;
}

.vega-page{
  width:min(1180px,calc(100vw - 32px));
  margin:28px auto 46px;
}

.vega-card,
.card,
.vega-ai-card{
  background:var(--vega-surface) !important;
  border:1px solid var(--vega-border) !important;
  border-radius:var(--vega-radius-lg) !important;
  box-shadow:var(--vega-shadow-soft) !important;
  color:var(--vega-text) !important;
}

.btn,
button.btn,
.vega-btn{
  border:1px solid var(--vega-border) !important;
  background:#fff !important;
  color:var(--vega-text) !important;
  border-radius:999px !important;
  padding:10px 14px !important;
  font-weight:900 !important;
  cursor:pointer !important;
}

.btn:hover,
button.btn:hover,
.vega-btn:hover{
  border-color:rgba(23,105,255,.28) !important;
  color:var(--vega-primary) !important;
}

.btn.primary,
button.btn.primary,
.vega-btn-primary,
button[type="submit"],
button.primary{
  background:var(--vega-primary) !important;
  border-color:var(--vega-primary) !important;
  color:#fff !important;
}

.btn.danger,
.vega-btn-danger{
  background:var(--vega-accent) !important;
  border-color:var(--vega-accent) !important;
  color:#fff !important;
}

input,
select,
textarea{
  background:#fff !important;
  color:var(--vega-text) !important;
  border:1px solid var(--vega-border) !important;
  border-radius:14px !important;
}

.muted,
.vega-muted{
  color:var(--vega-muted) !important;
}

.vega-ai-floating,
.support-float,
#vegaAiButton{
  position:fixed;
  right:20px;
  bottom:22px;
  z-index:9000;
}

.vega-ai-floating button,
.support-float button,
#vegaAiButton{
  background:var(--vega-primary) !important;
  border-color:var(--vega-primary) !important;
  color:#fff !important;
  box-shadow:0 18px 45px rgba(23,105,255,.28) !important;
}

@media(max-width:820px){
  .vega-global-topbar-inner{
    display:block;
    padding:12px 0;
  }

  .vega-global-nav{
    margin-top:10px;
    overflow:auto;
    flex-wrap:nowrap;
    padding-bottom:4px;
  }

  .vega-global-nav a,
  .vega-global-nav button{
    white-space:nowrap;
  }
}

/* VEGA_GLOBAL_COMPACT_PORTAL_STYLE_V1 */
.vega-global-topbar{
  background:rgba(255,255,255,.92) !important;
  border-bottom:1px solid rgba(23,105,255,.10) !important;
}

.vega-global-topbar-inner{
  min-height:68px !important;
}

.vega-global-brand{
  gap:12px !important;
}

.vega-global-logo{
  width:34px !important;
  height:34px !important;
  border-radius:12px !important;
  font-size:14px !important;
}

.vega-global-nav{
  gap:6px !important;
}

.vega-global-nav a,
.vega-global-nav button{
  padding:8px 11px !important;
  font-size:13px !important;
}

.vega-global-nav a.is-active{
  background:rgba(23,105,255,.10) !important;
  border-color:rgba(23,105,255,.22) !important;
  color:var(--vega-primary) !important;
}

.vega-user-chip{
  max-width:220px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

/* VEGA_FORCE_COMPACT_HEADER_AND_FOOTER_V1 */
.vega-global-topbar{
  position:sticky !important;
  top:0 !important;
  min-height:auto !important;
}

.vega-global-topbar-inner{
  min-height:58px !important;
  height:58px !important;
  padding:0 !important;
}

.vega-global-brand small{
  display:none !important;
}

.vega-global-logo{
  width:32px !important;
  height:32px !important;
  border-radius:11px !important;
}

.vega-global-brand{
  font-size:15px !important;
}

.vega-global-nav a,
.vega-global-nav button,
.vega-user-chip{
  font-size:12px !important;
  padding:7px 10px !important;
}

.vega-booking-shell{
  margin-top:22px !important;
}

/* Footer global */
.vega-global-footer{
  margin-top:60px;
  border-top:1px solid var(--vega-border);
  background:rgba(255,255,255,.72);
}

.vega-global-footer-inner{
  width:min(1180px,calc(100vw - 32px));
  margin:0 auto;
  padding:22px 0;
  display:flex;
  justify-content:space-between;
  gap:18px;
  align-items:center;
  color:var(--vega-muted);
  font-size:13px;
}

.vega-global-footer-links{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}

.vega-global-footer a{
  color:var(--vega-muted);
  text-decoration:none;
  font-weight:800;
}

.vega-global-footer a:hover{
  color:var(--vega-primary);
}

@media(max-width:820px){
  .vega-global-topbar-inner{
    height:auto !important;
    min-height:58px !important;
    padding:10px 0 !important;
  }

  .vega-global-footer-inner{
    display:block;
  }

  .vega-global-footer-links{
    margin-top:10px;
  }
}

/* VEGA_SUBSCRIPTION_INTEGRATED_UI_V1 */
.vega-subscription-shell{
  width:min(1120px, calc(100vw - 32px));
  margin:26px auto 50px;
}

.vega-subscription-hero{
  display:flex;
  justify-content:space-between;
  gap:22px;
  align-items:flex-start;
  padding:26px;
  border:1px solid var(--vega-border);
  border-radius:24px;
  background:
    linear-gradient(135deg, rgba(23,105,255,.055), rgba(255,255,255,.98) 45%),
    #fff;
  box-shadow:var(--vega-shadow-soft);
  margin-bottom:18px;
}

.vega-subscription-hero small,
.vega-subscription-section-head small{
  display:block;
  color:var(--vega-primary);
  font-size:12px;
  font-weight:950;
  text-transform:uppercase;
  letter-spacing:.055em;
  margin-bottom:6px;
}

.vega-subscription-hero h1{
  margin:0;
  font-size:30px;
  letter-spacing:-.04em;
}

.vega-subscription-hero p{
  margin:8px 0 0;
  color:var(--vega-muted);
}

.vega-subscription-status span{
  display:inline-flex;
  padding:9px 13px;
  border-radius:999px;
  color:var(--vega-primary);
  background:rgba(23,105,255,.08);
  border:1px solid rgba(23,105,255,.18);
  font-weight:900;
}

.vega-subscription-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}

.vega-subscription-kpi{
  padding:20px;
  border:1px solid var(--vega-border);
  border-radius:20px;
  background:#fff;
  box-shadow:var(--vega-shadow-soft);
}

.vega-subscription-kpi strong{
  display:block;
  font-size:26px;
  letter-spacing:-.04em;
  margin-bottom:8px;
}

.vega-subscription-kpi span{
  color:var(--vega-muted);
}

.vega-subscription-layout{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:18px;
  margin-bottom:18px;
}

.vega-subscription-panel{
  padding:24px;
  border:1px solid var(--vega-border);
  border-radius:24px;
  background:#fff;
  box-shadow:var(--vega-shadow-soft);
}

.vega-subscription-section-head h2{
  margin:0;
  font-size:24px;
  letter-spacing:-.035em;
}

.vega-subscription-section-head p{
  margin:8px 0 0;
  color:var(--vega-muted);
}

.vega-subscription-lines{
  display:grid;
  gap:10px;
  margin-top:18px;
}

.vega-subscription-line{
  display:flex;
  gap:10px;
  align-items:center;
  padding:13px 14px;
  border:1px solid rgba(23,105,255,.13);
  border-radius:16px;
  background:#f8fbff;
}

.vega-subscription-line span{
  color:var(--vega-primary);
  font-weight:950;
}

.vega-subscription-line strong{
  font-size:14px;
}

.vega-subscription-mini-kpis{
  display:grid;
  gap:10px;
  margin-top:18px;
}

.vega-subscription-mini-kpis div{
  padding:14px;
  border:1px solid rgba(23,105,255,.13);
  border-radius:16px;
  background:#f8fbff;
}

.vega-subscription-mini-kpis strong{
  display:block;
  font-size:20px;
  margin-bottom:4px;
}

.vega-subscription-mini-kpis span{
  color:var(--vega-muted);
}

.vega-subscription-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:18px;
}

.vega-subscription-upsells{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-top:18px;
}

.vega-subscription-soft-card{
  padding:18px;
  border:1px solid rgba(23,105,255,.13);
  border-radius:18px;
  background:#f8fbff;
}

.vega-subscription-soft-card h3{
  margin:0 0 8px;
}

.vega-subscription-soft-card p{
  margin:0;
  color:var(--vega-muted);
}

@media(max-width:900px){
  .vega-subscription-hero,
  .vega-subscription-layout{
    display:block;
  }

  .vega-subscription-grid,
  .vega-subscription-upsells{
    grid-template-columns:1fr;
  }

  .vega-subscription-status{
    margin-top:14px;
  }
}

/* VEGA_HEADER_FORCE_HORIZONTAL_V2 */
.vega-global-topbar-inner{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:14px !important;
  min-height:56px !important;
  height:56px !important;
}

.vega-global-nav{
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:6px !important;
  flex-wrap:nowrap !important;
}

.vega-global-nav a,
.vega-global-nav button,
.vega-user-chip{
  white-space:nowrap !important;
}

@media(max-width:900px){
  .vega-global-topbar-inner{
    height:auto !important;
    min-height:56px !important;
    padding:8px 0 !important;
    align-items:flex-start !important;
  }

  .vega-global-nav{
    overflow:auto !important;
    max-width:100% !important;
  }
}

/* VEGA_ASSISTANT_CORPORATE_BUTTON_V2 */
#vegaAiButton{
  display:flex !important;
  align-items:center !important;
  gap:9px !important;
  background:linear-gradient(135deg,var(--vega-primary,#1769ff),#00a3ff) !important;
  color:#fff !important;
  border:0 !important;
  border-radius:999px !important;
  box-shadow:0 18px 45px rgba(23,105,255,.28) !important;
}

.vega-ai-logo-mark{
  display:inline-grid;
  place-items:center;
  width:28px;
  height:28px;
  border-radius:10px;
  background:rgba(255,255,255,.18);
  font-size:12px;
  font-weight:950;
}

.support-float,
.support-panel,
#supportPanel,
.vega-ai-floating:not(#vegaAiButton){
  display:none !important;
}

/* VEGA_USER_DROPDOWN_V1 */
.vega-user-menu{
  position:relative;
}

.vega-user-button{
  display:flex !important;
  align-items:center !important;
  gap:8px !important;
  background:#fff !important;
  border:1px solid var(--vega-border,#dce7f7) !important;
  border-radius:999px !important;
  padding:6px 9px !important;
  cursor:pointer !important;
  color:var(--vega-text,#071225) !important;
  font-weight:850 !important;
}

.vega-user-avatar{
  width:28px;
  height:28px;
  border-radius:999px;
  display:grid;
  place-items:center;
  background:linear-gradient(135deg,var(--vega-primary,#1769ff),#00a3ff);
  color:#fff;
  font-size:12px;
  font-weight:950;
}

.vega-user-dropdown{
  display:none;
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:220px;
  padding:8px;
  border:1px solid var(--vega-border,#dce7f7);
  border-radius:18px;
  background:#fff;
  box-shadow:0 24px 80px rgba(15,23,42,.16);
  z-index:9999;
}

.vega-user-dropdown.open{
  display:grid;
  gap:4px;
}

.vega-user-dropdown a,
.vega-user-dropdown button{
  display:block !important;
  width:100% !important;
  text-align:left !important;
  padding:10px 11px !important;
  border-radius:12px !important;
  border:0 !important;
  background:#fff !important;
  color:var(--vega-text,#071225) !important;
  text-decoration:none !important;
  font-weight:800 !important;
  cursor:pointer !important;
}

.vega-user-dropdown a:hover,
.vega-user-dropdown button:hover{
  background:#f8fbff !important;
  color:var(--vega-primary,#1769ff) !important;
}


/* =========================================================
   SOURCE: public/assets/hub/vegahub-product-final.css
   ========================================================= */
:root{
  --vh-primary:#2563eb;
  --vh-primary-hover:#1d4ed8;
  --vh-text:#0f172a;
  --vh-muted:#64748b;
  --vh-border:#dbe4f0;
  --vh-soft:#f8fafc;
  --vh-danger:#dc2626;
  --vh-radius:14px;
}

/* Base */
*{box-sizing:border-box}

body{
  color:var(--vh-text);
}

button,
input,
select,
textarea{
  font:inherit;
}

button,
.vh-btn{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:1px solid transparent;
  border-radius:12px;
  padding:0 16px;
  font-size:14px;
  font-weight:750;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
  transition:
    background-color .16s ease,
    border-color .16s ease,
    color .16s ease,
    box-shadow .16s ease,
    transform .16s ease;
}

button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:3px solid rgba(37,99,235,.22);
  outline-offset:2px;
}

.vh-btn-primary,
button.primary{
  background:var(--vh-primary);
  border-color:var(--vh-primary);
  color:#fff;
}

.vh-btn-primary:hover,
button.primary:hover{
  background:var(--vh-primary-hover);
}

.vh-btn-secondary{
  background:#fff;
  border-color:#bfdbfe;
  color:var(--vh-primary);
}

.vh-btn-secondary:hover{
  background:#eff6ff;
}

.vh-btn-ghost{
  background:transparent;
  color:var(--vh-text);
}

.vh-btn-ghost:hover{
  background:#f1f5f9;
}

.vh-btn-danger{
  background:#fff;
  border-color:#fecaca;
  color:var(--vh-danger);
}

.vh-btn-danger:hover{
  background:#fef2f2;
}

.vh-icon-btn{
  width:42px;
  min-width:42px;
  padding:0;
}

label{
  display:grid;
  gap:7px;
  color:#334155;
  font-size:13px;
  font-weight:700;
}

input:not([type="checkbox"]):not([type="radio"]),
select,
textarea{
  width:100%;
  min-height:44px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#fff;
  color:var(--vh-text);
  padding:0 14px;
  font-size:15px;
  font-weight:500;
}

textarea{
  min-height:110px;
  padding-top:12px;
  resize:vertical;
}

input:focus,
select:focus,
textarea:focus{
  border-color:var(--vh-primary);
  box-shadow:0 0 0 4px rgba(37,99,235,.12);
  outline:none;
}

.vh-field-error{
  color:var(--vh-danger);
  font-size:12px;
  font-weight:650;
}

/* Header */
.vh-topbar{
  position:sticky;
  top:0;
  z-index:9000;
  background:#fff;
  border-bottom:1px solid #e2e8f0;
  box-shadow:0 8px 28px rgba(15,23,42,.05);
}

.vh-topbar-inner{
  width:min(1320px,calc(100% - 32px));
  min-height:68px;
  margin:auto;
  display:flex;
  align-items:center;
  gap:18px;
}

.vh-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  color:var(--vh-text);
  text-decoration:none;
  font-weight:850;
  white-space:nowrap;
}

.vh-brand-mark{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:var(--vh-primary);
  color:#fff;
}

.vh-menu{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
}

.vh-nav-group{
  position:relative;
}

.vh-nav-toggle{
  min-height:40px;
  padding:0 12px;
  border:0;
  background:transparent;
  color:var(--vh-text);
  border-radius:11px;
}

.vh-nav-toggle:hover,
.vh-nav-toggle[aria-expanded="true"]{
  background:#eff6ff;
  color:var(--vh-primary);
}

.vh-nav-chevron{
  width:14px;
  height:14px;
  transition:transform .16s ease;
}

.vh-nav-toggle[aria-expanded="true"] .vh-nav-chevron{
  transform:rotate(180deg);
}

.vh-nav-panel{
  position:absolute;
  top:calc(100% + 9px);
  left:0;
  width:280px;
  display:none;
  padding:8px;
  border:1px solid var(--vh-border);
  border-radius:16px;
  background:#fff;
  box-shadow:0 24px 70px rgba(15,23,42,.18);
  z-index:12000;
}

.vh-nav-panel.open{
  display:grid;
}

.vh-nav-panel a,
.vh-nav-panel button{
  width:100%;
  min-height:auto;
  display:grid;
  justify-content:stretch;
  gap:3px;
  padding:11px 12px;
  border:0;
  border-radius:11px;
  background:transparent;
  color:var(--vh-text);
  text-align:left;
  text-decoration:none;
}

.vh-nav-panel a:hover,
.vh-nav-panel button:hover{
  background:#eff6ff;
  color:var(--vh-primary);
}

.vh-nav-item-title{
  font-size:14px;
  font-weight:800;
}

.vh-nav-item-description{
  color:var(--vh-muted);
  font-size:12px;
  font-weight:500;
}

.vh-actions{
  display:flex;
  align-items:center;
  gap:8px;
}

.vh-user-button{
  min-height:42px;
  border:1px solid #bfdbfe;
  background:#fff;
  color:var(--vh-text);
}

.vh-avatar{
  width:28px;
  height:28px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:var(--vh-primary);
  color:#fff;
  font-size:12px;
}

/* Layout */
.vh-page{
  width:min(1180px,calc(100% - 32px));
  margin:auto;
  padding:32px 0 80px;
}

.vh-page-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:24px;
}

.vh-page-header h1{
  margin:0;
  font-size:clamp(30px,4vw,44px);
  letter-spacing:-.045em;
}

.vh-page-header p{
  max-width:720px;
  margin:8px 0 0;
  color:var(--vh-muted);
  line-height:1.55;
}

.vh-card{
  background:#fff;
  border:1px solid var(--vh-border);
  border-radius:20px;
  padding:20px;
  box-shadow:0 14px 42px rgba(15,23,42,.045);
}

.vh-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}

.vh-stat{
  font-size:32px;
  font-weight:850;
  letter-spacing:-.04em;
}

.vh-muted{
  color:var(--vh-muted);
}

.vh-actions-row{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:10px;
}

.vh-empty{
  padding:30px 18px;
  color:var(--vh-muted);
  text-align:center;
}

.vh-list{
  display:grid;
  gap:10px;
}

.vh-list-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 0;
  border-bottom:1px solid #e2e8f0;
}

.vh-list-item:last-child{
  border-bottom:0;
}

.vh-list-title{
  font-weight:750;
}

.vh-list-meta{
  margin-top:3px;
  color:var(--vh-muted);
  font-size:13px;
}

/* Tabs */
.vh-tabs{
  display:flex;
  gap:4px;
  overflow-x:auto;
  margin-bottom:18px;
  padding:4px;
  border:1px solid var(--vh-border);
  border-radius:14px;
  background:#fff;
}

.vh-tab{
  min-height:38px;
  border:0;
  background:transparent;
  color:#475569;
  white-space:nowrap;
}

.vh-tab.active{
  background:#eff6ff;
  color:var(--vh-primary);
}

.vh-tab-panel{
  display:none;
}

.vh-tab-panel.active{
  display:block;
}

/* Modales manuales, nunca automáticos */
.vh-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:20000;
  display:none;
  place-items:center;
  padding:20px;
  background:rgba(15,23,42,.62);
  backdrop-filter:blur(4px);
}

.vh-modal-backdrop.open{
  display:grid;
}

.vh-modal{
  width:min(680px,100%);
  max-height:calc(100vh - 40px);
  overflow:auto;
  border-radius:20px;
  background:#fff;
  box-shadow:0 32px 110px rgba(15,23,42,.35);
}

.vh-modal-header{
  position:sticky;
  top:0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:18px 20px;
  border-bottom:1px solid #e2e8f0;
  background:#fff;
}

.vh-modal-body{
  padding:20px;
}

/* Ocultar ruido */
.vh-ai-strip,
.vh-assist-box,
.vh-ux-helper,
.vh-raw-output,
.jv-raw{
  display:none !important;
}

.debug-only{
  display:none;
}

body.vh-role-admin .debug-only{
  display:block;
}

/* WhatsApp */
.wa-shell{
  width:min(1100px,calc(100% - 24px));
  height:calc(100vh - 110px);
  min-height:620px;
  margin:20px auto;
  display:grid;
  grid-template-columns:310px minmax(0,1fr);
  overflow:hidden;
  border:1px solid #cbd5e1;
  border-radius:18px;
  background:#fff;
  box-shadow:0 24px 80px rgba(15,23,42,.15);
}

.wa-sidebar{
  padding:20px;
  border-right:1px solid #d1d7db;
  background:#f7f8fa;
}

.wa-sidebar h2{
  margin:0;
  font-size:18px;
}

.wa-sidebar p{
  color:#667781;
  font-size:13px;
  line-height:1.5;
}

.wa-info-item{
  padding:12px 0;
  border-bottom:1px solid #e2e8f0;
}

.wa-main{
  min-width:0;
  display:grid;
  grid-template-rows:64px minmax(0,1fr) auto;
}

.wa-header{
  display:flex;
  align-items:center;
  gap:12px;
  padding:0 18px;
  background:#f0f2f5;
  border-bottom:1px solid #d1d7db;
}

.wa-avatar{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#008069;
  color:#fff;
  font-weight:800;
}

.wa-header-name{
  font-weight:750;
}

.wa-header-status{
  color:#667781;
  font-size:12px;
}

.wa-chat{
  display:flex;
  flex-direction:column;
  gap:8px;
  overflow:auto;
  padding:22px clamp(14px,6vw,72px);
  background-color:#efeae2;
  background-image:
    radial-gradient(rgba(17,27,33,.035) 1px,transparent 1px);
  background-size:18px 18px;
}

.wa-message{
  max-width:min(76%,620px);
  padding:8px 10px 6px;
  border-radius:9px;
  box-shadow:0 1px 1px rgba(11,20,26,.12);
  line-height:1.42;
}

.wa-message.bot{
  align-self:flex-start;
  background:#fff;
  border-top-left-radius:2px;
}

.wa-message.user{
  align-self:flex-end;
  background:#d9fdd3;
  border-top-right-radius:2px;
}

.wa-message-meta{
  display:flex;
  justify-content:flex-end;
  gap:4px;
  margin-top:3px;
  color:#667781;
  font-size:10px;
}

.wa-chips{
  align-self:flex-start;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  max-width:80%;
}

.wa-chip{
  min-height:34px;
  border:1px solid #00a884;
  border-radius:999px;
  background:#fff;
  color:#008069;
  padding:0 12px;
  font-size:13px;
}

.wa-compose{
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 14px;
  background:#f0f2f5;
}

.wa-compose input{
  min-height:42px;
  border:0;
  border-radius:21px;
  padding:0 16px;
}

.wa-send{
  width:44px;
  min-width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:50%;
  background:#00a884;
  color:#fff;
}

.wa-reset{
  margin-left:auto;
  border:0;
  background:transparent;
  color:#54656f;
}

/* Reserva pública */
.booking-public-body{
  min-height:100vh;
  margin:0;
  background:#f4f7fb;
}

.booking-public{
  width:min(760px,calc(100% - 24px));
  margin:auto;
  padding:36px 0 70px;
}

.booking-public-card{
  margin-bottom:14px;
  padding:24px;
  border:1px solid var(--vh-border);
  border-radius:20px;
  background:#fff;
  box-shadow:0 16px 48px rgba(15,23,42,.06);
}

.booking-steps{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:8px;
  margin-bottom:20px;
}

.booking-step{
  height:5px;
  border-radius:999px;
  background:#e2e8f0;
}

.booking-step.active{
  background:var(--vh-primary);
}

.booking-slot-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:8px;
}

.booking-slot{
  min-height:42px;
  border:1px solid #bfdbfe;
  background:#fff;
  color:var(--vh-primary);
}

.booking-slot.selected{
  background:var(--vh-primary);
  color:#fff;
}

/* Responsive */
@media(max-width:1050px){
  .vh-topbar-inner{
    flex-wrap:wrap;
    padding:10px 0;
  }

  .vh-menu{
    order:3;
    width:100%;
    overflow-x:auto;
  }

  .vh-actions{
    margin-left:auto;
  }
}

@media(max-width:820px){
  .vh-grid{
    grid-template-columns:1fr;
  }

  .vh-page-header{
    display:block;
  }

  .wa-shell{
    width:100%;
    height:calc(100vh - 68px);
    min-height:0;
    margin:0;
    grid-template-columns:1fr;
    border:0;
    border-radius:0;
  }

  .wa-sidebar{
    display:none;
  }

  .booking-slot-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media(max-width:560px){
  .vh-page{
    width:min(100% - 20px,1180px);
    padding-top:20px;
  }

  .vh-actions > :not(.vh-user-button){
    display:none;
  }

  .vh-nav-panel{
    position:fixed;
    top:72px;
    left:10px;
    right:10px;
    width:auto;
  }

  .booking-slot-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* =========================================================
   INLINE MIGRATED: public/hub/admin-booking-notifications.html #1
   ========================================================= */
@scope (.vh-route-admin-booking-notifications) {
:root {
      --bg:#0d0f14;
      --panel:#151922;
      --panel2:#1d2330;
      --text:#f5f5f5;
      --muted:#aab1c2;
      --main:#e82a00;
      --border:rgba(255,255,255,.08);
      --ok:#3ddc97;
      --warn:#ffcc66;
      --bad:#ff667a;
    }

    * { box-sizing:border-box; }

    body {
      margin:0;
      font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
      background:var(--bg);
      color:var(--text);
    }

    header {
      padding:24px;
      background:#11151d;
      border-bottom:1px solid var(--border);
    }

    main {
      max-width:1200px;
      margin:auto;
      padding:24px;
    }

    .card {
      background:var(--panel);
      border:1px solid var(--border);
      border-radius:16px;
      padding:16px;
      margin-bottom:16px;
    }

    .grid {
      display:grid;
      gap:16px;
      grid-template-columns:repeat(3,minmax(0,1fr));
    }

    select {
      width:100%;
      padding:11px;
      border-radius:12px;
      border:1px solid var(--border);
      background:#0b0d12;
      color:var(--text);
      margin-top:6px;
    }

    label {
      font-weight:800;
      display:block;
    }

    table {
      width:100%;
      border-collapse:collapse;
      margin-top:12px;
    }

    th,td {
      padding:10px;
      border-bottom:1px solid var(--border);
      text-align:left;
      vertical-align:top;
    }

    th {
      color:var(--muted);
      font-size:13px;
    }

    .pill {
      display:inline-flex;
      padding:5px 8px;
      border-radius:999px;
      border:1px solid var(--border);
      color:var(--muted);
      font-size:13px;
    }

    .pending { color:var(--warn); }
    .sent { color:var(--ok); }
    .failed { color:var(--bad); }
    .dismissed { color:var(--muted); }

    button,a.btn {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:9px 11px;
      border-radius:11px;
      border:0;
      background:var(--main);
      color:#fff;
      font-weight:850;
      cursor:pointer;
      text-decoration:none;
      margin:3px;
    }

    button.secondary,a.secondary {
      background:var(--panel2);
      border:1px solid var(--border);
    }

    .muted { color:var(--muted); }

    @media(max-width:900px) {
      .grid { grid-template-columns:1fr; }
      table { display:block; overflow-x:auto; }
    }
}



/* =========================================================
   INLINE MIGRATED: public/hub/admin-booking-requests.html #1
   ========================================================= */
@scope (.vh-route-admin-booking-requests) {
:root {
      --bg:#0d0f14;
      --panel:#151922;
      --panel2:#1d2330;
      --text:#f5f5f5;
      --muted:#aab1c2;
      --main:#e82a00;
      --border:rgba(255,255,255,.08);
      --ok:#3ddc97;
      --warn:#ffcc66;
      --bad:#ff667a;
    }

    * { box-sizing:border-box; }

    body {
      margin:0;
      font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
      background:var(--bg);
      color:var(--text);
    }

    header {
      padding:24px;
      background:#11151d;
      border-bottom:1px solid var(--border);
    }

    main {
      max-width:1250px;
      margin:auto;
      padding:24px;
    }

    .card {
      background:var(--panel);
      border:1px solid var(--border);
      border-radius:16px;
      padding:16px;
      margin-bottom:16px;
    }

    .grid {
      display:grid;
      gap:16px;
    }

    .grid-3 {
      grid-template-columns:repeat(3,minmax(0,1fr));
    }

    input, select {
      width:100%;
      padding:11px;
      border-radius:12px;
      border:1px solid var(--border);
      background:#0b0d12;
      color:var(--text);
      margin-top:6px;
    }

    label {
      font-weight:800;
      display:block;
    }

    table {
      width:100%;
      border-collapse:collapse;
      margin-top:12px;
    }

    th, td {
      padding:10px;
      border-bottom:1px solid var(--border);
      text-align:left;
      vertical-align:top;
    }

    th {
      color:var(--muted);
      font-size:13px;
    }

    .pill {
      display:inline-flex;
      padding:5px 8px;
      border-radius:999px;
      border:1px solid var(--border);
      color:var(--muted);
      font-size:13px;
    }

    .pending { color:var(--warn); }
    .confirmed { color:var(--ok); }
    .rejected, .cancelled { color:var(--bad); }

    button, a.btn {
      display:inline-flex;
      align-items:center;
      justify-content:center;
      padding:9px 11px;
      border-radius:11px;
      border:0;
      background:var(--main);
      color:#fff;
      font-weight:850;
      cursor:pointer;
      text-decoration:none;
      margin:3px;
    }

    button.secondary, a.secondary {
      background:var(--panel2);
      border:1px solid var(--border);
    }

    .muted { color:var(--muted); }

    @media(max-width:900px) {
      .grid-3 { grid-template-columns:1fr; }
      table { display:block; overflow-x:auto; }
    }
}



/* =========================================================
   INLINE MIGRATED: public/hub/admin-requests.html #1
   ========================================================= */
@scope (.vh-route-admin-requests) {
:root {
      --bg:#0d0f14;
      --panel:#151922;
      --panel2:#1d2330;
      --text:#f5f5f5;
      --muted:#aab1c2;
      --main:#e82a00;
      --border:rgba(255,255,255,.08);
      --ok:#3ddc97;
      --warn:#ffcc66;
      --bad:#ff667a;
    }

    * { box-sizing:border-box; }

    body {
      margin:0;
      font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
      background:var(--bg);
      color:var(--text);
    }

    header {
      padding:24px;
      border-bottom:1px solid var(--border);
      background:#11151d;
    }

    main {
      max-width:1200px;
      margin:0 auto;
      padding:24px;
    }

    h1, h2, h3 { margin-top:0; }

    .grid {
      display:grid;
      gap:14px;
    }

    .card {
      background:var(--panel);
      border:1px solid var(--border);
      border-radius:16px;
      padding:16px;
    }

    .row {
      display:grid;
      grid-template-columns:160px 1fr 160px 160px;
      gap:12px;
      align-items:start;
    }

    .pill {
      display:inline-flex;
      padding:6px 9px;
      border-radius:999px;
      border:1px solid var(--border);
      color:var(--muted);
      font-size:13px;
      margin:2px;
    }

    .open { color:var(--warn); }
    .done, .closed { color:var(--ok); }
    .new, .pending { color:var(--bad); }

    button, select, input {
      background:var(--panel2);
      color:var(--text);
      border:1px solid var(--border);
      border-radius:10px;
      padding:9px 11px;
    }

    button {
      cursor:pointer;
      background:var(--main);
      border:0;
      font-weight:800;
    }

    .muted { color:var(--muted); }

    @media(max-width:900px) {
      .row {
        grid-template-columns:1fr;
      }
    }
}



/* =========================================================
   INLINE MIGRATED: public/hub/admin.html #1
   ========================================================= */
@scope (.vh-route-admin) {
:root{
  --bg:#edf5ff;
  --bg2:#f8fbff;
  --surface:#ffffff;
  --surface2:#f5f8ff;
  --text:#101828;
  --muted:#667085;
  --border:rgba(15,23,42,.12);
  --primary:#2563eb;
  --primary2:#0ea5e9;
  --green:#16a34a;
  --amber:#d97706;
  --red:#dc2626;
  --shadow:0 20px 60px rgba(15,23,42,.10);
  --radius:22px;
}
*{box-sizing:border-box}
html,body{
  margin:0;
  min-height:100%;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.16), transparent 34rem),
    radial-gradient(circle at top right, rgba(14,165,233,.12), transparent 30rem),
    linear-gradient(135deg,#eaf2ff 0%,#f8fbff 54%,#f7f4ff 100%);
}
button,input,select,textarea{font:inherit}
a{color:inherit}
.app{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}
.sidebar{
  position:sticky;top:0;height:100vh;padding:22px 18px;
  background:rgba(255,255,255,.92);border-right:1px solid var(--border);backdrop-filter:blur(16px)
}
.brand{display:flex;gap:10px;align-items:center;margin-bottom:28px}
.logo{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;color:#fff;font-weight:950;background:linear-gradient(135deg,var(--primary),var(--primary2));box-shadow:0 14px 32px rgba(37,99,235,.23)}
.brand strong{display:block;font-size:18px}.brand span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.nav-title{margin:20px 0 8px;color:#98a2b3;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.nav{display:grid;gap:6px}
.nav button,.nav a{
  width:100%;min-height:40px;padding:10px 12px;border-radius:13px;border:1px solid transparent;background:transparent;
  color:var(--text);text-align:left;text-decoration:none;font-size:14px;font-weight:850;cursor:pointer
}
.nav button:hover,.nav button.active,.nav a:hover{background:#f1f6ff;border-color:rgba(37,99,235,.22);color:var(--primary)}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{
  position:sticky;top:0;z-index:10;min-height:76px;padding:16px 38px;display:flex;align-items:center;justify-content:space-between;
  background:rgba(248,251,255,.86);border-bottom:1px solid var(--border);backdrop-filter:blur(16px)
}
.topbar strong{display:block;font-size:17px}.topbar span{display:block;color:var(--muted);font-size:12px;margin-top:3px}
.role{display:flex;align-items:center;gap:10px}.pill{padding:8px 11px;border-radius:999px;background:#fff;border:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:850}
.avatar{width:34px;height:34px;border-radius:999px;display:grid;place-items:center;background:linear-gradient(135deg,var(--primary),var(--primary2));color:#fff;font-weight:950}
.content{width:100%;max-width:1560px;margin:0 auto;padding:34px 40px;flex:1}
.footer{padding:24px 40px 32px;text-align:center;color:var(--muted);font-size:12px}
.hero{position:relative;overflow:hidden;border:1px solid var(--border);border-radius:28px;background:radial-gradient(circle at top left, rgba(37,99,235,.12), transparent 30rem),linear-gradient(135deg,#fff 0%,#f7fbff 100%);box-shadow:var(--shadow);padding:32px;margin-bottom:22px}
.badge{display:inline-flex;padding:7px 11px;border-radius:999px;border:1px solid rgba(37,99,235,.22);background:rgba(37,99,235,.09);color:var(--primary);font-size:12px;font-weight:850}
h1{margin:14px 0 10px;font-size:clamp(34px,4vw,58px);line-height:1;letter-spacing:-.055em}
h2{margin:0 0 16px;font-size:26px;letter-spacing:-.035em}
h3{margin:0 0 10px;font-size:18px}
p{color:var(--muted);line-height:1.6}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.card{background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:22px;box-shadow:0 16px 45px rgba(15,23,42,.07);padding:20px}
.card.featured{border-color:rgba(37,99,235,.35);box-shadow:0 18px 55px rgba(37,99,235,.12)}
.metric{font-size:34px;font-weight:950;letter-spacing:-.04em}.small{color:var(--muted);font-size:12px}
.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.btn,button.primary,button.secondary{
  min-height:42px;padding:11px 15px;border-radius:13px;border:1px solid var(--border);background:#fff;color:var(--text);
  text-decoration:none;font-weight:850;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:0 8px 22px rgba(15,23,42,.05)
}
.btn.primary,button.primary{background:linear-gradient(135deg,var(--primary),var(--primary2));border-color:var(--primary);color:#fff;box-shadow:0 12px 28px rgba(37,99,235,.18)}
.btn.danger,button.danger{background:var(--red);border-color:var(--red);color:#fff}
input,select,textarea{width:100%;min-height:44px;padding:12px 13px;border-radius:13px;border:1px solid var(--border);background:#fff;color:var(--text)}
textarea{min-height:110px;resize:vertical}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.full{grid-column:1/-1}
.result{margin-top:12px;padding:12px;border-radius:13px;background:#f8fbff;border:1px solid var(--border);color:var(--muted);white-space:pre-wrap;font-size:13px;max-height:360px;overflow:auto}
.table{width:100%;border-collapse:collapse;background:#fff;border-radius:16px;overflow:hidden}
.table th,.table td{padding:12px;border-bottom:1px solid var(--border);text-align:left;color:var(--muted);font-size:13px}
.table th{background:#f3f7ff;color:var(--text);font-weight:900}
.status{display:inline-flex;padding:5px 8px;border-radius:999px;font-size:12px;font-weight:850;background:#f1f6ff;color:var(--primary)}
.status.ok{background:#ecfdf3;color:var(--green)}.status.warn{background:#fffbeb;color:var(--amber)}.status.bad{background:#fef2f2;color:var(--red)}
.chip{display:inline-flex;padding:7px 10px;border:1px solid var(--border);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;margin:4px 4px 0 0}
.section{display:none}.section.active{display:block}
.empty{padding:28px;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:18px;background:#fff}
.mobile-toggle{display:none}
@media(max-width:1200px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
.login-screen{
  position:fixed;
  inset:0;
  z-index:100;
  display:grid;
  place-items:center;
  padding:24px;
  background:
    radial-gradient(circle at top left, rgba(37,99,235,.18), transparent 34rem),
    radial-gradient(circle at bottom right, rgba(14,165,233,.13), transparent 30rem),
    linear-gradient(135deg,#eaf2ff 0%,#f8fbff 54%,#f7f4ff 100%);
}

.login-card{
  width:min(520px,100%);
  padding:30px;
  border-radius:28px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.94);
  box-shadow:var(--shadow);
}

@media(max-width:860px){
  .app{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;width:280px;z-index:50;transform:translateX(-110%);transition:.2s ease}.sidebar.open{transform:translateX(0)}
  .mobile-toggle{display:inline-flex}.content{padding:22px}.topbar{padding:14px 20px}.grid,.grid2,.grid3,.form-grid{grid-template-columns:1fr}
}
}



/* =========================================================
   INLINE MIGRATED: public/hub/app-generic.html #1
   ========================================================= */
@scope (.vh-route-app-generic) {
:root{--bg:#0d0f14;--panel:#151922;--text:#f5f5f5;--muted:#aab1c2;--main:#e82a00;--border:rgba(255,255,255,.08)}
    body{margin:0;font-family:system-ui,sans-serif;background:var(--bg);color:var(--text)}
    header{padding:24px;background:#11151d;border-bottom:1px solid var(--border)}
    main{max-width:900px;margin:auto;padding:24px}.card{background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:16px}.muted{color:var(--muted)}
    button,a.btn{display:inline-flex;padding:10px 13px;border-radius:12px;background:var(--main);color:#fff;text-decoration:none;border:0;font-weight:850;cursor:pointer;margin:4px}
}



/* =========================================================
   INLINE MIGRATED: public/hub/assistant.html #1
   ========================================================= */
@scope (.vh-route-assistant) {
:root{--bg:#07111f;--card:#0e1b2d;--text:#eaf2ff;--muted:#98a9c3;--main:#2563eb;--border:rgba(255,255,255,.1)}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui}
header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between}
main{max-width:1050px;margin:auto;padding:24px}
.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:18px;margin-bottom:18px}
textarea,button{width:100%;border-radius:10px;border:1px solid var(--border);padding:12px;background:#07111f;color:var(--text)}
button{background:var(--main);font-weight:800;cursor:pointer}
pre{background:#050b14;border-radius:12px;padding:14px;white-space:pre-wrap}
.muted{color:var(--muted)}
a{color:#fff}
}



/* =========================================================
   INLINE MIGRATED: public/hub/billing.html #1
   ========================================================= */
@scope (.vh-route-billing) {
.shell{max-width:1180px;margin:0 auto;padding:34px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:24px;padding:24px;box-shadow:0 18px 55px rgba(15,23,42,.07)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
pre{white-space:pre-wrap}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/book.html #1
   ========================================================= */
@scope (.vh-route-book) {
:root {
      --bg:#0d0f14;
      --panel:#151922;
      --text:#f5f5f5;
      --muted:#aab1c2;
      --main:#e82a00;
      --border:rgba(255,255,255,.08);
      --ok:#3ddc97;
      --bad:#ff667a;
      --warn:#ffcc66;
    }

    body {
      margin:0;
      font-family:system-ui,sans-serif;
      background:var(--bg);
      color:var(--text);
    }

    header {
      padding:24px;
      background:#11151d;
      border-bottom:1px solid var(--border);
    }

    main {
      max-width:860px;
      margin:auto;
      padding:24px;
    }

    .card {
      background:var(--panel);
      border:1px solid var(--border);
      border-radius:16px;
      padding:16px;
      margin-bottom:16px;
    }

    label {
      display:block;
      margin-top:10px;
      font-weight:800;
    }

    input, select, textarea {
      width:100%;
      padding:11px;
      border-radius:12px;
      border:1px solid var(--border);
      background:#0b0d12;
      color:var(--text);
      margin-top:5px;
      box-sizing:border-box;
    }

    button {
      padding:11px 14px;
      border-radius:12px;
      border:0;
      background:var(--main);
      color:#fff;
      font-weight:850;
      margin-top:14px;
      cursor:pointer;
    }

    button.secondary {
      background:#1d2330;
      border:1px solid var(--border);
    }

    button[disabled] {
      opacity:.45;
      cursor:not-allowed;
    }

    .slots {
      display:grid;
      grid-template-columns:repeat(auto-fill,minmax(92px,1fr));
      gap:8px;
      margin-top:10px;
    }

    .slot {
      border:1px solid var(--border);
      background:#0b0d12;
      color:#fff;
      padding:10px;
      border-radius:12px;
      cursor:pointer;
      font-weight:850;
      text-align:center;
    }

    .slot.active {
      background:var(--main);
      border-color:var(--main);
    }

    .slot.disabled {
      opacity:.35;
      cursor:not-allowed;
      text-decoration:line-through;
    }

    .muted { color:var(--muted); }
    .ok { color:var(--ok); }
    .bad { color:var(--bad); }
    .warn { color:var(--warn); }

    .summary {
      display:grid;
      grid-template-columns:repeat(3,minmax(0,1fr));
      gap:10px;
    }

    .summary div {
      background:#0b0d12;
      border:1px solid var(--border);
      border-radius:12px;
      padding:10px;
    }

    @media(max-width:780px) {
      main { padding:16px; }
      .summary { grid-template-columns:1fr; }
      .slots { grid-template-columns:repeat(2,minmax(0,1fr)); }
    }
}



/* =========================================================
   INLINE MIGRATED: public/hub/client-dashboard.html #1
   ========================================================= */
@scope (.vh-route-client-dashboard) {
.shell{max-width:1080px;margin:0 auto;padding:32px 20px 80px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;box-shadow:0 16px 50px rgba(15,23,42,.06)}
@media(max-width:800px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/client.html #1
   ========================================================= */
@scope (.vh-route-client) {
.client-head{
  display:grid;
  grid-template-columns:1.5fr .8fr;
  gap:22px;
  align-items:stretch;
}
.app-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
}
.app-card{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:14px;
}
.app-meta{
  font-size:13px;
  color:var(--jv-muted);
}
@media(max-width:900px){
  .client-head{grid-template-columns:1fr}
  .app-grid{grid-template-columns:1fr}
}
}



/* =========================================================
   INLINE MIGRATED: public/hub/clients.html #1
   ========================================================= */
@scope (.vh-route-clients) {
.shell{max-width:1180px;margin:0 auto;padding:34px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:24px;padding:24px;box-shadow:0 18px 55px rgba(15,23,42,.07)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
pre{white-space:pre-wrap}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/commercial.html #1
   ========================================================= */
@scope (.vh-route-commercial) {
.shell{max-width:1220px;margin:0 auto;padding:32px 20px 80px}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;box-shadow:0 14px 40px rgba(15,23,42,.05)}
input,select{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:12px}
.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eff6ff;color:#2563eb;font-weight:800;font-size:12px}
pre{white-space:pre-wrap}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/demo-request.html #1
   ========================================================= */
@scope (.vh-route-demo-request) {
.wrap{max-width:620px;margin:0 auto;padding:70px 18px}
input,select{width:100%;box-sizing:border-box;padding:13px 14px;border-radius:14px;border:1px solid var(--jv-border)}
}



/* =========================================================
   INLINE MIGRATED: public/hub/domains.html #1
   ========================================================= */
@scope (.vh-route-domains) {
.shell{max-width:1180px;margin:0 auto;padding:32px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;margin-bottom:16px}
input{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:12px;margin-bottom:10px}
pre{white-space:pre-wrap}
}



/* =========================================================
   INLINE MIGRATED: public/hub/guide.html #1
   ========================================================= */
@scope (.vh-route-guide) {
body{margin:0;background:#07111f;color:#eaf2ff;font-family:system-ui;line-height:1.6}
main{max-width:900px;margin:auto;padding:30px}
.card{background:#0e1b2d;border:1px solid rgba(255,255,255,.1);border-radius:18px;padding:24px}
a{color:#93c5fd}
code,pre{background:#050b14;border-radius:8px;padding:3px 6px}
pre{padding:14px;white-space:pre-wrap}
}



/* =========================================================
   INLINE MIGRATED: public/hub/home.html #1
   ========================================================= */
@scope (.vh-route-home) {
:root{
  --vh-blue:#2563eb;
  --vh-dark:#071226;
  --vh-muted:#64748b;
  --vh-border:#dbeafe;
}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--vh-dark);
  background:
    radial-gradient(circle at 15% 10%, rgba(37,99,235,.16), transparent 30%),
    radial-gradient(circle at 85% 0%, rgba(56,189,248,.16), transparent 28%),
    linear-gradient(135deg,#f8fbff,#eef7ff);
}
.shell{max-width:1180px;margin:0 auto;padding:0 20px}
.nav{
  height:76px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}
.brand{display:flex;align-items:center;gap:12px;font-weight:900;text-decoration:none;color:var(--vh-dark)}
.logo{
  width:40px;height:40px;border-radius:14px;
  display:grid;place-items:center;
  color:white;font-weight:900;
  background:linear-gradient(135deg,#2563eb,#60a5fa);
}
.navlinks{display:flex;align-items:center;gap:18px}
.navlinks a{text-decoration:none;color:#0f172a;font-weight:800}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:13px 18px;
  border-radius:14px;
  font-weight:900;
  text-decoration:none;
  border:1px solid #bfdbfe;
}
.btn.primary{background:#2563eb;color:white;border-color:#2563eb}
.btn.secondary{background:white;color:#2563eb}
.hero{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:34px;
  align-items:center;
  padding:70px 0 44px;
}
.badge{
  display:inline-flex;
  padding:7px 11px;
  border-radius:999px;
  background:#eff6ff;
  color:#2563eb;
  font-weight:900;
  font-size:13px;
}
h1{
  margin:18px 0 18px;
  font-size:68px;
  line-height:.94;
  letter-spacing:-.07em;
}
h1 span{color:#2563eb}
.lead{
  font-size:20px;
  line-height:1.62;
  color:#64748b;
  max-width:720px;
}
.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.panel{
  background:rgba(255,255,255,.86);
  border:1px solid rgba(148,163,184,.35);
  border-radius:28px;
  padding:26px;
  box-shadow:0 28px 80px rgba(15,23,42,.12);
  backdrop-filter:blur(14px);
}
.metric{
  display:flex;justify-content:space-between;gap:12px;
  padding:14px 0;
  border-bottom:1px solid #e2e8f0;
}
.metric:last-child{border-bottom:0}
.metric strong{font-size:24px;color:#2563eb}
.section{padding:42px 0}
.section h2{
  font-size:38px;
  letter-spacing:-.04em;
  margin:0 0 10px;
}
.section p{color:#64748b}
.grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  margin-top:22px;
}
.card{
  background:white;
  border:1px solid var(--vh-border);
  border-radius:24px;
  padding:24px;
  box-shadow:0 18px 55px rgba(15,23,42,.07);
}
.card h3{margin:12px 0 8px;font-size:22px}
.card p{line-height:1.55}
.card .icon{font-size:30px}
.status{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  background:#eff6ff;
  color:#2563eb;
  font-size:12px;
  font-weight:900;
}
.cta{
  margin:34px 0 70px;
  background:#071226;
  color:white;
  border-radius:30px;
  padding:34px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.cta p{color:#cbd5e1}
@media(max-width:900px){
  .hero{grid-template-columns:1fr;padding-top:34px}
  h1{font-size:44px}
  .grid{grid-template-columns:1fr}
  .cta{display:block}
  .nav{height:auto;padding:18px 0;align-items:flex-start}
  .navlinks{flex-wrap:wrap;justify-content:flex-end}
}
}



/* =========================================================
   INLINE MIGRATED: public/hub/login.html #1
   ========================================================= */
@scope (.vh-route-login) {
body{
  margin:0;
  min-height:100vh;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:
    radial-gradient(circle at 18% 15%, rgba(37,99,235,.15), transparent 30%),
    radial-gradient(circle at 82% 5%, rgba(56,189,248,.13), transparent 28%),
    linear-gradient(135deg,#f8fbff,#eef7ff);
  color:#071226;
}
.page{
  min-height:100vh;
  display:grid;
  grid-template-columns:1fr 1fr;
}
.left{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:36px;
}
.card{
  width:100%;
  max-width:520px;
  background:rgba(255,255,255,.9);
  border:1px solid rgba(148,163,184,.35);
  border-radius:28px;
  padding:34px;
  box-shadow:0 28px 80px rgba(15,23,42,.12);
  backdrop-filter:blur(14px);
}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:28px}
.logo{
  width:42px;height:42px;border-radius:14px;
  background:linear-gradient(135deg,#2563eb,#60a5fa);
  color:white;display:grid;place-items:center;font-weight:900;
}
h1{font-size:42px;line-height:1;margin:0 0 12px;letter-spacing:-.05em}
p{color:#64748b;line-height:1.55}
form{display:grid;gap:16px;margin-top:26px}
label{display:block;font-weight:900;font-size:14px;margin-bottom:7px}
input{
  width:100%;
  box-sizing:border-box;
  padding:15px 16px;
  border-radius:15px;
  border:1px solid #cbd5e1;
  font-size:16px;
  background:white;
}
input:focus{outline:none;border-color:#2563eb;box-shadow:0 0 0 4px rgba(37,99,235,.12)}
button{
  width:fit-content;
  border:0;
  border-radius:14px;
  padding:14px 22px;
  background:#2563eb;
  color:white;
  font-weight:900;
  cursor:pointer;
}
.links{display:grid;gap:8px;margin-top:20px}
.links a{color:#2563eb;font-weight:800}
.error{
  display:none;
  margin-top:18px;
  background:#071226;
  color:#dbeafe;
  padding:16px;
  border-radius:16px;
  overflow:auto;
}
.right{
  display:flex;
  align-items:center;
  padding:36px;
}
.panel{
  max-width:520px;
}
.panel h2{font-size:40px;line-height:1;letter-spacing:-.05em}
.feature{
  background:white;
  border:1px solid #dbeafe;
  border-radius:20px;
  padding:18px;
  margin-top:12px;
}
@media(max-width:900px){
  .page{grid-template-columns:1fr}
  .right{display:none}
}
}



/* =========================================================
   INLINE MIGRATED: public/hub/my-apps.html #1
   ========================================================= */
@scope (.vh-route-my-apps) {
.shell{max-width:1160px;margin:0 auto;padding:32px 20px 80px}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;box-shadow:0 14px 40px rgba(15,23,42,.05)}
.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eff6ff;color:#2563eb;font-weight:800;font-size:12px}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/offline.html #1
   ========================================================= */
@scope (.vh-route-offline) {
body{margin:0;font-family:system-ui;background:#0d0f14;color:#f5f5f5;display:grid;place-items:center;min-height:100vh;padding:24px}
    .card{max-width:560px;background:#151922;border:1px solid rgba(255,255,255,.08);border-radius:18px;padding:24px}
    a{color:#e82a00;font-weight:800}
}



/* =========================================================
   INLINE MIGRATED: public/hub/password-reset.html #1
   ========================================================= */
@scope (.vh-route-password-reset) {
.wrap{max-width:620px;margin:0 auto;padding:70px 18px}
input{width:100%;box-sizing:border-box;padding:13px 14px;border-radius:14px;border:1px solid var(--jv-border)}
}



/* =========================================================
   INLINE MIGRATED: public/hub/security.html #1
   ========================================================= */
@scope (.vh-route-security) {
.shell{max-width:1180px;margin:0 auto;padding:34px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:24px;padding:24px;box-shadow:0 18px 55px rgba(15,23,42,.07)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
pre{white-space:pre-wrap}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/services.html #1
   ========================================================= */
@scope (.vh-route-services) {
.shell{max-width:1180px;margin:0 auto;padding:32px 20px 80px}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;box-shadow:0 16px 50px rgba(15,23,42,.06)}
.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eff6ff;color:#2563eb;font-weight:800;font-size:12px}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/settings.html #1
   ========================================================= */
@scope (.vh-route-settings) {
.shell{max-width:1180px;margin:0 auto;padding:34px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:24px;padding:24px;box-shadow:0 18px 55px rgba(15,23,42,.07)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
pre{white-space:pre-wrap}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/siteguard-server.html #1
   ========================================================= */
@scope (.vh-route-siteguard-server) {
:root {
      --bg:#0d0f14;
      --panel:#151922;
      --text:#f5f5f5;
      --muted:#aab1c2;
      --main:#e82a00;
      --border:rgba(255,255,255,.08);
      --ok:#3ddc97;
      --warn:#ffcc66;
      --bad:#ff667a;
    }

    body {
      margin:0;
      font-family:system-ui,sans-serif;
      background:var(--bg);
      color:var(--text);
    }

    header {
      padding:24px;
      background:#11151d;
      border-bottom:1px solid var(--border);
    }

    main {
      max-width:1200px;
      margin:auto;
      padding:24px;
    }

    .grid {
      display:grid;
      gap:16px;
    }

    .grid-3 {
      grid-template-columns:repeat(3,minmax(0,1fr));
    }

    .card {
      background:var(--panel);
      border:1px solid var(--border);
      border-radius:16px;
      padding:16px;
    }

    .score {
      font-size:48px;
      font-weight:950;
    }

    .pill {
      display:inline-flex;
      padding:6px 9px;
      border-radius:999px;
      border:1px solid var(--border);
      margin:3px;
      color:var(--muted);
      font-size:13px;
    }

    .ok { color:var(--ok); }
    .warn { color:var(--warn); }
    .bad { color:var(--bad); }

    pre {
      white-space:pre-wrap;
      overflow:auto;
      background:#0b0d12;
      border-radius:12px;
      padding:12px;
      color:#d9deea;
    }

    @media(max-width:900px) {
      .grid-3 { grid-template-columns:1fr; }
    }
}



/* =========================================================
   INLINE MIGRATED: public/hub/siteguard.html #1
   ========================================================= */
@scope (.vh-route-siteguard) {
:root{--bg:#07111f;--card:#0e1b2d;--card2:#13233a;--text:#eaf2ff;--muted:#98a9c3;--main:#2563eb;--ok:#22c55e;--bad:#ef4444;--border:rgba(255,255,255,.1)}
body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui}
header{padding:18px 24px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between}
main{max-width:1050px;margin:auto;padding:24px}
.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:18px;margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.kpi{background:var(--card2);border:1px solid var(--border);border-radius:14px;padding:16px}
.ok{color:var(--ok)}.bad{color:var(--bad)}.muted{color:var(--muted)}
a{color:#fff}
pre{background:#050b14;border-radius:12px;padding:14px;white-space:pre-wrap}
}



/* =========================================================
   INLINE MIGRATED: public/hub/team-tasks.html #1
   ========================================================= */
@scope (.vh-route-team-tasks) {
.shell{max-width:1180px;margin:0 auto;padding:34px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:24px;padding:24px;box-shadow:0 18px 55px rgba(15,23,42,.07)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
pre{white-space:pre-wrap}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/vega-booking.html #1
   ========================================================= */
@scope (.vh-route-vega-booking) {
body{margin:0;background:linear-gradient(135deg,#f8fbff,#eef7ff);color:#071226;font-family:Inter,system-ui,sans-serif}
.shell{max-width:1180px;margin:0 auto;padding:0 20px}
.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:32px;align-items:center;padding:72px 0}
h1{font-size:64px;line-height:.95;letter-spacing:-.06em;margin:0 0 18px}
h1 span{color:#2563eb}
p{color:#64748b;line-height:1.6}
.card{background:white;border:1px solid #dbeafe;border-radius:24px;padding:24px;box-shadow:0 18px 55px rgba(15,23,42,.07)}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:28px 0}
.btn{display:inline-flex;padding:14px 20px;border-radius:14px;text-decoration:none;font-weight:900;border:1px solid #bfdbfe}
.btn.primary{background:#2563eb;color:white;border-color:#2563eb}
.btn.secondary{background:white;color:#2563eb}
input{width:100%;box-sizing:border-box;padding:14px;border:1px solid #cbd5e1;border-radius:14px;margin-bottom:10px}
pre{white-space:pre-wrap}
@media(max-width:900px){.hero,.grid{grid-template-columns:1fr}h1{font-size:42px}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/vega-employee.html #1
   ========================================================= */
@scope (.vh-route-vega-employee) {
:root{
      --bg:#07111f;
      --panel:#0c1b30;
      --panel2:#10233d;
      --line:rgba(255,255,255,.09);
      --txt:#ecf4ff;
      --muted:#9fb3cc;
      --accent:#2f80ff;
      --danger:#ff5b5b;
      --ok:#44d17a;
      --warn:#f5b84b;
    }
    *{box-sizing:border-box}
    body{
      margin:0;
      font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
      background:radial-gradient(circle at top left,#143b70 0,#07111f 36%,#050a12 100%);
      color:var(--txt);
    }
    header{
      display:flex;
      justify-content:space-between;
      align-items:center;
      padding:22px;
      border-bottom:1px solid var(--line);
      background:rgba(7,17,31,.82);
      backdrop-filter:blur(12px);
      position:sticky;
      top:0;
      z-index:5;
    }
    h1{margin:0;font-size:22px}
    .status{
      display:inline-flex;
      align-items:center;
      gap:8px;
      background:var(--panel2);
      border:1px solid var(--line);
      padding:8px 12px;
      border-radius:999px;
      color:var(--muted);
      font-size:13px;
    }
    .dot{
      width:9px;
      height:9px;
      border-radius:50%;
      background:var(--ok);
      box-shadow:0 0 0 4px rgba(68,209,122,.12);
    }
    main{
      padding:22px;
      display:grid;
      grid-template-columns:1.1fr .9fr;
      gap:18px;
      max-width:1500px;
      margin:0 auto;
    }
    .card{
      background:linear-gradient(180deg,rgba(16,35,61,.96),rgba(12,27,48,.96));
      border:1px solid var(--line);
      border-radius:18px;
      padding:18px;
      box-shadow:0 18px 50px rgba(0,0,0,.22);
    }
    .grid{
      display:grid;
      grid-template-columns:repeat(4,1fr);
      gap:12px;
      margin-bottom:18px;
    }
    .metric{
      background:rgba(255,255,255,.04);
      border:1px solid var(--line);
      padding:14px;
      border-radius:14px;
    }
    .metric strong{display:block;font-size:26px}
    .metric span{color:var(--muted);font-size:12px}
    textarea,input,select{
      width:100%;
      background:#07111f;
      color:var(--txt);
      border:1px solid var(--line);
      border-radius:12px;
      padding:11px;
      outline:none;
    }
    textarea{min-height:105px;resize:vertical}
    button{
      border:0;
      border-radius:12px;
      padding:10px 14px;
      background:var(--accent);
      color:white;
      font-weight:700;
      cursor:pointer;
    }
    button.secondary{background:#243a5c}
    button.danger{background:var(--danger)}
    button.ok{background:var(--ok);color:#06120a}
    .row{display:flex;gap:10px;align-items:center}
    .row > *{flex:1}
    .list{display:flex;flex-direction:column;gap:10px}
    .item{
      border:1px solid var(--line);
      background:rgba(255,255,255,.035);
      border-radius:14px;
      padding:13px;
    }
    .item h3{margin:0 0 6px;font-size:15px}
    .item p{margin:6px 0;color:var(--muted);font-size:13px;white-space:pre-wrap}
    .badge{
      display:inline-flex;
      padding:4px 8px;
      border-radius:999px;
      font-size:11px;
      color:#d9e9ff;
      background:#203958;
      margin-right:6px;
    }
    .badge.warn{background:rgba(245,184,75,.16);color:#ffd98c}
    .badge.ok{background:rgba(68,209,122,.16);color:#9bffbc}
    .badge.danger{background:rgba(255,91,91,.16);color:#ffb0b0}
    .muted{color:var(--muted)}
    pre{
      white-space:pre-wrap;
      background:#07111f;
      border:1px solid var(--line);
      border-radius:12px;
      padding:12px;
      max-height:360px;
      overflow:auto;
      color:#dcecff;
      font-size:12px;
    }
    @media(max-width:1000px){
      main{grid-template-columns:1fr}
      .grid{grid-template-columns:repeat(2,1fr)}
    }
}



/* =========================================================
   INLINE MIGRATED: public/hub/workspace-demos.html #1
   ========================================================= */
@scope (.vh-route-workspace-demos) {
.shell{max-width:1180px;margin:0 auto;padding:32px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
input,select,textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:12px}
table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #e2e8f0;padding:10px;text-align:left}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/workspace-requests.html #1
   ========================================================= */
@scope (.vh-route-workspace-requests) {
.shell{max-width:1180px;margin:0 auto;padding:32px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
input,select,textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:12px}
table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #e2e8f0;padding:10px;text-align:left}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/workspace-roles.html #1
   ========================================================= */
@scope (.vh-route-workspace-roles) {
.shell{max-width:1160px;margin:0 auto;padding:32px 20px 80px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px}
textarea,input{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:12px}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/workspace-tickets.html #1
   ========================================================= */
@scope (.vh-route-workspace-tickets) {
.shell{max-width:1180px;margin:0 auto;padding:32px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
input,select,textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:12px}
table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #e2e8f0;padding:10px;text-align:left}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/workspace-users.html #1
   ========================================================= */
@scope (.vh-route-workspace-users) {
.shell{max-width:1220px;margin:0 auto;padding:32px 20px 80px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;margin-bottom:18px}
.grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
input,select{width:100%;box-sizing:border-box;padding:12px;border:1px solid #cbd5e1;border-radius:12px}
table{width:100%;border-collapse:collapse}td,th{border-bottom:1px solid #e2e8f0;padding:10px;text-align:left}
@media(max-width:900px){.grid{grid-template-columns:1fr}}
}



/* =========================================================
   INLINE MIGRATED: public/hub/workspace.html #1
   ========================================================= */
@scope (.vh-route-workspace) {
.shell{max-width:1240px;margin:0 auto;padding:28px 20px 80px}
.hero{background:white;border:1px solid #dbeafe;border-radius:28px;padding:30px;box-shadow:0 20px 70px rgba(15,23,42,.08)}
.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.card{background:white;border:1px solid #dbeafe;border-radius:22px;padding:22px;box-shadow:0 14px 40px rgba(15,23,42,.05)}
.card h3{margin-top:0}
.badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eff6ff;color:#2563eb;font-weight:800;font-size:12px}
.quick{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.quick a{padding:11px 14px;border-radius:14px;background:#2563eb;color:white;text-decoration:none;font-weight:800}
.section-title{margin:34px 0 14px}
@media(max-width:900px){.grid4,.grid3{grid-template-columns:1fr}}
}


/* =========================================================
   VEGAHUB GLOBAL NORMALIZATION
   Este bloque siempre prevalece sobre estilos antiguos.
   ========================================================= */

:root {
  --vh-primary: #2563eb;
  --vh-primary-hover: #1d4ed8;
  --vh-primary-soft: #eff6ff;

  --vh-bg: #f4f8ff;
  --vh-surface: #ffffff;
  --vh-surface-soft: #f8fafc;

  --vh-text: #071226;
  --vh-muted: #64748b;

  --vh-border: #dbeafe;
  --vh-border-strong: #bfdbfe;

  --vh-danger: #dc2626;
  --vh-success: #15803d;
  --vh-warning: #b45309;

  --vh-radius-sm: 10px;
  --vh-radius: 16px;
  --vh-radius-lg: 24px;

  --vh-shadow:
    0 18px 55px rgba(15, 23, 42, 0.08);

  --vh-content-width: 1180px;
  --vh-header-height: 64px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-height: 100%;
  background: var(--vh-bg);
}

body.jv-hub {
  min-height: 100vh;
  margin: 0;

  background:
    radial-gradient(
      circle at top left,
      rgba(37, 99, 235, 0.08),
      transparent 32rem
    ),
    var(--vh-bg);

  color: var(--vh-text);

  font-family:
    Inter,
    ui-sans-serif,
    system-ui,
    -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif !important;

  font-size: 15px;
  line-height: 1.5;
}

body.jv-hub button,
body.jv-hub input,
body.jv-hub select,
body.jv-hub textarea {
  font: inherit;
}

body.jv-hub h1,
body.jv-hub h2,
body.jv-hub h3,
body.jv-hub h4,
body.jv-hub p {
  margin-top: 0;
}

body.jv-hub h1,
body.jv-hub h2,
body.jv-hub h3,
body.jv-hub h4 {
  color: var(--vh-text);
  font-family: inherit !important;
  line-height: 1.15;
}

body.jv-hub a {
  color: var(--vh-primary);
}

body.jv-hub img,
body.jv-hub svg {
  max-width: 100%;
}

body.jv-hub .vh-page,
body.jv-hub main.vh-page {
  width: min(
    var(--vh-content-width),
    calc(100% - 32px)
  );

  margin: 28px auto 60px;
}

body.jv-hub .vh-hero-card,
body.jv-hub .vh-card,
body.jv-hub .vh-booking-card,
body.jv-hub .vh-ai-strip,
body.jv-hub .booking-chat-panel {
  background: var(--vh-surface);
  border: 1px solid var(--vh-border);
  border-radius: var(--vh-radius-lg);
  box-shadow: var(--vh-shadow);
}

body.jv-hub .vh-hero-card {
  padding: clamp(22px, 4vw, 36px);
}

body.jv-hub .vh-card,
body.jv-hub .vh-booking-card,
body.jv-hub .booking-chat-panel {
  padding: 20px;
}

body.jv-hub .vh-ai-strip {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 16px 18px;
  margin-top: 16px;
}

body.jv-hub .vh-grid {
  display: grid;
  grid-template-columns:
    repeat(auto-fit, minmax(250px, 1fr));
  gap: 16px;
  align-items: stretch;
}

body.jv-hub .vh-grid > * {
  min-width: 0;
}

body.jv-hub .vh-page-title {
  margin-bottom: 10px;
  font-size: clamp(30px, 5vw, 46px);
  letter-spacing: -0.04em;
}

body.jv-hub .vh-page-subtitle,
body.jv-hub .vh-muted {
  color: var(--vh-muted);
}

body.jv-hub .badge,
body.jv-hub [class*="status"],
body.jv-hub [class*="badge"] {
  display: inline-flex;
  width: fit-content;
  align-items: center;
  border-radius: 999px;
}

body.jv-hub .badge {
  margin-bottom: 12px;
  padding: 6px 10px;
  background: var(--vh-primary-soft);
  color: var(--vh-primary);
  font-weight: 800;
  font-size: 12px;
}

body.jv-hub button,
body.jv-hub .vh-button,
body.jv-hub .vh-booking-actions a {
  min-height: 42px;
  border: 1px solid var(--vh-border-strong);
  border-radius: 12px;
  padding: 10px 14px;

  background: var(--vh-surface);
  color: var(--vh-primary);

  font-weight: 800;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

body.jv-hub button.primary,
body.jv-hub .primary,
body.jv-hub .vh-button-primary {
  border-color: var(--vh-primary);
  background: var(--vh-primary);
  color: #ffffff;
}

body.jv-hub button:hover,
body.jv-hub .vh-button:hover,
body.jv-hub .vh-booking-actions a:hover {
  border-color: var(--vh-primary);
}

body.jv-hub button.primary:hover,
body.jv-hub .primary:hover,
body.jv-hub .vh-button-primary:hover {
  background: var(--vh-primary-hover);
}

body.jv-hub .vh-booking-actions,
body.jv-hub .vh-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

body.jv-hub input,
body.jv-hub select,
body.jv-hub textarea {
  width: 100%;
  min-height: 42px;

  border: 1px solid #cbd5e1;
  border-radius: 12px;
  padding: 10px 12px;

  background: #ffffff;
  color: var(--vh-text);
}

body.jv-hub textarea {
  min-height: 100px;
  resize: vertical;
}

body.jv-hub input:focus,
body.jv-hub select:focus,
body.jv-hub textarea:focus {
  border-color: var(--vh-primary);
  outline: 3px solid rgba(37, 99, 235, 0.12);
}

body.jv-hub table {
  width: 100%;
  border-collapse: collapse;
}

body.jv-hub th,
body.jv-hub td {
  border-bottom: 1px solid #e2e8f0;
  padding: 12px;
  text-align: left;
}

/* Shell global */

body.jv-hub > header,
body.jv-hub .vh-shell-header,
body.jv-hub [data-vh-shell-header] {
  position: sticky;
  top: 0;
  z-index: 1000;

  width: 100%;
  min-height: var(--vh-header-height);

  border-bottom: 1px solid var(--vh-border);
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(14px);
}

body.jv-hub > header nav,
body.jv-hub .vh-shell-header nav,
body.jv-hub [data-vh-shell-header] nav {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 8px;
}

body.jv-hub > header a,
body.jv-hub > header button,
body.jv-hub .vh-shell-header a,
body.jv-hub .vh-shell-header button,
body.jv-hub [data-vh-shell-header] a,
body.jv-hub [data-vh-shell-header] button {
  flex: 0 0 auto;
  white-space: nowrap;
}

body.jv-hub > header input[type="search"],
body.jv-hub > header input[placeholder*="Buscar"],
body.jv-hub .vh-shell-header input[type="search"] {
  min-width: 150px;
  max-width: 280px;
}

body.jv-hub .vh-kpi {
  margin: 8px 0;
  color: var(--vh-text);
  font-size: 30px;
  font-weight: 900;
}

body.jv-hub .jv-raw,
body.jv-hub pre {
  max-width: 100%;
  overflow: auto;
  border-radius: var(--vh-radius);
}

@media (max-width: 900px) {
  :root {
    --vh-header-height: 58px;
  }

  body.jv-hub .vh-page,
  body.jv-hub main.vh-page {
    width: min(100% - 20px, var(--vh-content-width));
    margin-top: 14px;
  }

  body.jv-hub > header,
  body.jv-hub .vh-shell-header,
  body.jv-hub [data-vh-shell-header] {
    overflow-x: auto;
  }

  body.jv-hub > header nav,
  body.jv-hub .vh-shell-header nav,
  body.jv-hub [data-vh-shell-header] nav {
    width: max-content;
    min-width: 100%;
  }
}

@media (max-width: 640px) {
  body.jv-hub .vh-grid {
    grid-template-columns: 1fr;
  }

  body.jv-hub .vh-booking-actions,
  body.jv-hub .vh-actions {
    align-items: stretch;
  }

  body.jv-hub .vh-booking-actions > *,
  body.jv-hub .vh-actions > * {
    width: 100%;
    justify-content: center;
    text-align: center;
  }
}

/* =========================================================
   VEGAHUB_WORKSPACE_CLEAN_V2
   ========================================================= */

/* Estructura del workspace */

body.vh-route-workspace .vh-page {
  width: min(1120px, calc(100% - 32px));
  margin: 24px auto 64px;
}

body.vh-route-workspace .vh-hero-card {
  margin-bottom: 22px;
  padding: 28px;
}

body.vh-route-workspace .vh-hero-card + h2,
body.vh-route-workspace .vh-hero-card + h3 {
  margin-top: 0;
}

body.vh-route-workspace .vh-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

body.vh-route-workspace .vh-card {
  min-height: 190px;
  padding: 20px;

  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

body.vh-route-workspace .vh-card p {
  flex: 1;
  color: var(--vh-muted);
}

body.vh-route-workspace .vh-card a:last-child {
  margin-top: auto;
}

/* Recuperar textos de botones que quedaron ocultos */

body.vh-route-workspace .vh-hero-card button,
body.vh-route-workspace .vh-hero-card a,
body.vh-route-workspace .vh-hero-card [role="button"] {
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;

  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;

  font-size: 14px !important;
  font-weight: 800 !important;
  line-height: 1.2 !important;

  text-indent: 0 !important;
  letter-spacing: normal !important;
  white-space: nowrap !important;

  opacity: 1 !important;
  visibility: visible !important;
  overflow: visible !important;
}

body.vh-route-workspace .vh-hero-card .vh-actions,
body.vh-route-workspace .vh-hero-card .vh-booking-actions,
body.vh-route-workspace .vh-hero-card [data-actions] {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

/* Cabecera global */

body.jv-hub > header,
body.jv-hub .vh-shell-header,
body.jv-hub [data-vh-shell-header] {
  min-height: 64px;
  overflow: visible !important;

  border-bottom: 1px solid var(--vh-border);
  background: rgba(255, 255, 255, 0.98);
}

body.jv-hub .vh-shell-inner,
body.jv-hub .vh-header-inner,
body.jv-hub [data-vh-shell-inner] {
  width: min(1180px, calc(100% - 24px));
  min-width: 0;
  margin: 0 auto;

  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: nowrap;
}

body.jv-hub > header nav,
body.jv-hub .vh-shell-header nav,
body.jv-hub [data-vh-shell-header] nav {
  min-width: 0;
  flex: 1 1 auto;

  display: flex;
  align-items: center;
  gap: 5px;
  flex-wrap: nowrap;
}

body.jv-hub > header a,
body.jv-hub > header button,
body.jv-hub .vh-shell-header a,
body.jv-hub .vh-shell-header button,
body.jv-hub [data-vh-shell-header] a,
body.jv-hub [data-vh-shell-header] button {
  width: auto !important;
  min-width: max-content !important;
  max-width: none !important;

  padding: 9px 11px !important;

  font-size: 13px !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  white-space: nowrap !important;

  overflow: visible !important;
}

body.jv-hub > header input[type="search"],
body.jv-hub > header input[placeholder*="Buscar"],
body.jv-hub .vh-shell-header input[type="search"],
body.jv-hub [data-vh-shell-header] input[type="search"] {
  width: 220px !important;
  min-width: 130px !important;
  max-width: 220px !important;

  flex: 0 1 220px;
}

/* Evitar que tarjetas o elementos administrativos ensanchen la página */

body.vh-route-workspace main,
body.vh-route-workspace section,
body.vh-route-workspace article {
  min-width: 0;
}

@media (max-width: 1000px) {
  body.vh-route-workspace .vh-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.jv-hub > header input[type="search"],
  body.jv-hub > header input[placeholder*="Buscar"],
  body.jv-hub .vh-shell-header input[type="search"],
  body.jv-hub [data-vh-shell-header] input[type="search"] {
    width: 160px !important;
    max-width: 160px !important;
  }
}

@media (max-width: 720px) {
  body.vh-route-workspace .vh-page {
    width: min(100% - 20px, 1120px);
  }

  body.vh-route-workspace .vh-grid {
    grid-template-columns: 1fr;
  }

  body.jv-hub > header,
  body.jv-hub .vh-shell-header,
  body.jv-hub [data-vh-shell-header] {
    overflow-x: auto !important;
    overflow-y: visible !important;
  }
}

/* =========================================================
   VEGAHUB_HEADER_WORKSPACE_FINAL_V3
   ========================================================= */

/* Contenedores internos no visibles */

body.vh-route-workspace
[data-workspace-internal],
body.vh-route-workspace
[data-workspace-permissions-title],
body.vh-route-workspace
#permsBox {
  display: none !important;
}

/* Dashboard */

body.vh-route-workspace .vh-page,
body.vh-route-workspace main {
  width: min(1180px, calc(100% - 32px)) !important;
  max-width: 1180px !important;
  margin: 26px auto 64px !important;
}

body.vh-route-workspace .workspace-apps-section {
  margin-top: 22px;
}

body.vh-route-workspace #appsBox,
body.vh-route-workspace .workspace-apps-grid {
  display: grid !important;
  grid-template-columns:
    repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
  align-items: stretch !important;
}

body.vh-route-workspace #appsBox > *,
body.vh-route-workspace .workspace-apps-grid > * {
  min-width: 0 !important;
}

/* Header completo */

body.jv-hub > header,
body.jv-hub .vh-shell-header,
body.jv-hub [data-vh-shell-header] {
  width: 100% !important;
  min-height: 66px !important;
  padding: 0 16px !important;

  display: flex !important;
  align-items: center !important;

  overflow: visible !important;

  background: rgba(255, 255, 255, 0.98) !important;
  border-bottom: 1px solid var(--vh-border) !important;
}

/*
 * Compatibilidad con las distintas generaciones del shell.
 */

body.jv-hub > header > :first-child,
body.jv-hub .vh-shell-inner,
body.jv-hub .vh-header-inner,
body.jv-hub [data-vh-shell-inner],
body.jv-hub > header > .container {
  width: min(1440px, 100%) !important;
  max-width: 1440px !important;
  min-width: 0 !important;
  margin: 0 auto !important;

  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
}

body.jv-hub > header nav,
body.jv-hub .vh-shell-nav,
body.jv-hub .vh-header-nav,
body.jv-hub [data-vh-shell-nav] {
  flex: 1 1 auto !important;
  min-width: 0 !important;

  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 6px !important;
  flex-wrap: nowrap !important;

  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none;
}

body.jv-hub > header nav::-webkit-scrollbar,
body.jv-hub .vh-shell-nav::-webkit-scrollbar {
  display: none;
}

body.jv-hub .vh-shell-brand,
body.jv-hub .vh-header-brand,
body.jv-hub [data-vh-shell-brand] {
  flex: 0 0 auto !important;
  min-width: max-content !important;
}

body.jv-hub .vh-shell-actions,
body.jv-hub .vh-header-actions,
body.jv-hub [data-vh-shell-actions] {
  flex: 0 0 auto !important;

  display: flex !important;
  align-items: center !important;
  gap: 7px !important;
  flex-wrap: nowrap !important;
}

body.jv-hub > header a,
body.jv-hub > header button,
body.jv-hub .vh-shell-header a,
body.jv-hub .vh-shell-header button,
body.jv-hub [data-vh-shell-header] a,
body.jv-hub [data-vh-shell-header] button {
  width: auto !important;
  min-width: max-content !important;
  min-height: 40px !important;
  height: 40px !important;

  padding: 0 12px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;

  font-size: 13px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  text-indent: 0 !important;

  overflow: visible !important;
}

body.jv-hub > header input[type="search"],
body.jv-hub > header
input[placeholder*="Buscar"],
body.jv-hub .vh-shell-header
input[type="search"],
body.jv-hub [data-vh-shell-header]
input[type="search"] {
  width: clamp(150px, 15vw, 230px) !important;
  min-width: 120px !important;
  max-width: 230px !important;
  height: 40px !important;

  flex: 0 1 230px !important;
}

@media (max-width: 1100px) {
  body.jv-hub > header,
  body.jv-hub .vh-shell-header,
  body.jv-hub [data-vh-shell-header] {
    overflow-x: auto !important;
    overflow-y: visible !important;
  }

  body.jv-hub > header > :first-child,
  body.jv-hub .vh-shell-inner,
  body.jv-hub .vh-header-inner,
  body.jv-hub [data-vh-shell-inner] {
    width: max-content !important;
    min-width: 100% !important;
  }

  body.vh-route-workspace #appsBox,
  body.vh-route-workspace .workspace-apps-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  body.vh-route-workspace .vh-page,
  body.vh-route-workspace main {
    width: calc(100% - 20px) !important;
  }

  body.vh-route-workspace #appsBox,
  body.vh-route-workspace .workspace-apps-grid {
    grid-template-columns: 1fr !important;
  }
}

/* END VEGAHUB_HEADER_WORKSPACE_FINAL_V3 */

/* =========================================================
   VEGAHUB_PREMIUM_FOUNDATION_50
   ========================================================= */

:root {
  --vh-saas-bg: #f5f8fd;
  --vh-saas-surface: #ffffff;
  --vh-saas-surface-soft: #f8fafc;
  --vh-saas-border: #dce7f5;
  --vh-saas-border-strong: #bfdbfe;
  --vh-saas-text: #0b1324;
  --vh-saas-muted: #64748b;
  --vh-saas-primary: #2563eb;
  --vh-saas-primary-hover: #1d4ed8;
  --vh-saas-success: #15803d;
  --vh-saas-warning: #b45309;
  --vh-saas-danger: #dc2626;
  --vh-saas-radius: 16px;
  --vh-saas-radius-lg: 24px;
  --vh-saas-shadow:
    0 16px 48px rgba(15, 23, 42, 0.07);
  --vh-saas-shadow-hover:
    0 22px 62px rgba(15, 23, 42, 0.12);
}

body.vh-premium {
  background:
    radial-gradient(
      circle at 8% 0,
      rgba(37, 99, 235, 0.08),
      transparent 30rem
    ),
    var(--vh-saas-bg);

  color: var(--vh-saas-text);
}

body.vh-premium .vh-main {
  width: min(1180px, calc(100% - 32px));
  margin: 28px auto 72px;
}

body.vh-premium .vh-hero-card,
body.vh-premium .vh-card,
body.vh-premium .vh-panel,
body.vh-premium .vh-section,
body.vh-premium .booking-chat-panel {
  border: 1px solid var(--vh-saas-border);
  border-radius: var(--vh-saas-radius-lg);
  background: var(--vh-saas-surface);
  box-shadow: var(--vh-saas-shadow);
}

body.vh-premium .vh-card {
  transition:
    transform 160ms ease,
    border-color 160ms ease,
    box-shadow 160ms ease;
}

body.vh-premium .vh-card:hover {
  transform: translateY(-2px);
  border-color: var(--vh-saas-border-strong);
  box-shadow: var(--vh-saas-shadow-hover);
}

body.vh-premium .vh-page-title {
  max-width: 780px;
  margin-bottom: 10px;
  color: var(--vh-saas-text);
  font-size: clamp(30px, 5vw, 46px);
  letter-spacing: -0.04em;
}

body.vh-premium .vh-page-subtitle,
body.vh-premium .vh-muted {
  color: var(--vh-saas-muted);
}

body.vh-premium button,
body.vh-premium .vh-button,
body.vh-premium .vh-booking-actions a {
  min-height: 42px;
  border-radius: 12px;

  transition:
    transform 120ms ease,
    background 120ms ease,
    border-color 120ms ease,
    box-shadow 120ms ease;
}

body.vh-premium button:active,
body.vh-premium .vh-button:active,
body.vh-premium .vh-booking-actions a:active {
  transform: translateY(1px);
}

body.vh-premium button.is-loading {
  cursor: wait;
  opacity: 0.7;
}

body.vh-premium input,
body.vh-premium select,
body.vh-premium textarea {
  min-height: 44px;
  border: 1px solid #cbd8ea;
  border-radius: 13px;
  background: #fff;
}

body.vh-premium input:focus,
body.vh-premium select:focus,
body.vh-premium textarea:focus {
  border-color: var(--vh-saas-primary);
  outline: 4px solid rgba(37, 99, 235, 0.11);
}

body.vh-premium .vh-grid {
  gap: 16px;
}

body.vh-premium .vh-table-scroll {
  width: 100%;
  overflow-x: auto;
  border: 1px solid var(--vh-saas-border);
  border-radius: var(--vh-saas-radius);
  background: #fff;
}

body.vh-premium .vh-table-scroll table {
  min-width: 720px;
  margin: 0;
}

body.vh-premium table th {
  background: var(--vh-saas-surface-soft);
  color: #475569;
  font-size: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

body.vh-premium table tbody tr:hover {
  background: #f8fbff;
}

body.vh-premium .badge,
body.vh-premium [class*="status"] {
  border-radius: 999px;
}

body.vh-page-type-dashboard .vh-grid {
  grid-template-columns:
    repeat(3, minmax(0, 1fr));
}

body.vh-page-type-list .vh-main,
body.vh-page-type-analytics .vh-main {
  max-width: 1320px;
}

body.vh-page-type-form .vh-main {
  max-width: 980px;
}

body.vh-page-type-product .vh-main {
  max-width: 1180px;
}

body.vh-page-type-conversation .vh-main {
  max-width: 1100px;
}

body.vh-page-type-public-flow .vh-main {
  max-width: 760px;
}

/* No ocultar contenido por defecto si JavaScript falla. */

body.vh-premium .vh-main {
  opacity: 1;
}

/* Header SaaS */

body.vh-premium > header,
body.vh-premium .vh-shell-header,
body.vh-premium [data-vh-shell-header] {
  min-height: 64px;
  border-bottom: 1px solid var(--vh-saas-border);
  background: rgba(255, 255, 255, 0.97);
  backdrop-filter: blur(18px);
}

body.vh-premium > header nav,
body.vh-premium .vh-shell-header nav,
body.vh-premium [data-vh-shell-header] nav {
  min-width: 0;

  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;

  overflow-x: auto;
  scrollbar-width: none;
}

body.vh-premium > header nav::-webkit-scrollbar,
body.vh-premium .vh-shell-header nav::-webkit-scrollbar {
  display: none;
}

body.vh-premium > header a,
body.vh-premium > header button,
body.vh-premium .vh-shell-header a,
body.vh-premium .vh-shell-header button {
  width: auto;
  min-width: max-content;
  min-height: 40px;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 0 12px;
  white-space: nowrap;
}

body.vh-premium header a.is-active {
  border-color: var(--vh-saas-border-strong);
  background: #eff6ff;
  color: var(--vh-saas-primary);
}

@media (max-width: 960px) {
  body.vh-page-type-dashboard .vh-grid {
    grid-template-columns:
      repeat(2, minmax(0, 1fr));
  }

  body.vh-premium .vh-main {
    width: min(100% - 22px, 1180px);
  }
}

@media (max-width: 640px) {
  body.vh-page-type-dashboard .vh-grid {
    grid-template-columns: 1fr;
  }

  body.vh-premium .vh-hero-card {
    padding: 22px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.vh-premium *,
  body.vh-premium *::before,
  body.vh-premium *::after {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

/* END VEGAHUB_PREMIUM_FOUNDATION_50 */

/* =========================================================
   VEGAHUB_ROLE_UX_60
   ========================================================= */

/* Header SaaS consistente */

body.vh-role-aware > header,
body.vh-role-aware .vh-shell-header,
body.vh-role-aware [data-vh-shell-header] {
  width: 100% !important;
  min-height: 64px !important;
  padding: 0 16px !important;

  display: flex !important;
  align-items: center !important;

  overflow: visible !important;

  border-bottom: 1px solid var(--vh-saas-border, #dce7f5);
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(18px);
}

body.vh-role-aware > header > :first-child,
body.vh-role-aware .vh-shell-inner,
body.vh-role-aware .vh-header-inner,
body.vh-role-aware [data-vh-shell-inner] {
  width: min(1420px, 100%) !important;
  min-width: 0 !important;
  margin: 0 auto !important;

  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  flex-wrap: nowrap !important;
}

body.vh-role-aware header nav {
  flex: 1 1 auto !important;
  min-width: 0 !important;

  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  flex-wrap: nowrap !important;

  overflow-x: auto !important;
  overflow-y: hidden !important;
  scrollbar-width: none;
}

body.vh-role-aware header nav::-webkit-scrollbar {
  display: none;
}

body.vh-role-aware header a,
body.vh-role-aware header button {
  width: auto !important;
  min-width: max-content !important;
  min-height: 40px !important;
  height: 40px !important;

  padding: 0 12px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;

  font-size: 13px !important;
  line-height: 1 !important;
  text-indent: 0 !important;
  white-space: nowrap !important;

  overflow: visible !important;
}

body.vh-role-aware header a.is-active {
  border-color: #bfdbfe !important;
  background: #eff6ff !important;
  color: #2563eb !important;
}

body.vh-role-aware header input[type="search"],
body.vh-role-aware header
input[placeholder*="Buscar"] {
  width: clamp(145px, 15vw, 230px) !important;
  min-width: 120px !important;
  max-width: 230px !important;
  height: 40px !important;

  flex: 0 1 230px !important;
}

/* Footer global */

.vh-global-footer {
  width: 100%;
  margin-top: auto;
  border-top: 1px solid #dce7f5;
  background: rgba(255, 255, 255, 0.92);
}

.vh-footer-inner {
  width: min(1180px, calc(100% - 32px));
  min-height: 82px;
  margin: 0 auto;
  padding: 20px 0;

  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto auto;
  align-items: center;
  gap: 22px;

  color: #64748b;
  font-size: 13px;
}

.vh-footer-inner > div {
  display: grid;
  gap: 2px;
}

.vh-footer-inner strong {
  color: #0b1324;
}

.vh-footer-inner nav {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.vh-footer-inner a {
  color: #475569;
  text-decoration: none;
}

.vh-footer-inner a:hover {
  color: #2563eb;
  text-decoration: underline;
}

/* Contexto por rol */

body.vh-role-client .admin-only,
body.vh-role-team .admin-only,
body.vh-role-demo .admin-only,
body.vh-role-public .admin-only {
  display: none !important;
}

body.vh-role-public .vh-internal-only {
  display: none !important;
}

body:not(.vh-role-admin)
[data-vh-technical],
body:not(.vh-role-admin)
[data-technical-output] {
  display: none !important;
}

/* Controles dañados */

.vh-empty-control {
  display: none !important;
}

.vh-control-label {
  display: inline-flex;
  align-items: center;
}

/* Workspace */

body.vh-page-workspace #permsBox,
body.vh-page-workspace
[data-workspace-internal="permissions"],
body.vh-page-workspace
[data-workspace-permissions-title] {
  display: none !important;
}

body.vh-page-workspace .vh-hero-card button,
body.vh-page-workspace .vh-hero-card .primary,
body.vh-page-workspace
.vh-hero-card [class*="primary"] {
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  text-indent: 0 !important;
  opacity: 1 !important;
}

/* Adaptación por sector */

body.vh-client-booking [data-module="booking"],
body.vh-client-ecommerce [data-module="ecommerce"],
body.vh-client-infrastructure [data-module="infrastructure"],
body.vh-client-corporate [data-module="corporate"] {
  order: -10;
}

/* Flujo público */

body.vh-role-public .vh-main {
  max-width: 780px;
}

body.vh-role-public .vh-global-footer {
  margin-top: 48px;
}

/* Evitar saltos visuales */

body.vh-role-aware {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

body.vh-role-aware main {
  flex: 1 0 auto;
}

@media (max-width: 1100px) {
  body.vh-role-aware > header,
  body.vh-role-aware .vh-shell-header,
  body.vh-role-aware [data-vh-shell-header] {
    overflow-x: auto !important;
  }

  body.vh-role-aware > header > :first-child,
  body.vh-role-aware .vh-shell-inner,
  body.vh-role-aware .vh-header-inner,
  body.vh-role-aware [data-vh-shell-inner] {
    width: max-content !important;
    min-width: 100% !important;
  }
}

@media (max-width: 760px) {
  .vh-footer-inner {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .vh-footer-inner nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.vh-role-aware header nav {
    max-width: calc(100vw - 120px);
  }
}

/* END VEGAHUB_ROLE_UX_60 */

/* =========================================================
   VEGAHUB_UX72_LIGHT
   Mejora clara, minimalista y no destructiva
   ========================================================= */

.vh72 {
  --vh72-primary:
    var(--color-main, #2563eb);
  --vh72-primary-hover: #1d4ed8;
  --vh72-surface: #ffffff;
  --vh72-surface-soft: #f7f9fc;
  --vh72-border: #dce5f0;
  --vh72-border-strong: #c7d4e4;
  --vh72-text: #0f172a;
  --vh72-muted: #64748b;
  --vh72-success: #15803d;
  --vh72-warning: #b45309;
  --vh72-danger: #b91c1c;
  --vh72-radius: 14px;
  --vh72-shadow:
    0 12px 32px rgba(15, 23, 42, .08);
}

.vh72 .vh72-main {
  width: min(100%, 1240px);
  margin-inline: auto;
  padding-inline: clamp(14px, 2vw, 28px);
  padding-bottom: 36px;
}

.vh72-toolbar {
  position: relative;
  z-index: 40;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin: 18px 0 22px;
  padding: 14px 16px;
  border: 1px solid var(--vh72-border);
  border-radius: var(--vh72-radius);
  color: var(--vh72-text);
  background: var(--vh72-surface);
  box-shadow: var(--vh72-shadow);
}

.vh72-toolbar-info {
  min-width: 0;
}

.vh72-heading-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.vh72-context,
.vh72-role {
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 9px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 750;
  line-height: 1;
}

.vh72-context {
  color: #fff;
  background: var(--vh72-primary);
}

.vh72-role {
  color: var(--vh72-muted);
  border: 1px solid var(--vh72-border);
  background: var(--vh72-surface-soft);
}

.vh72-description {
  margin: 7px 0 0;
  color: var(--vh72-muted);
  font-size: 13px;
  line-height: 1.4;
}

.vh72-actions {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  gap: 9px;
}

.vh72-button {
  appearance: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 9px 14px;
  border-radius: 10px;
  font: inherit;
  font-size: 13px;
  font-weight: 750;
  line-height: 1.1;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition:
    background .16s ease,
    border-color .16s ease,
    transform .16s ease,
    box-shadow .16s ease;
}

.vh72-button:hover {
  transform: translateY(-1px);
  text-decoration: none;
}

.vh72-button:focus-visible {
  outline: 3px solid rgba(37, 99, 235, .22);
  outline-offset: 2px;
}

.vh72-button-primary {
  color: #fff !important;
  border: 1px solid var(--vh72-primary) !important;
  background: var(--vh72-primary) !important;
  box-shadow:
    0 7px 18px rgba(37, 99, 235, .18);
}

.vh72-button-primary:hover {
  color: #fff !important;
  background: var(--vh72-primary-hover) !important;
  border-color: var(--vh72-primary-hover) !important;
}

.vh72-button-secondary {
  color: var(--vh72-text) !important;
  border: 1px solid var(--vh72-border) !important;
  background: var(--vh72-surface) !important;
}

.vh72-button-secondary:hover {
  border-color: var(--vh72-border-strong) !important;
  background: var(--vh72-surface-soft) !important;
}

.vh72-tools-menu {
  position: fixed;
  z-index: 2147483000;
  display: grid;
  gap: 3px;
  max-height: min(360px, calc(100vh - 24px));
  overflow-y: auto;
  padding: 7px;
  border: 1px solid var(--vh72-border-strong);
  border-radius: 12px;
  color: var(--vh72-text);
  background: #fff;
  box-shadow:
    0 22px 58px rgba(15, 23, 42, .2);
}

.vh72-tools-item {
  display: flex;
  align-items: center;
  min-height: 40px;
  padding: 9px 11px;
  border-radius: 8px;
  color: var(--vh72-text) !important;
  background: transparent;
  font-size: 13px;
  font-weight: 650;
  text-decoration: none !important;
}

.vh72-tools-item:hover,
.vh72-tools-item.is-current {
  color: var(--vh72-primary) !important;
  background: #eff6ff;
}

.vh72-kpi-grid {
  display: grid !important;
  grid-template-columns:
    repeat(
      auto-fit,
      minmax(min(100%, 190px), 1fr)
    );
  gap: 12px !important;
}

.vh72-kpi {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--vh72-border) !important;
  border-radius: 12px !important;
  color: var(--vh72-text) !important;
  background: var(--vh72-surface) !important;
  box-shadow:
    0 6px 18px rgba(15, 23, 42, .045);
}

.vh72-table-wrap {
  max-width: 100%;
  overflow-x: auto;
  border: 1px solid var(--vh72-border);
  border-radius: 12px;
  background: #fff;
}

.vh72-table {
  width: 100%;
  border-collapse: collapse;
  color: var(--vh72-text);
}

.vh72-table th {
  padding: 11px 13px;
  color: var(--vh72-muted);
  background: var(--vh72-surface-soft);
  font-size: 11px;
  font-weight: 800;
  text-align: left;
  text-transform: uppercase;
}

.vh72-table td {
  padding: 12px 13px;
  border-top: 1px solid var(--vh72-border);
  color: var(--vh72-text);
}

.vh72-control {
  min-height: 42px;
  border: 1px solid var(--vh72-border-strong) !important;
  border-radius: 9px !important;
  color: var(--vh72-text) !important;
  background: #fff !important;
}

.vh72-control:focus {
  outline: none !important;
  border-color: var(--vh72-primary) !important;
  box-shadow:
    0 0 0 3px rgba(37, 99, 235, .14) !important;
}

.vh72-label {
  color: var(--vh72-text);
  font-size: 13px;
  font-weight: 700;
}

.vh72-status {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 4px 8px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 750;
}

.vh72-status-pending,
.vh72-status-unpaid {
  color: #92400e;
  background: #fef3c7;
}

.vh72-status-confirmed,
.vh72-status-active,
.vh72-status-completed,
.vh72-status-paid {
  color: #166534;
  background: #dcfce7;
}

.vh72-status-cancelled,
.vh72-status-canceled,
.vh72-status-inactive {
  color: #991b1b;
  background: #fee2e2;
}

.vh72-unresolved-control {
  min-width: 40px;
}

header [role="menu"][data-vh72-fallback-open="1"],
nav [role="menu"][data-vh72-fallback-open="1"],
.jv-dropdown-menu[data-vh72-fallback-open="1"],
.vh-dropdown-menu[data-vh72-fallback-open="1"],
.dropdown-menu[data-vh72-fallback-open="1"] {
  position: absolute !important;
  z-index: 2147482000 !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

@media (max-width: 760px) {
  .vh72 .vh72-main {
    padding-inline: 12px;
  }

  .vh72-toolbar {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
    margin: 12px 0 16px;
    padding: 13px;
  }

  .vh72-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    width: 100%;
  }

  .vh72-actions > * {
    width: 100%;
  }

  .vh72-kpi-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 430px) {
  .vh72-actions {
    grid-template-columns: 1fr;
  }
}

/* VEGAHUB_UX72_LIGHT_END */
