/*
 * Orliv theme bridge over Minia horizontal layout.
 * Autor: jose javier esquivel gloria
 * Desarrollo: goglo agency
 */

/*
 * Cabecera y menu principal NO son flotantes: forman parte del flujo y se van
 * con el scroll. Minia los declara `position: fixed` para su layout
 * horizontal, asi que aqui se devuelven al flujo y desaparece todo el juego de
 * compensaciones (margenes y paddings) que hacia falta para dejarles hueco.
 */
.orliv-minia #page-topbar,
.orliv-minia .topnav {
    position: static;
    top: auto;
    margin-top: 0;
}

body[data-layout="horizontal"] {
    background: var(--bg);
    color: var(--ink);
    --bs-primary: var(--blue);
    --bs-primary-rgb: 21, 87, 255;
    --bs-link-color: var(--blue);
    --bs-link-hover-color: var(--orliv-hover);
    --bs-body-color: var(--ink);
    --bs-body-bg: var(--bg);
}

.orliv-minia .bg-primary,
.orliv-minia .avatar-title.bg-primary {
    background-color: var(--blue) !important;
}

.orliv-minia .text-primary {
    color: var(--blue) !important;
}

.orliv-minia .bg-primary-subtle {
    background-color: var(--accent-quiet) !important;
}

.orliv-minia .bg-info-subtle {
    background-color: #E0F2FE !important;
}

.orliv-minia .text-info {
    color: var(--info) !important;
}

.orliv-minia .bg-success-subtle {
    background-color: #DCFCE7 !important;
}

.orliv-minia .text-success {
    color: var(--success) !important;
}

.orliv-minia #page-topbar {
    border-bottom: 1px solid var(--line);
    box-shadow: 0 2px 10px rgba(15, 23, 42, .03);
    /* Minia deja el header en z-index:1 y el .topnav en z-index:100, asi que el
       dropdown de usuario (dentro del header) quedaba atrapado por debajo del
       menu principal. Se eleva el header por encima del topnav. */
    z-index: 101;
}

.orliv-minia .navbar-brand-box {
    background: #fff;
}

.orliv-minia .logo-lg {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}

.orliv-minia .logo-lg img,
.orliv-minia .logo-sm img {
    object-fit: contain;
}

.orliv-minia .app-search .form-control {
    background: var(--orliv-ultralight);
    border-color: transparent;
    color: var(--ink);
}

.orliv-minia .btn-primary,
.orliv-minia .btn.primary,
.orliv-minia button.primary {
    background: var(--blue) !important;
    border-color: var(--blue) !important;
    color: #fff !important;
}

.orliv-minia .btn-primary:hover,
.orliv-minia .btn.primary:hover,
.orliv-minia button.primary:hover {
    background: var(--orliv-hover) !important;
    border-color: var(--orliv-hover) !important;
}

.orliv-minia .topnav {
    background: #fff;
    border-bottom: 1px solid var(--line);
    box-shadow: none;
}

.orliv-minia .topnav .navbar-nav .nav-link {
    color: var(--slate);
    font-size: 13px;
    font-weight: 700;
    padding: 1rem 1.15rem;
}

.orliv-minia .topnav .navbar-nav .nav-link:hover,
.orliv-minia .topnav .navbar-nav .nav-link.active {
    color: var(--blue);
}

/*
 * Sin chrome flotante no hay hueco que reservar. Se anulan el margen y el
 * padding con los que Minia esquivaba su cabecera fija; van con su selector
 * por delante (`body[data-layout="horizontal"]`) porque es mas especifico que
 * `.orliv-minia .page-content` y de otro modo gana el suyo.
 */
body[data-layout="horizontal"] .orliv-minia .page-content {
    margin-top: 0;
    padding-top: 24px;
}

.orliv-minia .page-content {
    background: var(--bg);
}

.orliv-minia .page-title-box {
    padding-bottom: 18px;
}

.orliv-minia .page-title-box h4 {
    color: var(--ink);
    font-weight: 800;
}

.orliv-minia .breadcrumb-item a {
    color: var(--slate);
}

.orliv-minia .breadcrumb-item.active {
    color: var(--blue);
}

.orliv-minia .panel,
.orliv-minia .stats-grid article,
.orliv-minia .resource-card,
.orliv-minia .qr-card-row,
.orliv-minia .auth-card {
    background: #fff;
    border: 1px solid var(--line);
    border-radius: 14px;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .045);
}

.orliv-minia .panel {
    padding: 22px;
    margin-bottom: 22px;
}

.orliv-minia .panel h2,
.orliv-minia .panel h3,
.orliv-minia .resource-title,
.orliv-minia .qr-card-row h3 {
    color: var(--ink);
    font-weight: 800;
}

.orliv-minia .stats-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 20px;
    margin-bottom: 22px;
}

.orliv-minia .stats-grid article {
    padding: 22px;
    min-height: 112px;
    position: relative;
    overflow: hidden;
}

.orliv-minia .stats-grid article::after {
    content: "";
    position: absolute;
    right: -28px;
    top: -28px;
    width: 92px;
    height: 92px;
    border-radius: 999px;
    background: var(--accent-quiet);
}

.orliv-minia .stats-grid span {
    color: var(--slate);
    font-size: 12px;
    font-weight: 700;
    text-transform: none;
}

.orliv-minia .stats-grid strong {
    display: block;
    margin-top: 10px;
    color: var(--navy);
    font-size: 28px;
    font-weight: 800;
}

.orliv-minia .two-col,
.orliv-minia .form-grid,
.orliv-minia .analytics-grid {
    gap: 22px;
}

.orliv-minia .table-wrap {
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
}

.orliv-minia table {
    margin: 0;
    color: var(--ink);
}

.orliv-minia th {
    background: var(--orliv-ultralight);
    color: var(--slate);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.orliv-minia td,
.orliv-minia th {
    border-color: var(--line);
    padding: 14px 16px;
}

.orliv-minia .btn,
.orliv-minia button,
.orliv-minia .share-row a,
.orliv-minia .share-row button {
    border-radius: 8px;
    font-weight: 700;
}

.orliv-minia .btn.secondary,
.orliv-minia .secondary {
    background: #fff;
    border: 1px solid var(--line);
    color: var(--navy);
}

.orliv-minia input,
.orliv-minia select,
.orliv-minia textarea,
.orliv-minia .form-control {
    border-color: var(--line);
    border-radius: 8px;
}

.orliv-minia input:focus,
.orliv-minia select:focus,
.orliv-minia textarea:focus,
.orliv-minia .form-control:focus {
    border-color: var(--blue);
    box-shadow: 0 0 0 .16rem rgba(21, 87, 255, .12);
}

.orliv-minia .advanced-block,
.orliv-minia details {
    background: var(--orliv-ultralight);
    border-color: var(--line);
    border-radius: 12px;
}

.orliv-minia .qr-preview {
    background: #fff;
    border-color: var(--line);
}

.orliv-minia .metric-row {
    border-color: var(--line);
}

.orliv-minia .metric-row span,
.orliv-minia small,
.orliv-minia .muted,
.orliv-minia .text-muted {
    color: var(--slate) !important;
}

.orliv-minia .resource-card,
.orliv-minia .qr-card-row {
    padding: 20px;
    margin-bottom: 0;
}

.orliv-minia .card-actions .btn,
.orliv-minia .card-actions button,
.orliv-minia .toolbar-panel .btn,
.orliv-minia .toolbar-panel button {
    min-height: 38px;
}

.orliv-minia .status,
.orliv-minia .pill {
    border-radius: 999px;
    background: var(--accent-quiet);
    color: var(--blue);
}

.orliv-minia .footer {
    /* Siempre despegado del contenido, aunque la pagina sea corta. */
    margin-top: 48px;
    padding-top: 8px;
    background: #fff;
    border-top: 1px solid var(--line);
}

.orliv-minia .minia-powered {
    display: inline-flex;
    width: auto;
    margin: 0;
    padding: 0;
    background: none;
    vertical-align: middle;
}

.orliv-minia .minia-powered img {
    max-height: 15px;
}

@media (max-width: 991.98px) {
    body[data-layout="horizontal"] .orliv-minia .page-content {
        padding-top: 16px;
    }

    .orliv-minia .topnav .navbar-collapse {
        background: #fff;
        border-top: 1px solid var(--line);
    }

    /* El menu movil se "atoraba" al abrir submenus: Bootstrap posiciona el
       dropdown con Popper (position absolute inline) y Minia recorta el
       .topnav con max-height + overflow, asi que el submenu quedaba flotando
       o cortado. Al no ser flotante el menu ya crece con la pagina, asi que se
       levanta el recorte y el submenu fluye en linea dentro de la lista. */
    .orliv-minia .topnav {
        max-height: none;
        overflow: visible;
    }

    .orliv-minia .topnav .dropdown .dropdown-menu {
        position: static !important;
        transform: none !important;
        inset: auto !important;
        width: 100%;
        min-width: 0;
        margin: 0;
        padding: 0 0 6px;
        border: 0;
        box-shadow: none;
        background: transparent;
    }

    .orliv-minia .topnav .dropdown .dropdown-menu .dropdown-item,
    .orliv-minia .topnav .dropdown .dropdown-menu .dropdown-header {
        padding-left: 42px;
        min-height: 40px;
    }

    .orliv-minia .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .orliv-minia .page-content {
        padding-left: 4px;
        padding-right: 4px;
    }

    .orliv-minia .stats-grid {
        grid-template-columns: 1fr;
    }

    .orliv-minia .panel {
        padding: 18px;
    }
}

/* Header, identidad y menú de usuario */
.orliv-minia .navbar-header,
.orliv-minia .navbar-header > .d-flex {
    align-items: center;
}

body[data-layout="horizontal"] .orliv-minia .orliv-brand-box {
    width: 172px !important;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 0 18px !important;
}

.orliv-minia .orliv-brand-box .logo {
    height: 70px;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    line-height: 1;
}

.orliv-minia .orliv-brand-box .logo-light,
.orliv-minia .orliv-brand-box .logo-sm {
    display: none !important;
}

.orliv-minia .orliv-brand-box .logo-dark,
.orliv-minia .orliv-brand-box .logo-dark .logo-lg {
    display: inline-flex !important;
}

.orliv-minia .orliv-brand-box .logo-lg,
.orliv-minia .orliv-brand-box .logo-sm {
    height: 42px;
    align-items: center;
    justify-content: flex-start;
}

.orliv-minia .orliv-brand-box img {
    display: block;
    width: 112px;
    height: 38px;
    max-width: 100%;
    object-fit: contain;
    object-position: left center;
}

.orliv-minia .orliv-user-menu {
    height: 44px;
    min-height: 44px;
    max-width: 270px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 5px 10px;
    margin-left: 4px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
}

.orliv-minia .orliv-user-menu:hover,
.orliv-minia .orliv-user-menu[aria-expanded="true"] {
    background: var(--orliv-ultralight);
    color: var(--blue);
}

.orliv-user-avatar {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: inline-grid;
    place-items: center;
    border-radius: 50%;
    background: var(--blue);
    color: #fff;
    font-size: 12px;
    font-weight: 800;
    line-height: 1;
}

.orliv-user-name {
    max-width: 178px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 12px;
    line-height: 1.2;
}

.orliv-user-chevron {
    flex: 0 0 auto;
    font-size: 17px;
    line-height: 1;
}

.orliv-minia .dropdown-menu {
    padding: 6px;
    border-color: var(--line);
    border-radius: 8px;
    box-shadow: 0 12px 28px rgba(15, 23, 42, .12);
}

.orliv-minia .dropdown-item,
.orliv-minia .dropdown-item-text {
    min-height: 34px;
    display: flex;
    align-items: center;
    padding: 7px 9px;
    border-radius: 6px;
    font-size: 12px;
}

/* Breadcrumb completo con regreso rápido */
.orliv-breadcrumbs {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    min-width: 0;
}

.breadcrumb-back {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    color: var(--navy);
    cursor: pointer;
}

.breadcrumb-back:hover {
    border-color: var(--blue);
    color: var(--blue);
    background: var(--orliv-ultralight);
}

.orliv-breadcrumbs .breadcrumb {
    flex-wrap: wrap;
    justify-content: flex-end;
    row-gap: 4px;
}

/* Formularios y superficies responsivas */
.orliv-form-card {
    width: min(820px, 100%);
    margin-bottom: 24px;
}

.orliv-form-card .card-body {
    padding: 24px;
}

.form-hint {
    margin: 2px 0 16px;
    padding: 10px 12px;
    border-left: 3px solid var(--blue);
    background: var(--orliv-ultralight);
    color: var(--slate);
    font-size: 12px;
}

.form-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
}

.footer-powered {
    gap: 8px;
    white-space: nowrap;
}

.footer-powered span {
    display: inline-block;
    color: var(--slate);
    font-size: 11px;
}

.footer-powered img {
    object-fit: contain;
}

@media (max-width: 991.98px) {
    body[data-layout="horizontal"] .orliv-minia .orliv-brand-box {
        width: 132px !important;
        padding: 0 10px !important;
    }

    .orliv-minia .orliv-brand-box img {
        width: 96px;
    }

    .orliv-minia .topnav-menu .navbar-nav {
        padding: 8px 0;
    }

    .orliv-minia .topnav .navbar-nav .nav-link {
        min-height: 42px;
        display: flex;
        align-items: center;
        padding: 10px 14px;
    }

    .orliv-breadcrumbs {
        margin-top: 14px;
        justify-content: flex-start;
    }

    .orliv-breadcrumbs .breadcrumb {
        justify-content: flex-start;
    }
}

@media (max-width: 767.98px) {
    .orliv-minia .page-title-box {
        align-items: flex-start !important;
    }

    .orliv-form-card .card-body,
    .orliv-minia .card-body {
        padding: 18px;
    }

    .orliv-minia .table-responsive,
    .orliv-minia .table-wrap {
        width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .orliv-minia .resource-card,
    .orliv-minia .qr-card-row {
        padding: 16px;
    }
}

/* Compact page heading */
.orliv-minia .orliv-title-stack {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    padding-bottom: 16px;
}

.orliv-minia .orliv-title-stack .orliv-breadcrumbs {
    order: 0;
    justify-content: flex-start;
    gap: 6px;
    margin: 0;
}

.orliv-minia .orliv-title-stack .orliv-page-heading {
    order: 1;
}

.orliv-minia .orliv-title-stack .breadcrumb {
    justify-content: flex-start;
    font-size: 10px;
    line-height: 1.2;
}

.orliv-minia .orliv-title-stack .breadcrumb-item + .breadcrumb-item::before {
    font-size: 10px;
}

.orliv-minia .orliv-title-stack .breadcrumb-back {
    width: 26px;
    height: 26px;
    flex-basis: 26px;
    border-radius: 6px;
    font-size: 14px;
}

/* Aligned filtering actions */
.orliv-minia .resource-toolbar {
    align-items: flex-end;
}

.orliv-minia .resource-filter-actions {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 40px;
}

.orliv-minia .resource-filter-actions .btn {
    min-height: 40px;
    margin: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    white-space: nowrap;
}

.orliv-minia .filter-reset {
    padding: 8px 10px;
    border: 0;
    background: transparent;
    color: var(--slate);
    font-size: 11px;
}

.orliv-minia .filter-reset i {
    font-size: 16px;
}

.orliv-minia .filter-reset:hover {
    background: var(--orliv-ultralight);
    color: var(--blue);
}

/* Link cards use three actual regions: icon, content and actions. */
.orliv-minia .link-resource-card {
    grid-template-columns: 40px minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
}

.orliv-minia .link-resource-card .resource-body {
    min-width: 0;
}

.orliv-minia .link-resource-card .shortline,
.orliv-minia .link-resource-card .destination {
    max-width: 100%;
    overflow: hidden;
}

.orliv-minia .link-resource-card .shortline {
    display: inline-flex;
    align-items: center;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.orliv-minia .link-resource-card .card-actions {
    align-self: center;
    padding-left: 0;
}

@media (max-width: 767.98px) {
    .orliv-minia .resource-filter-actions {
        width: 100%;
    }

    .orliv-minia .resource-filter-actions .btn {
        flex: 1 1 0;
    }

    .orliv-minia .link-resource-card {
        grid-template-columns: 36px minmax(0, 1fr);
        align-items: start;
        padding: 16px;
    }

    .orliv-minia .link-resource-card .resource-icon {
        grid-column: 1;
        grid-row: 1;
    }

    .orliv-minia .link-resource-card .resource-body {
        grid-column: 2;
        grid-row: 1;
    }

    .orliv-minia .link-resource-card .card-actions {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-content: flex-end;
        width: 100%;
        padding-top: 12px;
        border-top: 1px solid var(--line);
    }

    .orliv-minia .link-resource-card .destination,
    .orliv-minia .link-resource-card .shortline {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 575.98px) {
    body[data-layout="horizontal"] .orliv-minia .orliv-brand-box {
        width: 92px !important;
        padding: 0 6px !important;
    }

    .orliv-minia .orliv-brand-box img {
        width: 78px;
        height: 32px;
    }

    .orliv-minia .navbar-header {
        padding: 0 8px;
    }

    .orliv-minia .orliv-user-menu {
        width: 42px;
        max-width: 42px;
        padding: 5px;
        gap: 0;
    }

    .orliv-user-chevron {
        display: none;
    }

    .orliv-minia .page-content {
        padding-left: 0;
        padding-right: 0;
    }

    .orliv-minia .container-fluid {
        padding-left: 12px;
        padding-right: 12px;
    }

    .orliv-breadcrumbs {
        width: 100%;
        overflow-x: auto;
        padding-bottom: 3px;
    }

    .orliv-breadcrumbs .breadcrumb {
        flex-wrap: nowrap;
        white-space: nowrap;
    }

    .form-actions {
        align-items: stretch;
        flex-direction: column-reverse;
    }

    .form-actions .btn {
        width: 100%;
        justify-content: center;
    }

    .footer-powered {
        white-space: normal;
    }
}

/* Resource filters */
.orliv-minia .resource-toolbar {
    align-items: end;
}

.orliv-minia .resource-filter-form {
    display: flex;
    align-items: flex-end;
    flex: 1 1 auto;
    gap: 10px;
    min-width: 0;
    flex-wrap: wrap;
}

.orliv-minia .resource-filter-form > label {
    margin-bottom: 0 !important;
}

.orliv-minia .resource-filter-form .filter-input {
    flex: 1 1 230px;
    width: auto;
    max-width: 340px;
}

.orliv-minia .resource-filter-form .filter-input input {
    height: 40px;
    padding-left: 38px !important;
    background: #fff;
    border-color: var(--line);
}

.orliv-minia .resource-filter-form .filter-input i {
    z-index: 1;
    color: var(--slate);
    pointer-events: none;
}

.orliv-minia .resource-toolbar .toolbar-right {
    align-self: end;
    min-height: 40px;
}

.orliv-minia .resource-toolbar .toolbar-right .btn {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0;
    white-space: nowrap;
}

.orliv-minia .compact-filter {
    flex: 0 1 148px;
    margin: 0;
}

.orliv-minia .compact-filter > span {
    display: block;
    margin-bottom: 5px;
    color: var(--slate);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.orliv-minia .resource-filter-form input,
.orliv-minia .resource-filter-form select {
    min-height: 40px;
}

.orliv-minia .filter-submit,
.orliv-minia .icon-filter-reset {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
}

.orliv-minia .icon-filter-reset {
    width: 38px;
    padding: 0;
    border: 1px solid var(--line);
    background: #fff;
    color: var(--slate);
}

/* OneLink workspace */
.palette-group { margin-top:18px; }
.palette-group h3 { margin:0 0 10px; font-size:11px; color:#667085; text-transform:uppercase; }
.palette-picker { display:grid; grid-template-columns:repeat(auto-fit,minmax(118px,1fr)); gap:12px; }
.palette-option { position:relative; display:grid; gap:8px; cursor:pointer; }
.palette-option input { position:absolute; opacity:0; pointer-events:none; }
.palette-swatch { height:64px; padding:10px; border:2px solid #dde3ee; border-radius:7px; background:var(--palette-bg); display:flex; align-items:center; gap:7px; }
.palette-swatch i,.palette-swatch b,.palette-swatch em { display:block; border-radius:50%; width:14px; height:14px; }
.palette-swatch i { background:var(--palette-accent); }
.palette-swatch b { background:var(--palette-text); }
.palette-swatch em { background:var(--palette-surface); border:1px solid rgba(148,163,184,.35); }
.palette-option input:checked + .palette-swatch { border-color:#1557ff; box-shadow:0 0 0 3px #eaf0ff; }
.palette-option strong { font-size:12px; color:#0f172a; }

/* Desplegables de personalización de la OneLink Page */
.orliv-minia .one-page-personalize > summary i { margin-right:8px; color:var(--blue); }
.orliv-minia .one-page-personalize .style-choice-group:first-of-type { margin-top:4px; }

/* Selectores de estilo (forma de foto, fondo, check de verificación, fuente) */
.style-choice-group { margin-top:18px; }
.orliv-minia .style-choice-label { display:block; margin:0 0 8px; font-size:11px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; color:var(--slate); }
.style-choice-row { display:flex; flex-wrap:wrap; gap:12px; }
.style-choice { position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; margin:0; cursor:pointer; }
.style-choice input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.style-choice-preview { width:54px; height:54px; display:grid; place-items:center; border:2px solid #dde3ee; border-radius:10px; background:#fff; overflow:hidden; transition:border-color .15s ease, box-shadow .15s ease; }
.style-choice input:checked + .style-choice-preview { border-color:#1557ff; box-shadow:0 0 0 3px #eaf0ff; }
.style-choice input:focus-visible + .style-choice-preview { border-color:#1557ff; }
.style-choice-text { font-size:11px; font-weight:600; color:#0f172a; }
/* Forma de foto */
.style-choice-preview.shape-square::after,
.style-choice-preview.shape-round::after { content:''; width:32px; height:32px; background:linear-gradient(135deg,#1557ff,#05265f); }
.style-choice-preview.shape-square::after { border-radius:7px; }
.style-choice-preview.shape-round::after { border-radius:50%; }
/* Miniaturas de fondo */
.style-choice-preview.fxp-solid { background:#eef2f7; }
.style-choice-preview.fxp-gradient { background:linear-gradient(160deg,#eef2f7,#1557ff); }
.style-choice-preview.fxp-radial { background:radial-gradient(120% 82% at 50% 12%,#5b86ff 0%,#eef2f7 62%); }
.style-choice-preview.fxp-mesh { background-color:#eef2f7; background-image:radial-gradient(40% 40% at 15% 12%,rgba(21,87,255,.5),transparent),radial-gradient(45% 45% at 85% 22%,rgba(15,23,42,.28),transparent),radial-gradient(55% 55% at 50% 105%,rgba(21,87,255,.4),transparent); }
.style-choice-preview.fxp-dots { background-color:#eef2f7; background-image:radial-gradient(rgba(15,23,42,.3) 1.5px,transparent 1.6px); background-size:10px 10px; }
.style-choice-preview.fxp-grid { background-color:#eef2f7; background-image:linear-gradient(rgba(15,23,42,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(15,23,42,.22) 1px,transparent 1px); background-size:12px 12px; }
.style-choice-preview.fxp-diagonal { background-color:#eef2f7; background-image:repeating-linear-gradient(45deg,rgba(15,23,42,.16) 0 1px,transparent 1px 8px); }
.style-choice-preview.fxp-rings { background-color:#eef2f7; background-image:repeating-radial-gradient(circle at 50% 8%,transparent 0 8px,rgba(15,23,42,.16) 8px 9px); }
.style-choice-preview.fxp-rays { background-color:#eef2f7; background-image:repeating-conic-gradient(from 0deg at 50% 20%,rgba(15,23,42,.14) 0deg 8deg,transparent 8deg 16deg); }
.style-choice-preview.fxp-glitter { background-color:#0f172a; background-image:radial-gradient(rgba(120,180,255,.85) 1px,transparent 1.5px),radial-gradient(rgba(255,255,255,.6) 1px,transparent 1.5px); background-size:11px 11px,15px 15px; background-position:0 0,5px 7px; }
/* Miniatura de tipografía */
.style-choice-preview.font-preview { font-size:23px; font-weight:700; color:#0f172a; line-height:1; }
/* Miniaturas de check */
.style-choice-preview.badge-none::after { content:''; width:22px; height:22px; border:2px dashed #cbd5e1; border-radius:50%; }
.style-choice-preview.badge-blue i,
.style-choice-preview.badge-white i { display:grid; place-items:center; width:27px; height:27px; border-radius:50%; font-size:12px; }
.style-choice-preview.badge-blue i { background:#1d9bf0; color:#fff; }
.style-choice-preview.badge-white i { background:#fff; color:#1d9bf0; border:1px solid #dde3ee; }
.profile-plan-card { margin-top:18px; }
.profile-feature-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px; }
.profile-feature { display:flex; align-items:center; gap:9px; padding:10px 12px; border:1px solid #dde3ee; border-radius:7px; color:#98a2b3; font-size:13px; }
.profile-feature.is-enabled { color:#0f172a; background:#f4f7ff; border-color:#cbd8ff; }
.profile-feature.is-enabled i { color:#15803d; }
.profile-section-title { margin:22px 0 10px; font-size:14px; color:#0f172a; }

.user-editor-layout { grid-template-columns:minmax(0,1fr) minmax(300px,380px); align-items:start; }
.role-plan-guide { position:sticky; top:calc(var(--chrome-bottom) + var(--sticky-gap)); }
.role-plan-guide h2 { margin:0; font-size:16px; }
.access-guide-section { margin-top:20px; }
.access-guide-section h3 { margin:0 0 9px; font-size:11px; color:#667085; text-transform:uppercase; }
.access-guide-section article,
.guide-list article { display:grid; grid-template-columns:28px minmax(0,1fr); gap:9px; padding:10px 0; border-top:1px solid #eef2f7; }
.access-guide-section article > i,
.guide-list article > i { width:28px; height:28px; display:grid; place-items:center; border-radius:6px; background:#eaf0ff; color:#1557ff; font-size:12px; }
.access-guide-section strong,
.guide-list strong { display:block; font-size:12px; color:#0f172a; }
.access-guide-section p,
.guide-list p { margin:2px 0 0; font-size:11px; line-height:1.45; color:#667085; }

/* La opción seleccionada en el formulario se resalta en la guía lateral para
   que rol y plan elegidos se lean sin cruzar la vista de un lado a otro. */
.guide-list article:first-child { border-top:0; padding-top:0; }
.guide-list article.is-current {
    margin:0 -8px;
    padding:10px 8px;
    border-top-color:transparent;
    border-radius:8px;
    background:#f4f7ff;
    box-shadow:inset 2px 0 0 #1557ff;
}

/* Ficha integral de usuario para superadmin. Base móvil; los paneles se
   amplían progresivamente sin alterar el orden lógico del documento. */
.user-detail-hero { display:flex; flex-direction:column; gap:16px; margin-bottom:12px; padding:18px; border:1px solid #dde3ee; border-radius:12px; background:#fff; box-shadow:0 8px 22px rgba(15,23,42,.05); }
.user-detail-identity { display:flex; align-items:flex-start; gap:13px; min-width:0; }
.user-detail-avatar { flex:0 0 48px; width:48px; height:48px; display:grid; place-items:center; border-radius:12px; background:#eaf0ff; color:#1557ff; font-size:20px; font-weight:800; }
.user-detail-identity h2 { margin:3px 0 2px; font-size:22px; line-height:1.2; overflow-wrap:anywhere; }
.user-detail-identity p { margin:0; color:#667085; overflow-wrap:anywhere; }
.user-detail-badges { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.user-detail-actions { display:flex; flex-wrap:wrap; gap:8px; }
.user-detail-actions form { margin:0; }
.user-detail-actions .btn { min-height:42px; flex:1 1 auto; }
.user-detail-nav { display:flex; gap:4px; margin:0 0 18px; padding:5px; overflow-x:auto; border:1px solid #dde3ee; border-radius:10px; background:#f4f7fb; scrollbar-width:thin; }
.user-detail-nav a { flex:0 0 auto; min-height:42px; display:flex; align-items:center; gap:7px; padding:0 13px; border-radius:7px; color:#55657d; font-size:12px; font-weight:700; white-space:nowrap; text-decoration:none; }
.user-detail-nav a:hover,.user-detail-nav a:focus-visible { background:#fff; color:#1557ff; }
.user-detail-stats { grid-template-columns:1fr; }
.user-detail-stats article small { display:block; margin-top:7px; color:#7a879b; font-size:11px; }
.user-detail-grid { display:grid; grid-template-columns:1fr; gap:14px; margin-bottom:14px; }
.user-detail-definition-list { display:grid; gap:0; margin:0; }
.user-detail-definition-list > div { display:grid; grid-template-columns:minmax(100px,.8fr) minmax(0,1.2fr); gap:12px; padding:11px 0; border-top:1px solid #eef2f7; }
.user-detail-definition-list > div:first-child { border-top:0; padding-top:0; }
.user-detail-definition-list dt { color:#667085; font-size:12px; }
.user-detail-definition-list dd { margin:0; color:#0f172a; font-size:12px; font-weight:700; text-align:right; overflow-wrap:anywhere; }
.user-resource-summary { display:grid; gap:9px; }
.user-resource-summary article { display:flex; align-items:center; gap:11px; padding:12px; border:1px solid #e4e9f1; border-radius:9px; background:#f8faff; }
.user-resource-summary article > i { width:36px; height:36px; display:grid; place-items:center; border-radius:8px; background:#eaf0ff; color:#1557ff; }
.user-resource-summary strong,.user-resource-summary span,.user-resource-summary small { display:block; }
.user-resource-summary strong { color:#0f172a; font-size:18px; }
.user-resource-summary span { color:#263b5b; font-size:12px; font-weight:700; }
.user-resource-summary small { color:#7a879b; font-size:10px; }
.user-performance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.user-performance-grid article { min-width:0; padding:13px; border:1px solid #e4e9f1; border-radius:9px; background:#f8faff; }
.user-performance-grid span,.user-performance-grid small { display:block; color:#667085; font-size:11px; }
.user-performance-grid strong { display:block; margin:6px 0 3px; color:#0f172a; font-size:22px; }
.user-recent-list { display:grid; gap:7px; }
.user-recent-list article { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:9px; padding:10px 0; border-top:1px solid #eef2f7; }
.user-recent-list article:first-child { border-top:0; }
.user-recent-list strong,.user-recent-list small { display:block; }
.user-recent-list strong { font-size:12px; overflow-wrap:anywhere; }
.user-recent-list small { margin-top:2px; color:#7a879b; font-size:10px; }
.user-resource-type { padding:5px 7px; border-radius:6px; background:#eef3ff; color:#1557ff; font-size:10px; font-weight:700; white-space:nowrap; }
.user-subscription-layout { display:grid; grid-template-columns:1fr; gap:18px; }
.user-current-plan { min-width:0; padding:16px; border:1px solid #cbd8ff; border-radius:10px; background:#f4f7ff; }
.user-current-plan > span { color:#667085; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.user-current-plan > strong { display:block; margin:5px 0; color:#05265f; font-size:22px; }
.user-current-plan > p { margin:0 0 14px; color:#667085; font-size:12px; }
.user-plan-assignment { display:grid; grid-template-columns:1fr; gap:8px; }
.user-plan-assignment label { min-width:0; }
.user-plan-assignment .btn { min-height:44px; }
.user-payment-totals { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:14px; padding:11px 13px; border-radius:8px; background:#f4f7fb; }
.user-payment-totals span { margin-right:auto; color:#667085; font-size:12px; }
.user-payment-totals strong { color:#05265f; font-size:14px; }
.user-plan-usage { display:grid; gap:9px; }
.user-plan-usage article { padding:11px; border:1px solid #e4e9f1; border-radius:9px; }
.user-plan-usage article > div { display:flex; justify-content:space-between; gap:12px; }
.user-plan-usage strong,.user-plan-usage span { font-size:11px; }
.user-plan-usage span,.user-plan-usage small { color:#7a879b; }
.user-plan-usage small { display:block; margin-top:5px; font-size:10px; }
.user-plan-usage progress { width:100%; height:7px; margin-top:8px; accent-color:#1557ff; }
.user-plan-usage article.is-unavailable { background:#fafbfc; }
.user-plan-usage-status { margin:8px 0 0; color:#7a879b; font-size:10px; line-height:1.4; }
.user-permission-list { display:grid; gap:11px; }
.user-permission-list article { padding:12px; border:1px solid #e4e9f1; border-radius:9px; }
.user-permission-list article > strong { display:block; margin-bottom:8px; font-size:12px; }
.user-permission-list article > div { display:flex; flex-wrap:wrap; gap:6px; }
.user-permission-list .permission-tag { display:inline-flex; align-items:center; gap:5px; padding:6px 8px; border-radius:6px; font-size:10px; }
.user-permission-list .is-granted { background:#eaf8ef; color:#16713a; }
.user-permission-list .is-denied { background:#f3f4f6; color:#7a879b; }
.user-history-columns { display:grid; grid-template-columns:1fr; gap:20px; }
.user-history-columns h3 { margin:0 0 9px; font-size:13px; }
.user-history-columns .table-wrap { max-width:100%; overflow-x:auto; }
.user-history-columns table { min-width:620px; }
.user-empty-copy { margin:0; padding:14px; border:1px dashed #d7dee9; border-radius:8px; color:#7a879b; font-size:12px; text-align:center; }
.user-danger-zone { display:flex; flex-direction:column; align-items:flex-start; gap:14px; border-color:#f3c7c7; }
.user-danger-zone h2 { margin:0; color:#991b1b; font-size:15px; }
.user-danger-zone p { margin:4px 0 0; color:#7f1d1d; font-size:12px; }
.user-danger-zone form { margin:0; }

@media (min-width:640px) {
    .user-detail-hero { flex-direction:row; align-items:center; justify-content:space-between; }
    .user-detail-actions .btn { flex:0 0 auto; }
    .user-detail-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .user-resource-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .user-resource-summary article { align-items:flex-start; }
    .user-performance-grid { grid-template-columns:repeat(5,minmax(0,1fr)); }
    .user-plan-assignment { grid-template-columns:minmax(0,1fr) auto; align-items:end; }
    .user-danger-zone { flex-direction:row; align-items:center; justify-content:space-between; }
}

@media (min-width:960px) {
    .user-detail-stats { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .user-detail-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .user-subscription-layout { grid-template-columns:minmax(280px,.9fr) minmax(0,1.1fr); }
    .user-history-columns { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.impersonation-bar { position:fixed; left:50%; bottom:18px; transform:translateX(-50%); z-index:1200; width:min(680px,calc(100% - 28px)); min-height:46px; padding:8px 10px 8px 14px; display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px solid #9bb5ff; border-radius:8px; background:#05265f; color:#fff; box-shadow:0 12px 32px rgba(3,26,66,.24); font-size:12px; }
.impersonation-bar form { margin:0; }

/* Simulacion de plan (superadmin) */
.plan-sim-form { margin: 0; }
.plan-sim-header {
    display: flex;
    align-items: center;
    padding: 6px 9px 3px;
    color: var(--slate);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.orliv-minia .plan-sim-form .dropdown-item { width: 100%; text-align: left; background: transparent; border: 0; }
.orliv-minia .plan-sim-form .dropdown-item.active { background: var(--accent-quiet); color: var(--blue); }
.plan-simulation-bar { background: var(--blue, #1557FF); border-color: #9bb5ff; }
.plan-simulation-bar button { color: #1557FF; }
.impersonation-bar button { min-height:30px; border:0; border-radius:6px; padding:6px 10px; background:#fff; color:#05265f; font-size:11px; font-weight:700; }
.orliv-minia .one-page-form {
    grid-template-columns: minmax(300px, .72fr) minmax(520px, 1.28fr);
    gap: 20px;
}

.orliv-minia .one-page-form > .panel {
    min-width: 0;
}

.orliv-minia .one-page-profile-upload {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 12px 16px;
    align-items: center;
    padding: 14px;
    border: 1px solid var(--orliv-border);
    border-radius: 6px;
    background: var(--orliv-bg-soft);
}

.orliv-minia .one-page-profile-upload > img,
.orliv-minia .one-page-profile-placeholder {
    width: 64px;
    height: 64px;
    border-radius: 6px;
    object-fit: cover;
    background: #fff;
    border: 1px solid var(--orliv-border);
}

.orliv-minia .one-page-profile-placeholder {
    display: grid;
    place-items: center;
    color: var(--orliv-muted);
    font-size: 22px;
}

.orliv-minia .one-page-profile-field { min-width: 0; }

.orliv-minia .one-page-profile-field input[type="file"] {
    height: auto;
    min-height: 40px;
    padding: 7px 10px;
    background: #fff;
}

.orliv-minia .one-page-profile-field small {
    display: block;
    margin-top: 5px;
    color: var(--orliv-muted);
    font-weight: 400;
}

.orliv-minia .one-page-profile-remove {
    grid-column: 2;
    margin: 0;
}

@media (max-width: 520px) {
    .orliv-minia .one-page-profile-upload { grid-template-columns: 52px minmax(0, 1fr); }
    .orliv-minia .one-page-profile-upload > img,
    .orliv-minia .one-page-profile-placeholder { width: 52px; height: 52px; }
}

.orliv-minia .one-page-buttons-panel {
    position: sticky;
    top: calc(var(--chrome-bottom) + var(--sticky-gap));
}

.orliv-minia .one-link-items {
    gap: 12px;
}

.orliv-minia .one-link-item-row {
    grid-template-columns: minmax(130px, .75fr) minmax(150px, 1fr) minmax(210px, 1.45fr) auto;
    gap: 10px;
    padding: 12px;
    background: var(--orliv-ultralight);
}

/* Campo de valor con lada opcional (WhatsApp / Teléfono). El selector de
   lada solo se muestra cuando la fila es de tipo teléfono; en el resto de
   tipos el input ocupa todo el ancho como siempre. */
/* Especificidad alineada con `.one-link-item-row label > span` para que el
   contenedor flex gane sobre la regla del texto de la etiqueta. */
.orliv-minia .one-link-item-row .one-link-value-field {
    display: flex;
    align-items: stretch;
    gap: 8px;
    min-width: 0;
    margin: 0;
    text-transform: none;
}

.orliv-minia .one-link-item-row .one-link-value-field input {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
}

.orliv-minia .one-link-item-row .one-link-dialcode {
    display: none;
    flex: 0 0 auto;
    width: auto;
    min-width: 96px;
    padding-right: 6px;
    background: #fff;
    font-weight: 600;
}

.orliv-minia .one-link-item-row.is-phone .one-link-dialcode {
    display: inline-flex;
}

/* Controles de la fila: arrastrar, subir, bajar y eliminar. */
.one-link-item-actions {
    display: flex;
    align-items: center;
    gap: 6px;
    align-self: end;
    min-height: 38px;
}

.one-link-item-actions .icon-only {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
}

.one-link-item-actions [data-drag-handle] {
    cursor: grab;
    touch-action: none;
    color: var(--slate);
}

.one-link-item-row.is-dragging {
    opacity: .55;
    border-style: dashed;
}

.one-link-item-row.is-reordered {
    border-color: var(--blue);
    box-shadow: 0 0 0 .16rem rgba(21, 87, 255, .12);
    transition: box-shadow .3s ease, border-color .3s ease;
}

.orliv-minia .one-link-item-row label {
    min-width: 0;
    margin: 0;
}

.orliv-minia .one-link-item-row label > span {
    display: block;
    margin-bottom: 5px;
    color: var(--slate);
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
}

.orliv-minia .one-link-item-row .icon-only {
    align-self: end;
}

.orliv-minia .one-page-submit {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

/* QR controls */
.orliv-minia .check-control {
    align-items: flex-start;
    min-height: 58px;
    margin: 0 0 10px;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--orliv-ultralight);
    cursor: pointer;
}

.orliv-minia .check-control input[type="checkbox"] {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
}

.orliv-minia .check-control span,
.orliv-minia .check-control strong,
.orliv-minia .check-control small {
    display: block;
}

.orliv-minia .check-control strong {
    color: var(--ink);
    font-size: 12px;
}

.orliv-minia .check-control small {
    margin-top: 3px;
    font-size: 11px;
    font-weight: 500;
}

.orliv-minia .check-control.check-danger input {
    accent-color: var(--danger);
}

.orliv-minia .qr-color-control input[type="color"],
.orliv-minia .page-color-grid input[type="color"] {
    width: 100%;
    min-height: 42px;
    padding: 4px;
    border: 1px solid var(--line);
    background: #fff;
    cursor: pointer;
}

.orliv-minia .qr-palette-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.orliv-minia .qr-palette-control {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
}

.orliv-minia .qr-palette-control:has(.qr-color-picker[open]) {
    grid-column: 1 / -1;
}

.orliv-minia .qr-palette-control legend {
    float: none;
    width: 100%;
    margin: 0 0 6px;
    padding: 0;
    color: var(--navy);
    font-size: 11px;
    font-weight: 700;
}

.orliv-minia details.qr-color-picker {
    position: relative;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
}

.orliv-minia .qr-color-picker > summary {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) 16px;
    align-items: center;
    gap: 9px;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--ink);
    cursor: pointer;
    list-style: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.orliv-minia .qr-color-picker > summary::-webkit-details-marker {
    display: none;
}

.orliv-minia .qr-color-picker > summary:hover,
.orliv-minia .qr-color-picker[open] > summary {
    border-color: var(--blue);
    box-shadow: 0 0 0 .16rem rgba(21, 87, 255, .1);
}

.orliv-minia .qr-color-picker > summary i {
    color: var(--slate);
    font-size: 17px;
    transition: transform .15s ease;
}

.orliv-minia .qr-color-picker[open] > summary i {
    transform: rotate(180deg);
}

.orliv-minia .qr-color-current {
    display: block;
    width: 22px;
    height: 22px;
    border: 1px solid rgba(15, 23, 42, .14);
    border-radius: 5px;
    background: var(--swatch);
}

.orliv-minia .qr-color-value {
    overflow: hidden;
    font-size: 11px;
    font-weight: 700;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.orliv-minia .qr-palette-popover {
    width: 100%;
    margin-top: 7px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    box-shadow: 0 8px 22px rgba(3, 26, 66, .08);
}

.orliv-minia .qr-palette-grid {
    display: grid;
    grid-template-columns: repeat(20, minmax(11px, 1fr));
    gap: 2px;
}

.orliv-minia label.qr-palette-option {
    position: relative;
    display: block;
    min-width: 0;
    margin: 0;
    cursor: pointer;
}

.orliv-minia .qr-palette-option input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.orliv-minia .qr-palette-option span {
    display: block;
    aspect-ratio: 1;
    min-height: 13px;
    border: 1px solid rgba(15, 23, 42, .08);
    border-radius: 2px;
    background: var(--swatch);
    transition: transform .12s ease, box-shadow .12s ease;
}

.orliv-minia .qr-palette-option:hover span {
    position: relative;
    z-index: 1;
    transform: scale(1.12);
}

.orliv-minia .qr-palette-option input:focus-visible + span,
.orliv-minia .qr-palette-option input:checked + span {
    position: relative;
    z-index: 2;
    box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--blue);
}

.orliv-minia .qr-palette-legacy-value {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
    pointer-events: none;
}

.orliv-minia .qr-palette-status {
    display: grid;
    grid-template-columns: 16px minmax(0, 1fr) auto;
    align-items: center;
    gap: 7px;
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid var(--line);
    color: var(--slate);
    font-size: 10px;
}

.orliv-minia .qr-palette-status .qr-color-current {
    width: 16px;
    height: 16px;
    border-radius: 4px;
}

.orliv-minia .qr-palette-status strong {
    color: var(--ink);
    font-size: 10px;
}

@media (max-width: 520px) {
    .orliv-minia .qr-palette-fields {
        grid-template-columns: 1fr;
    }
}

/* Superadmin OneLink palettes */
.orliv-minia .palette-admin-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}

.orliv-minia .palette-key-hidden { display: none; }

/* Menús del topnav: un solo patrón para el desplegable simple (Recursos, Mi
   cuenta) y para el mega menú de Administración, que reparte sus grupos en
   columnas para que ninguna lista supere los cuatro elementos. */
.orliv-minia .editor-menu,
.orliv-minia .orliv-menu { min-width: 210px; }

.orliv-minia .editor-menu .dropdown-header,
.orliv-minia .orliv-menu .dropdown-header {
    display: flex;
    align-items: center;
    padding: 8px 14px 5px;
    color: var(--navy);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.orliv-minia .editor-menu .editor-menu-child,
.orliv-minia .orliv-menu .orliv-menu-child {
    padding-left: 34px;
    font-size: 12px;
}

/* El reparto en columnas solo se aplica cuando el menú está abierto: si se
   declara en la regla base, ese display gana al `display:none` de Bootstrap y
   el mega menú se queda visible de forma permanente. */
.orliv-minia .orliv-mega-menu {
    grid-template-columns: repeat(4, minmax(170px, 1fr));
    gap: 4px 10px;
    padding: 10px 6px;
}

.orliv-minia .orliv-mega-menu.show { display: grid; }

/* El tema abre los menús del topnav por hover solo en escritorio. */
@media (min-width: 992px) {
    .orliv-minia .topnav .dropdown:hover > .orliv-mega-menu { display: grid; }
}

.orliv-minia .orliv-mega-menu .orliv-menu-column + .orliv-menu-column {
    border-left: 1px solid var(--line, #e6eaf2);
}

.orliv-minia .orliv-mega-menu .orliv-menu-child { padding-left: 30px; }

@media (max-width: 991.98px) {
    .orliv-minia .orliv-mega-menu {
        grid-template-columns: 1fr;
        padding: 6px 0;
    }
    .orliv-minia .orliv-mega-menu .orliv-menu-column + .orliv-menu-column {
        border-left: 0;
        border-top: 1px solid var(--line, #e6eaf2);
        padding-top: 6px;
    }
}

.orliv-minia .palette-admin-card {
    display: grid;
    grid-template-columns: 86px minmax(0, 1fr) auto;
    align-items: center;
    gap: 14px;
    margin: 0;
    padding: 14px;
}

.orliv-minia .palette-admin-preview {
    aspect-ratio: 4 / 5;
    padding: 10px 8px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: var(--palette-bg);
    color: var(--palette-text);
    text-align: center;
}

.orliv-minia .palette-admin-preview > span {
    display: block;
    width: 22px;
    height: 22px;
    margin: 0 auto 7px;
    border-radius: 5px;
    background: var(--palette-surface);
}

.orliv-minia .palette-admin-preview strong {
    display: block;
    font-size: 8px;
}

.orliv-minia .palette-admin-preview i {
    display: block;
    height: 12px;
    margin-top: 7px;
    border-radius: 4px;
    background: var(--palette-button);
}

.orliv-minia .palette-admin-body {
    min-width: 0;
}

.orliv-minia .palette-admin-body h2 {
    margin: 3px 0 5px;
    font-size: 14px;
}

.orliv-minia .palette-admin-body code {
    color: var(--slate);
    font-size: 10px;
}

.orliv-minia .palette-live-preview > div {
    display: flex;
    min-height: 340px;
    margin-bottom: 18px;
    padding: 38px 24px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--palette-bg);
    color: var(--palette-text);
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.orliv-minia .palette-live-preview > div > span {
    color: var(--palette-button);
    font-size: 12px;
    font-weight: 800;
}

.orliv-minia .palette-live-preview > div > strong {
    margin-top: 34px;
    font-size: 22px;
}

.orliv-minia .palette-live-preview > div > small {
    margin-top: 7px;
}

.orliv-minia .palette-live-preview > div > button {
    width: 100%;
    min-height: 46px;
    margin-top: 38px;
    border: 0;
    border-radius: 8px;
    background: var(--palette-button);
    color: var(--palette-button-text);
}

.orliv-minia .palette-live-preview .palette-sample-surface {
    width: 100%;
    padding: 20px 16px;
    border: 1px solid color-mix(in srgb, var(--palette-text) 14%, transparent);
    border-radius: 8px;
    background: var(--palette-surface);
    box-shadow: 0 10px 24px color-mix(in srgb, var(--palette-text) 10%, transparent);
}

.orliv-minia .palette-live-preview .palette-sample-surface img {
    display: block;
    width: 72px;
    height: 72px;
    margin: 0 auto 18px;
    border-radius: 8px;
    object-fit: cover;
    background: var(--palette-bg);
}

.orliv-minia .palette-live-preview .palette-sample-surface strong {
    display: block;
    margin-top: 0;
    color: var(--palette-text);
}

.orliv-minia .palette-live-preview .palette-sample-surface small {
    display: block;
    color: var(--palette-text);
    opacity: .64;
}

/* El boton vive dentro de .palette-sample-surface, asi que la regla vieja
   `> div > button` ya no lo alcanza y quedaba con el estilo base (blanco).
   Aqui recibe los colores reales de la paleta. */
.orliv-minia .palette-live-preview .palette-sample-surface button {
    width: 100%;
    min-height: 46px;
    margin-top: 24px;
    border: 0;
    border-radius: 8px;
    background: var(--palette-button);
    color: var(--palette-button-text);
}

.orliv-minia .palette-live-preview .palette-page-sample footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin-top: auto;
    padding-top: 18px;
    color: var(--palette-text);
    font-size: 10px;
    opacity: .7;
}

.orliv-minia .palette-live-preview .palette-page-sample footer i {
    display: inline-block;
    width: 56px;
    height: 15px;
    background: var(--palette-footer-logo);
    -webkit-mask: var(--footer-logo-mask) center / contain no-repeat;
    mask: var(--footer-logo-mask) center / contain no-repeat;
}

@media (max-width: 1400px) {
    .orliv-minia .palette-admin-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 992px) {
    .orliv-minia .palette-admin-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 620px) {
    .orliv-minia .palette-admin-grid { grid-template-columns: 1fr; }
}

.orliv-minia .qr-preview canvas {
    border-radius: 0;
    transition: border-radius .18s ease;
}

.orliv-minia .qr-preview.is-rounded canvas {
    border-radius: 18px;
}

/* Editor > Permisos de planes: matriz minimalista de checkboxes */
.orliv-minia .plan-matrix-panel {
    padding: 0;
    overflow: hidden;
}

.orliv-minia .plan-matrix-wrap {
    border: 0;
    border-radius: 0;
}

.orliv-minia .plan-matrix th.plan-matrix-plan,
.orliv-minia .plan-matrix td.plan-matrix-cell {
    width: 108px;
    text-align: center;
}

/* La primera columna y las filas de grupo son <th> (scope row/colgroup) para
   que un lector de pantalla anuncie a qué permiso pertenece cada casilla. */
.orliv-minia .plan-matrix .plan-matrix-feature {
    color: var(--ink);
    font-size: 12px;
    font-weight: 600;
    text-align: left;
}

.orliv-minia .plan-matrix tbody th.plan-matrix-feature {
    background: transparent;
    text-transform: none;
    letter-spacing: normal;
}

.orliv-minia .plan-matrix-group th {
    padding: 10px 16px;
    background: var(--orliv-ultralight);
    color: var(--navy);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.orliv-minia .plan-matrix-check {
    display: inline-grid;
    place-items: center;
    margin: 0;
    cursor: pointer;
}

.orliv-minia .plan-matrix-check input {
    width: 17px;
    height: 17px;
    min-height: auto;
    margin: 0;
    accent-color: var(--blue);
    cursor: pointer;
}

.orliv-minia .plan-matrix-actions {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}

/* --- Configuración de planes: cabecera, filas y límites -------------------
   La pantalla es una reja larga de casillas y cifras. Lo que la hace legible
   no son adornos, sino tres cosas: la cabecera de columnas siempre visible, la
   fila bajo el cursor resaltada de lado a lado, y el "sin límite" distinguible
   de un cero escrito a mano. */

.orliv-minia .plan-matrix-panel .panel-head {
    margin: 0;
    padding: 18px 20px;
    border-bottom: 1px solid var(--line);
}

.orliv-minia .plan-matrix-panel .panel-head h2 {
    margin-bottom: 4px;
}

.orliv-minia .plan-matrix-panel .panel-head p {
    max-width: 72ch;
    margin: 0;
    color: var(--slate);
    font-size: 12.5px;
    line-height: 1.5;
}

/* Con dos tablas largas, perder de vista qué columna es qué plan obliga a
   subir a comprobarlo en cada fila. */
.orliv-minia .plan-matrix thead th {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--surface);
    box-shadow: inset 0 -1px 0 var(--line);
}

.orliv-minia .plan-matrix th.plan-matrix-plan {
    color: var(--navy);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.orliv-minia .plan-matrix tbody tr:not(.plan-matrix-group):hover th,
.orliv-minia .plan-matrix tbody tr:not(.plan-matrix-group):hover td {
    background: var(--orliv-ultralight);
}

/* Separador entre grupos, salvo el primero. */
.orliv-minia .plan-matrix-group:not(:first-child) th {
    border-top: 1px solid var(--line);
}

.orliv-minia .plan-limit-name {
    display: block;
}

.orliv-minia .plan-limit-hint {
    display: block;
    margin-top: 2px;
    color: var(--slate);
    font-size: 11px;
    font-weight: 400;
    line-height: 1.35;
}

.orliv-minia .plan-limit-input {
    width: 84px;
    min-height: 34px;
    margin: 0;
    padding: 4px 8px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
    color: var(--ink);
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.orliv-minia .plan-limit-input:focus {
    border-color: var(--blue);
    outline: 0;
}

/* Un 0 es "sin límite", no "cero permitidos": se apaga para que no se lea como
   una restricción y destaquen las cifras que sí limitan. */
.orliv-minia .plan-limit-input.is-unlimited {
    border-style: dashed;
    background: transparent;
    color: var(--slate);
    font-weight: 500;
}

.orliv-minia .plan-limits td.plan-matrix-cell {
    width: 116px;
}

@media (max-width: 767.98px) {
    .orliv-minia .plan-limit-input,
    .orliv-minia .plan-limits td.plan-matrix-cell {
        width: 64px;
    }

    .orliv-minia .plan-limit-input {
        padding: 4px;
    }
}

@media (max-width: 767.98px) {
    .orliv-minia .plan-matrix th.plan-matrix-plan,
    .orliv-minia .plan-matrix td.plan-matrix-cell {
        width: 56px;
        padding-left: 6px;
        padding-right: 6px;
    }

    .orliv-minia .plan-matrix td.plan-matrix-feature,
    .orliv-minia .plan-matrix th.plan-matrix-feature {
        min-width: 180px;
    }
}

/* Paginacion interna de los boxes de Analytics */
.box-pager {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}

.box-pager-btn {
    width: 28px;
    height: 28px;
    min-height: 28px;
    padding: 0;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    color: var(--navy);
    font-size: 15px;
    line-height: 1;
    cursor: pointer;
}

.box-pager-btn:hover:not(:disabled) {
    border-color: var(--blue);
    background: var(--orliv-ultralight);
    color: var(--blue);
}

.box-pager-btn:disabled {
    opacity: .4;
    cursor: default;
}

.box-pager-status {
    color: var(--slate);
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

/* Analytics navigation and header shortcut */
.orliv-minia .analytics-tabs {
    display: inline-flex;
    gap: 4px;
    margin-bottom: 18px;
    padding: 4px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
}

.orliv-minia .analytics-tabs a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 36px;
    padding: 7px 12px;
    border-radius: 7px;
    color: var(--slate);
    font-size: 12px;
    font-weight: 700;
}

.orliv-minia .analytics-tabs a.active {
    background: var(--accent-quiet);
    color: var(--blue);
}

.orliv-minia .orliv-analytics-button {
    width: 40px;
    height: 40px;
    min-height: 40px;
    margin: 0 4px;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: #fff;
    color: var(--navy);
}

.orliv-minia .orliv-analytics-button i {
    font-size: 20px;
    line-height: 1;
}

.orliv-minia .orliv-analytics-button:hover {
    border-color: #bfd0ff;
    background: var(--orliv-ultralight);
    color: var(--blue);
}

@media (max-width: 1199.98px) {
    .orliv-minia .one-page-form {
        grid-template-columns: 1fr;
    }

    .orliv-minia .one-page-buttons-panel {
        position: static;
    }
}

@media (max-width: 767.98px) {
    .orliv-minia .resource-filter-form,
    .orliv-minia .resource-filter-form .filter-input,
    .orliv-minia .compact-filter,
    .orliv-minia .filter-submit {
        width: 100%;
        max-width: none;
        flex-basis: 100%;
    }

    .orliv-minia .resource-filter-form .icon-filter-reset {
        width: 100%;
    }

    .orliv-minia .one-link-item-row {
        grid-template-columns: minmax(0, 1fr);
    }

    .orliv-minia .one-link-item-row label {
        grid-column: 1 / -1;
    }

    /* En movil los controles van en su propia fila al final, con botones
       grandes y separados para uso tactil comodo. */
    .orliv-minia .one-link-item-row .one-link-item-actions {
        grid-column: 1 / -1;
        justify-content: flex-end;
        width: 100%;
        padding-top: 10px;
        border-top: 1px solid var(--line);
    }

    .orliv-minia .one-link-item-actions .icon-only {
        width: 40px;
        height: 40px;
        flex: 0 0 40px;
    }

    .orliv-minia .one-page-submit {
        flex-direction: column-reverse;
    }

    .orliv-minia .one-page-submit .btn {
        width: 100%;
        justify-content: center;
    }

    .orliv-minia .analytics-tabs {
        width: 100%;
        overflow-x: auto;
    }

    .orliv-minia .analytics-tabs a {
        flex: 1 0 auto;
        justify-content: center;
    }
}

/* Final cascade for compact navigation and resource lists. */
.orliv-minia .resource-toolbar { align-items: flex-end; }
.orliv-minia .orliv-title-stack { align-items: flex-start; }
.orliv-minia .orliv-title-stack .orliv-breadcrumbs,
.orliv-minia .orliv-title-stack .breadcrumb { justify-content: flex-start; }
.orliv-minia .link-resource-card { grid-template-columns: 40px minmax(0, 1fr) auto; }

@media (max-width: 767.98px) {
    .orliv-minia .resource-filter-actions { width: 100%; }
    .orliv-minia .link-resource-card { grid-template-columns: 36px minmax(0, 1fr); }
}

/* Dashboard: ritmo vertical y encabezados de seccion */
/* .h-100 hace que la card mida el 100% de la columna, con lo que su
   margin-bottom (1.5rem de Minia) se desborda y las filas quedan pegadas.
   Se descuenta el margen de la altura para conservar el espacio entre filas. */
.orliv-minia .card.h-100 {
    height: calc(100% - 1.5rem) !important;
}

/* Encabezados de seccion (titulo + boton) del dashboard: permitir que el
   boton baje de linea en pantallas angostas en vez de quedar encimado. */
.orliv-minia .dashboard-section-head {
    flex-wrap: wrap;
    gap: 10px 16px;
}

/* ==========================================================================
   Estructura general del panel
   Alinea header, navegación principal y encabezados de página sobre el mismo
   eje visual. Estas reglas viven al final para neutralizar ajustes heredados
   de Minia que usaban alturas y paddings distintos.
   ========================================================================== */
@media (min-width: 992px) {
    .orliv-minia .navbar-header,
    .orliv-minia .topnav > .container-fluid {
        width: min(100%, 1440px);
        margin-right: auto;
        margin-left: auto;
        padding-right: 28px;
        padding-left: 28px;
    }

    body[data-layout="horizontal"] .orliv-minia .orliv-brand-box {
        width: 164px !important;
        padding: 0 !important;
    }

    .orliv-minia .app-search {
        width: 320px;
        max-width: 28vw;
        padding: 0;
    }

    .orliv-minia .navbar-header > .d-flex:last-child {
        gap: 9px !important;
    }

    .orliv-minia .topnav-menu {
        min-height: 56px;
        padding: 0;
    }

    .orliv-minia .topnav-menu .navbar-collapse,
    .orliv-minia .topnav-menu .navbar-nav {
        min-height: 56px;
        align-items: center;
    }

    .orliv-minia .topnav-menu .navbar-nav {
        gap: 6px;
    }

    .orliv-minia .topnav .navbar-nav .nav-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 7px;
        min-height: 40px;
        margin: 0;
        padding: 0 13px;
        border-radius: 8px;
        line-height: 1;
    }

    .orliv-minia .topnav .navbar-nav .nav-link > i {
        margin-right: 0 !important;
        font-size: 16px;
        line-height: 1;
    }

    .orliv-minia .topnav .navbar-nav .nav-link:hover {
        background: var(--orliv-ultralight);
    }

    .orliv-minia .topnav .navbar-nav .nav-link.active {
        color: var(--blue);
        background: var(--accent-quiet);
    }
}

.orliv-minia .page-title-box.orliv-title-stack {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 18px 28px;
    min-height: 82px;
    margin: 0 0 22px;
    padding: 16px 18px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 5px 18px rgba(15, 23, 42, .035);
}

.orliv-minia .orliv-title-stack .orliv-page-heading {
    order: 0;
    min-width: 0;
}

.orliv-minia .orliv-title-stack .orliv-page-heading h4 {
    margin: 0;
    font-size: 20px !important;
    line-height: 1.2;
}

.orliv-minia .orliv-title-stack .orliv-page-heading p {
    margin-top: 5px !important;
    font-size: 12px;
    line-height: 1.4;
}

.orliv-minia .orliv-title-stack .orliv-breadcrumbs {
    order: 1;
    justify-content: flex-end;
}

.orliv-minia .orliv-title-stack .breadcrumb {
    justify-content: flex-end;
    font-size: 11px;
}

.orliv-minia .orliv-title-stack .breadcrumb-back {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
}

/* Planes dentro de Mi cuenta */
.orliv-minia .account-plans-intro {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 18px;
    padding: 22px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: linear-gradient(135deg, #fff, var(--orliv-ultralight));
}

.orliv-minia .account-plans-intro h2 {
    margin: 4px 0 7px;
    color: var(--ink);
    font-size: 1.35rem;
}

.orliv-minia .account-plans-intro p { margin: 0; color: var(--slate); }
.orliv-minia .account-plans-eyebrow { color: var(--blue); font-size: 10px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.orliv-minia .account-plan-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.orliv-minia .account-plan-card {
    position: relative;
    display: flex;
    min-width: 0;
    min-height: 100%;
    flex-direction: column;
    padding: 20px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 6px 22px rgba(15, 23, 42, .04);
}

.orliv-minia .account-plan-card.is-featured { border-color: rgba(21, 87, 255, .42); }
.orliv-minia .account-plan-card.is-current { border-color: var(--blue); box-shadow: 0 8px 26px rgba(21, 87, 255, .1); }

.orliv-minia .account-plan-badge {
    position: absolute;
    top: 14px;
    right: 14px;
    padding: 5px 8px;
    border-radius: 999px;
    color: var(--blue);
    background: var(--accent-quiet);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.orliv-minia .account-plan-head {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    align-items: start;
    gap: 12px;
    padding-right: 82px;
}

.orliv-minia .account-plan-icon {
    display: grid;
    width: 42px;
    height: 42px;
    place-items: center;
    border-radius: 10px;
    color: var(--blue);
    background: var(--accent-quiet);
    font-size: 20px;
}

.orliv-minia .account-plan-head h3 { margin: 1px 0 4px; color: var(--ink); font-size: 1rem; }
.orliv-minia .account-plan-head p { margin: 0; color: var(--slate); font-size: 11px; line-height: 1.45; }
.orliv-minia .account-plan-price { display: flex; align-items: baseline; gap: 5px; margin: 18px 0 14px; }
.orliv-minia .account-plan-price strong { color: var(--ink); font-size: 1.55rem; }
.orliv-minia .account-plan-price span { color: var(--slate); font-size: 11px; }

.orliv-minia .account-plan-features {
    display: grid;
    gap: 8px;
    margin: 0 0 18px;
    padding: 0;
    list-style: none;
}

.orliv-minia .account-plan-features li {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    color: var(--slate);
    font-size: 11px;
    line-height: 1.35;
}

.orliv-minia .account-plan-features i { flex: 0 0 auto; color: var(--success); font-size: 15px; }
.orliv-minia .account-plan-action { margin-top: auto; }

@media (max-width: 991.98px) {
    .orliv-minia .page-title-box.orliv-title-stack {
        grid-template-columns: 1fr;
        min-height: 0;
        padding: 14px;
    }

    .orliv-minia .orliv-title-stack .orliv-breadcrumbs {
        order: 0;
        justify-content: flex-start;
    }

    .orliv-minia .orliv-title-stack .orliv-page-heading { order: 1; }
    .orliv-minia .orliv-title-stack .breadcrumb { justify-content: flex-start; }
}

@media (max-width: 767.98px) {
    .orliv-minia .account-plans-intro { align-items: stretch; flex-direction: column; }
    .orliv-minia .account-plan-grid { grid-template-columns: 1fr; }
}

/* Ultima fila de las listas de metricas: sin borde colgante para que la
   card cierre con aire uniforme. */
.orliv-minia .card-body > .d-flex.border-bottom:last-of-type {
    border-bottom: 0 !important;
}

/* Dashboard OneLink and profile */
.orliv-minia .place-center {
    display: inline-grid !important;
    place-items: center;
}

.orliv-minia .onelink-dashboard-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

.orliv-minia .onelink-dashboard-metrics > div {
    min-width: 0;
    padding: 12px 9px;
    border: 1px solid var(--line);
    border-radius: 8px;
    background: var(--orliv-ultralight);
}

.orliv-minia .onelink-dashboard-metrics span,
.orliv-minia .onelink-dashboard-metrics strong {
    display: block;
}

.orliv-minia .onelink-dashboard-metrics span {
    color: var(--slate);
    font-size: 10px;
    font-weight: 700;
}

.orliv-minia .onelink-dashboard-metrics strong {
    margin-top: 4px;
    color: var(--ink);
    font-size: 19px;
}

.orliv-minia .onelink-dashboard-table td:first-child {
    min-width: 210px;
}

.orliv-minia .onelink-dashboard-table td small {
    display: block;
    max-width: 360px;
    margin-top: 3px;
    overflow: hidden;
    color: var(--slate);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.orliv-minia .dashboard-row-action {
    width: 32px;
    height: 32px;
    display: inline-grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 7px;
    color: var(--navy);
}

.orliv-minia .profile-form {
    width: min(900px, 100%);
}

.orliv-minia .profile-password-block .form-hint {
    margin: 14px;
}

@media (min-width: 1100px) {
    .orliv-minia .resource-toolbar {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 14px;
    }

    .orliv-minia .resource-filter-form {
        display: grid;
        grid-template-columns: minmax(180px, 1fr) repeat(3, minmax(118px, 140px)) auto;
        align-items: end;
        gap: 9px;
    }

    .orliv-minia .resource-filter-form .filter-input,
    .orliv-minia .resource-filter-form .compact-filter {
        width: 100%;
        max-width: none;
        min-width: 0;
    }
}

@media (max-width: 991.98px) {
    .user-editor-layout { grid-template-columns:1fr; }
    .role-plan-guide { position:static; }
}

@media (max-width: 575.98px) {
    .impersonation-bar { align-items:stretch; flex-direction:column; bottom:10px; }
    .impersonation-bar button { width:100%; }
}

@media (min-width: 768px) and (max-width: 1099.98px) {
    .orliv-minia .resource-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .orliv-minia .resource-toolbar .toolbar-right {
        justify-content: flex-end;
    }
}

@media (max-width: 575.98px) {
    .orliv-minia .onelink-dashboard-metrics {
        grid-template-columns: 1fr;
    }
}

/* Account usage, compact editors and mobile-first primary actions */
.orliv-minia .plan-usage-hero { display:flex; align-items:center; justify-content:space-between; gap:20px; background:linear-gradient(135deg,#05265f,#1557ff); color:#fff; }
.orliv-minia .plan-usage-hero h2 { margin:4px 0 6px; color:#fff; font-size:28px; }
.orliv-minia .plan-usage-hero p { margin:0; color:rgba(255,255,255,.8); }
.orliv-minia .usage-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.orliv-minia .plan-usage-page .profile-plan-card { margin-top:0; }
.orliv-minia .usage-card { padding:16px; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.orliv-minia .usage-card-head { display:flex; justify-content:space-between; gap:12px; }
.orliv-minia .usage-meter { height:8px; margin:12px 0 8px; overflow:hidden; border-radius:20px; background:var(--orliv-ultralight); }
.orliv-minia .usage-meter i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--blue),#0d9488); }
.orliv-minia .usage-card p { margin:0; color:var(--slate); font-size:12px; }
.orliv-minia .feature-chip-list { display:flex; flex-wrap:wrap; gap:8px; }
.orliv-minia .feature-chip-list span { display:inline-flex; align-items:center; gap:7px; padding:8px 11px; border-radius:20px; background:var(--orliv-ultralight); color:var(--navy); font-size:12px; font-weight:700; }

/* Mi suscripcion: estado, facturacion y acciones en una sola lectura. */
.orliv-minia .subscription-page { gap:14px; }
.orliv-minia .subscription-hero { display:grid; gap:18px; margin:0; padding:20px; overflow:hidden; border-color:#dce5f3; background:linear-gradient(135deg,#fff 0%,#f4f7ff 100%); }
.orliv-minia .subscription-hero.is-ending { border-color:#f3d39b; background:linear-gradient(135deg,#fff 0%,#fff8e8 100%); }
.orliv-minia .subscription-hero.is-inactive { border-color:#e1e5ec; background:#f8fafc; }
.orliv-minia .subscription-hero-copy h2 { margin:4px 0 0; color:var(--navy); font-size:clamp(24px,7vw,32px); }
.orliv-minia .subscription-title-row { display:flex; flex-wrap:wrap; align-items:center; gap:9px 12px; }
.orliv-minia .subscription-hero-copy > p { max-width:680px; margin:8px 0 0; color:var(--slate); font-size:13px; line-height:1.55; }
.orliv-minia .subscription-status { display:inline-flex; align-items:center; gap:6px; min-height:28px; padding:5px 9px; border-radius:20px; background:#e8f7ee; color:#15713a; font-size:11px; font-weight:800; }
.orliv-minia .subscription-status i { font-size:7px; }
.orliv-minia .is-ending .subscription-status { background:#fff0cc; color:#8a5500; }
.orliv-minia .is-inactive .subscription-status { background:#eceff3; color:#596579; }
.orliv-minia .subscription-price { display:flex; align-items:baseline; gap:4px; color:var(--navy); }
.orliv-minia .subscription-price strong { font-size:27px; }
.orliv-minia .subscription-price span { color:var(--slate); font-size:12px; }
.orliv-minia .subscription-hero-actions { display:grid; grid-template-columns:1fr; gap:8px; }
.orliv-minia .subscription-hero-actions form { margin:0; }
.orliv-minia .subscription-hero-actions .btn { width:100%; min-height:44px; }
.orliv-minia .subscription-local-nav { display:flex; max-width:100%; overflow-x:auto; scrollbar-width:thin; border:1px solid var(--line); border-radius:10px; background:#fff; }
.orliv-minia .subscription-local-nav a { flex:0 0 auto; min-height:44px; padding:13px 15px; color:var(--slate); font-size:12px; font-weight:800; text-decoration:none; white-space:nowrap; }
.orliv-minia .subscription-local-nav a:hover,.orliv-minia .subscription-local-nav a:focus-visible { color:var(--blue); background:#f4f7ff; }
.orliv-minia .subscription-notice { display:flex; align-items:flex-start; gap:12px; padding:14px; border:1px solid; border-radius:10px; }
.orliv-minia .subscription-notice > i { flex:0 0 32px; width:32px; height:32px; display:grid; place-items:center; border-radius:8px; }
.orliv-minia .subscription-notice strong { display:block; font-size:13px; }
.orliv-minia .subscription-notice p { margin:3px 0 0; font-size:12px; line-height:1.5; }
.orliv-minia .subscription-notice.is-warning { border-color:#f3d39b; background:#fff9eb; color:#744600; }
.orliv-minia .subscription-notice.is-warning > i { background:#ffedbd; }
.orliv-minia .subscription-notice.is-danger { border-color:#f2caca; background:#fff5f5; color:#8b2525; }
.orliv-minia .subscription-notice.is-danger > i { background:#fee2e2; }
.orliv-minia .subscription-overview { display:grid; grid-template-columns:1fr; gap:10px; scroll-margin-top:110px; }
.orliv-minia .subscription-overview article { display:grid; grid-template-columns:40px minmax(0,1fr); gap:11px; padding:15px; border:1px solid var(--line); border-radius:10px; background:#fff; }
.orliv-minia .subscription-summary-icon { width:40px; height:40px; display:grid; place-items:center; border-radius:9px; background:#edf3ff; color:var(--blue); }
.orliv-minia .subscription-overview article div > span,.orliv-minia .subscription-overview small { display:block; color:var(--slate); font-size:11px; }
.orliv-minia .subscription-overview strong { display:block; margin:3px 0; color:var(--navy); font-size:15px; overflow-wrap:anywhere; }
.orliv-minia .subscription-management { display:grid; grid-template-columns:1fr; gap:14px; scroll-margin-top:110px; }
.orliv-minia .subscription-management .panel { margin:0; }
.orliv-minia .subscription-management > .panel:only-child { grid-column:1/-1; }
.orliv-minia .subscription-change-form { display:grid; grid-template-columns:1fr; gap:8px; }
.orliv-minia .subscription-change-form label { margin:0; color:var(--navy); font-size:12px; font-weight:700; }
.orliv-minia .subscription-change-form select,.orliv-minia .subscription-change-form .btn { min-height:44px; }
.orliv-minia .subscription-detail-list { display:grid; gap:0; margin:0; }
.orliv-minia .subscription-detail-list div { display:flex; justify-content:space-between; gap:12px; padding:11px 0; border-bottom:1px solid var(--line); }
.orliv-minia .subscription-detail-list dt { color:var(--slate); font-size:12px; }
.orliv-minia .subscription-detail-list dd { margin:0; color:var(--navy); font-size:12px; font-weight:800; text-align:right; }
.orliv-minia .subscription-cancel-zone,.orliv-minia .subscription-reactivate,.orliv-minia .subscription-help { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
.orliv-minia .subscription-cancel-zone { border-color:#f1cece; }
.orliv-minia .subscription-cancel-zone h2,.orliv-minia .subscription-reactivate h2,.orliv-minia .subscription-help h2 { margin:0; font-size:15px; }
.orliv-minia .subscription-cancel-zone h2 { color:#991b1b; }
.orliv-minia .subscription-cancel-zone p,.orliv-minia .subscription-reactivate p,.orliv-minia .subscription-help p { margin:4px 0 0; color:var(--slate); font-size:12px; line-height:1.5; }
.orliv-minia .subscription-history { scroll-margin-top:110px; }
.orliv-minia .subscription-history table { min-width:720px; }
.orliv-minia .subscription-history code { white-space:nowrap; }
.orliv-minia .subscription-help { scroll-margin-top:110px; border-color:#cfdbf5; background:#f7f9ff; }
.orliv-minia .subscription-help > span { flex:0 0 42px; width:42px; height:42px; display:grid; place-items:center; border-radius:10px; background:#e7efff; color:var(--blue); font-size:18px; }
.orliv-minia .subscription-empty { min-height:360px; display:grid; place-items:center; }
.orliv-minia .subscription-empty .empty-state { max-width:480px; }
.orliv-minia .subscription-empty-icon { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 14px; border-radius:14px; background:#eaf0ff; color:var(--blue); font-size:26px; }

@media (min-width:640px) {
    .orliv-minia .subscription-hero { grid-template-columns:minmax(0,1fr) auto; align-items:center; }
    .orliv-minia .subscription-hero-actions { grid-column:1/-1; grid-template-columns:auto auto; justify-content:start; }
    .orliv-minia .subscription-overview { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .orliv-minia .subscription-cancel-zone,.orliv-minia .subscription-reactivate,.orliv-minia .subscription-help { flex-direction:row; align-items:center; }
    .orliv-minia .subscription-cancel-zone > div,.orliv-minia .subscription-reactivate > div,.orliv-minia .subscription-help > div { flex:1 1 auto; }
}

@media (min-width:960px) {
    .orliv-minia .subscription-hero { grid-template-columns:minmax(0,1fr) auto auto; }
    .orliv-minia .subscription-hero-actions { grid-column:auto; }
    .orliv-minia .subscription-management { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.orliv-minia .marketing-editor-grid,.orliv-minia .admin-plan-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.orliv-minia .admin-plan-card { display:grid; gap:8px; padding:14px; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.orliv-minia .admin-plan-card form { display:grid; gap:8px; }
.orliv-minia .admin-nav { border:1px solid var(--line); border-radius:12px; box-shadow:0 12px 32px rgba(3,26,66,.08); }
.orliv-minia .admin-nav-group > summary.admin-nav-title { border-radius:8px; }

@media (max-width: 767.98px) {
    .orliv-minia .orliv-create-button { position:fixed; right:16px; bottom:calc(16px + env(safe-area-inset-bottom)); z-index:1050; min-width:52px; min-height:52px; justify-content:center; border-radius:50%; box-shadow:0 12px 30px rgba(21,87,255,.28); }
    .orliv-minia .orliv-create-button { font-size:0; }
    .orliv-minia .orliv-create-button i { margin:0!important; font-size:24px; }
    .orliv-minia .usage-grid,.orliv-minia .marketing-editor-grid,.orliv-minia .admin-plan-grid { grid-template-columns:1fr; }
    .orliv-minia .plan-usage-hero { align-items:flex-start; flex-direction:column; }
    .orliv-minia .plan-usage-hero .btn { width:100%; }
    .orliv-minia .panel-actions,.orliv-minia .toolbar-right { align-items:stretch; flex-direction:column; }
    .orliv-minia .panel-actions .btn,.orliv-minia .toolbar-right .btn,.orliv-minia .panel-actions form { width:100%; }
    .orliv-minia .password-change-grid { grid-template-columns:1fr; }
    .orliv-minia .table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
}

/* Sistema común de acciones y navegación */
.orliv-minia .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:9px 15px; border:1px solid transparent; border-radius:9px; font-size:13px; font-weight:700; line-height:1.2; text-decoration:none; box-shadow:none; transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease; }
.orliv-minia .btn:hover:not(:disabled) { transform:translateY(-1px); box-shadow:0 6px 16px rgba(3,26,66,.1); }
.orliv-minia .btn.primary,.orliv-minia .btn.btn-primary { background:#1557ff; border-color:#1557ff; color:#fff; }
.orliv-minia .btn.primary:hover,.orliv-minia .btn.btn-primary:hover { background:#0d47df; border-color:#0d47df; color:#fff; }
.orliv-minia .btn.secondary { background:#fff; border-color:#cbd7e9; color:#17335f; }
.orliv-minia .btn.secondary:hover { background:#f4f7fc; border-color:#9fb3d2; color:#0a2858; }
.orliv-minia .btn.ghost { background:transparent; border-color:transparent; color:#31527f; }
.orliv-minia .btn.ghost:hover { background:#edf3fc; color:#123e79; box-shadow:none; }
.orliv-minia .btn.danger { background:#fff; border-color:#efb8bd; color:#b4232f; }
.orliv-minia .btn.danger:hover { background:#fff1f2; border-color:#e28d95; color:#8f1721; }
.orliv-minia .btn.compact { min-height:34px; padding:7px 11px; font-size:12px; }
.orliv-minia .btn:disabled { opacity:.55; cursor:not-allowed; }
.orliv-minia .dropdown-menu.orliv-menu { padding:8px; border:1px solid #d8e1ee; border-radius:12px; box-shadow:0 16px 38px rgba(3,26,66,.14); }
.orliv-minia .orliv-menu .dropdown-item { min-height:39px; padding:9px 11px; border-radius:8px; color:#40597b; font-size:13px; font-weight:600; }
.orliv-minia .orliv-menu .dropdown-item:hover,.orliv-minia .orliv-menu .dropdown-item.active { background:#edf3ff; color:#1557ff; }
.orliv-minia .orliv-site-menu { min-width:245px; }
.orliv-minia .orliv-site-button { display:inline-flex; align-items:center; gap:7px; color:#31527f; }
.orliv-minia .orliv-site-button i { font-size:20px; }

/* Sitio: listado y edición individual */
.orliv-minia .site-module-head { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:20px; padding:24px; border:1px solid #dbe4f0; border-radius:14px; background:linear-gradient(135deg,#fff 55%,#edf4ff); }
.orliv-minia .site-module-head h2 { margin:4px 0 6px; color:#09234d; font-size:24px; }
.orliv-minia .site-module-head p { margin:0; color:#667892; }
.orliv-minia .site-page-list { display:grid; gap:10px; }
.orliv-minia .site-page-row { display:grid; grid-template-columns:46px minmax(0,1fr) auto; align-items:center; gap:16px; padding:17px 18px; border:1px solid #dbe4f0; border-radius:12px; background:#fff; }
.orliv-minia .site-page-icon { display:grid; place-items:center; width:44px; height:44px; border-radius:10px; background:#edf3ff; color:#1557ff; font-size:21px; }
.orliv-minia .site-page-row h3 { margin:0 0 3px; color:#102c56; font-size:15px; }
.orliv-minia .site-page-row p { max-width:760px; margin:0; color:#64748b; font-size:13px; }
.orliv-minia .site-page-row small { color:#8a9ab0; }
.orliv-minia .site-page-warning { display:flex; align-items:flex-start; gap:7px; margin:7px 0 0; color:#92400e; font-size:12.5px; line-height:1.45; }
.orliv-minia .site-page-warning i { flex:0 0 auto; margin-top:1px; font-size:15px; }
.orliv-minia .site-page-actions { display:flex; gap:6px; }
.orliv-minia .site-page-editor { display:grid; gap:16px; max-width:980px; }
.orliv-minia .site-editor-section { margin:0; }
.orliv-minia .field-stack { display:grid; gap:14px; }
.orliv-minia .field-stack label { margin:0; }
.orliv-minia .form-end-actions { display:flex; align-items:center; justify-content:flex-end; gap:9px; padding-top:4px; }
.orliv-minia .site-head-editor { max-width:980px; }
.orliv-minia .site-head-code,.orliv-minia .site-head-origins { width:100%; font-family:"SFMono-Regular",Consolas,"Liberation Mono",monospace; font-size:12px; line-height:1.65; tab-size:2; }
.orliv-minia .site-head-code { min-height:360px; }
.orliv-minia .site-head-detected { margin-top:14px; padding:14px 16px; border:1px solid #dbe4f0; border-radius:10px; background:#f8faff; color:#405778; font-size:12px; }
.orliv-minia .site-head-detected ul { display:flex; flex-wrap:wrap; gap:7px; margin:9px 0 0; padding:0; list-style:none; }
.orliv-minia .site-head-detected code { display:block; padding:5px 8px; border-radius:6px; background:#eaf0ff; color:#0b45d9; overflow-wrap:anywhere; }

/* Planes: una ficha completa por plan */
.orliv-minia .plans-editor { display:grid; gap:12px; margin:18px 0; }
.orliv-minia .section-heading h2 { margin:0; color:#102c56; font-size:20px; }
.orliv-minia .section-heading p { margin:4px 0 0; color:#6a7d98; }
.orliv-minia .create-plan-panel,.orliv-minia .plan-editor-card { padding:0; overflow:hidden; }
.orliv-minia .create-plan-panel > summary,.orliv-minia .plan-editor-card > summary { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:20px; padding:18px 20px; cursor:pointer; list-style:none; }
.orliv-minia .create-plan-panel > summary::-webkit-details-marker,.orliv-minia .plan-editor-card > summary::-webkit-details-marker { display:none; }
.orliv-minia .create-plan-panel > summary span:first-child,.orliv-minia .plan-editor-card > summary span:first-child { display:grid; gap:3px; }
.orliv-minia .create-plan-panel summary small,.orliv-minia .plan-editor-card summary small { color:#70819a; font-size:12px; font-weight:500; }
.orliv-minia .plan-summary-price { color:#102c56; font-size:18px; font-weight:800; text-align:right; }
.orliv-minia .plan-summary-price small { display:block; }
.orliv-minia .compact-form,.orliv-minia .plan-editor-form { display:grid; gap:18px; padding:20px; border-top:1px solid #e1e8f2; background:#fbfcfe; }
.orliv-minia .plan-editor-block { display:grid; gap:12px; padding:18px; border:1px solid #e0e7f1; border-radius:11px; background:#fff; }
.orliv-minia .plan-editor-block h3 { margin:0; color:#17345f; font-size:14px; }
.orliv-minia .plan-editor-block h3 small { margin-left:6px; color:#7a8ba3; font-weight:500; }
.orliv-minia .plan-feature-list,.orliv-minia .plan-limit-list { display:grid; gap:14px; }
.orliv-minia .plan-feature-list fieldset,.orliv-minia .plan-limit-list fieldset { display:grid; gap:8px; margin:0; padding:0; border:0; }
.orliv-minia .plan-feature-list legend,.orliv-minia .plan-limit-list legend { margin-bottom:5px; color:#637794; font-size:11px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.orliv-minia .plan-limit-list fieldset { grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); }
.orliv-minia .plan-limit-list legend { grid-column:1/-1; }
.orliv-minia .plan-limit-list label { display:grid; grid-template-columns:minmax(0,1fr) 92px; align-items:center; gap:12px; padding:10px; border:1px solid #e2e8f0; border-radius:9px; }
.orliv-minia .plan-limit-list label span { color:#334e73; font-size:12px; font-weight:700; }
.orliv-minia .plan-limit-list label small { display:block; margin-top:2px; color:#8997aa; font-size:10px; font-weight:500; }
.orliv-minia .plan-limit-list input { min-width:0; }
.orliv-minia .plan-card-actions { justify-content:space-between; }
.orliv-minia .billing-settings { max-width:760px; }
.orliv-minia .subscription-module-nav { position:static; top:auto; z-index:auto; box-shadow:none; backdrop-filter:none; }
.orliv-minia .settings-grid > :only-child,.orliv-minia .grid-2 > :only-child,.orliv-minia .editor-grid > :only-child { grid-column:1/-1; }

@media (max-width:767.98px) {
    .orliv-minia .orliv-site-button span { display:none; }
    .orliv-minia .site-module-head { align-items:stretch; flex-direction:column; }
    .orliv-minia .site-page-row { grid-template-columns:42px minmax(0,1fr); }
    .orliv-minia .site-page-actions { grid-column:1/-1; }
    .orliv-minia .site-page-actions .btn { flex:1; }
    .orliv-minia .form-end-actions,.orliv-minia .plan-card-actions { align-items:stretch; flex-direction:column-reverse; }
    .orliv-minia .form-end-actions .btn { width:100%; }
    .orliv-minia .plan-limit-list fieldset { grid-template-columns:1fr; }
}
