/* ==========================================================================
   R Suit — Panel de cuenta de Reservations Insider
   Sistema de diseño. CSS puro sobre Bootstrap 5. Prefijo rs-.
   Una sola cuenta, una sola empresa, cuatro productos.
   ========================================================================== */

:root {
    /* Marca — índigo Reservations Insider */
    --brand-50: #EEF2FF;
    --brand-100: #E0E7FF;
    --brand-200: #C7D2FE;
    --brand-300: #A5B4FC;
    --brand-400: #818CF8;
    --brand-500: #6366F1;
    --brand-600: #4F46E5;
    --brand-700: #4338CA;
    --brand-800: #3730A3;
    --brand-900: #312E81;
    /* Color propio de cada aplicación del ecosistema */
    --app-ri: #4F46E5; /* Reservations Insider */
    --app-jb: #E8A23A; /* Jobs */
    --app-ex: #DC2626; /* Expo Digital */
    --app-cm: #2166F5; /* Community */
    --app-ri-soft: #EEF2FF;
    --app-jb-soft: #FDF3E3;
    --app-ex-soft: #FEECEC;
    --app-cm-soft: #EAF1FE;
    /* Neutrales — carbón, no negro puro */
    --ink: #14181F;
    --ink-2: #384152;
    --muted: #64748B;
    --faint: #94A0B4;
    --line: #E3E7EE;
    --line-soft: #F3F5F8;
    --canvas: #F8F9FB;
    --surface: #FFFFFF;
    /* Acentos funcionales */
    --ok: #12A56C;
    --ok-soft: #E6F8F0;
    --warn: #E8A23A;
    --warn-soft: #FDF3E3;
    --danger: #E5484D;
    --danger-soft: #FDECEC;
    /* Radios */
    --r-sm: 10px;
    --r-md: 14px;
    --r-lg: 20px;
    --r-xl: 28px;
    --r-pill: 999px;
    /* Sombras */
    --sh-sm: 0 1px 2px rgba(20, 24, 31, .06);
    --sh-md: 0 8px 24px rgba(20, 24, 31, .10);
    --sh-lg: 0 20px 48px rgba(20, 24, 31, .16);
    --sh-brand: 0 10px 28px rgba(79, 70, 229, .28);
    /* Tipografía */
    --font-display: 'Fraunces', Georgia, serif;
    --font-ui: 'Plus Jakarta Sans', -apple-system, system-ui, sans-serif;
    --font-data: 'IBM Plex Mono', ui-monospace, monospace;
    --top-h: 64px;
    --side-w: 268px;
}

/* ---------- Base ---------- */
* {
    -webkit-font-smoothing: antialiased;
}

body {
    font-family: var(--font-ui);
    background-color: var(--canvas);
    color: var(--ink-2);
    font-size: 15px;
    line-height: 1.6;
}

::selection {
    background-color: var(--brand-100);
    color: var(--brand-900);
}

a {
    color: var(--brand-600);
    text-decoration: none;
    transition: color .15s ease;
    cursor:pointer;
}

    a:hover {
        color: var(--brand-700);
    }

:focus-visible {
    outline: 2px solid var(--brand-600);
    outline-offset: 2px;
    border-radius: 4px;
}

svg.rs-ico {
    stroke-width: 1.75;
    flex: 0 0 auto;
}

/* ---------- Tipografía ---------- */
.rs-display {
    font-family: var(--font-display);
    font-weight: 500;
    color: var(--ink);
    letter-spacing: -.015em;
    line-height: 1.1;
}

    .rs-display em {
        font-style: italic;
        color: var(--brand-600);
        font-weight: 500;
    }

h1.rs-display {
    font-size: clamp(1.75rem, 3.2vw, 2.1rem);
}

h2.rs-display {
    font-size: clamp(1.5rem, 2.6vw, 1.8rem);
}

h3.rs-display {
    font-size: 1.3rem;
}

.rs-title {
    font-family: var(--font-ui);
    font-weight: 700;
    color: var(--ink);
    letter-spacing: -.02em;
}

.rs-title--lg {
    font-size: 1.05rem;
}

.rs-title--md {
    font-size: .95rem;
}

.rs-title--sm {
    font-size: .88rem;
}

.rs-eyebrow {
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--brand-600);
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

    .rs-eyebrow::before {
        content: "";
        width: 16px;
        height: 2px;
        border-radius: 2px;
        background: var(--brand-500);
    }

.rs-lead {
    color: var(--muted);
    font-size: 1rem;
    line-height: 1.65;
    max-width: 64ch;
}

.rs-meta {
    color: var(--muted);
    font-size: .85rem;
}

.rs-data {
    font-family: var(--font-data);
    font-weight: 500;
    letter-spacing: -.02em;
}

.text-ink {
    color: var(--ink) !important;
}

.text-soft {
    color: var(--muted) !important;
}

.text-faint {
    color: var(--faint) !important;
}

.text-brand {
    color: var(--brand-600) !important;
}

.text-ok {
    color: #0B8F5C !important;
}

.text-warn {
    color: #B0700A !important;
}

.text-danger-2 {
    color: #C0272D !important;
}

.rs-fs-70 {
    font-size: .7rem;
}

.rs-fs-75 {
    font-size: .75rem;
}

.rs-fs-80 {
    font-size: .8rem;
}

.rs-fs-85 {
    font-size: .85rem;
}

.rs-fs-90 {
    font-size: .9rem;
}

.rs-fs-95 {
    font-size: .95rem;
}

/* ==========================================================================
   SHELL — barra superior + menú lateral (fijos en todas las vistas)
   ========================================================================== */

.rs-top {
    position: sticky;
    top: 0;
    z-index: 1035;
    height: var(--top-h);
    background: rgba(255, 255, 255, .92);
    backdrop-filter: saturate(180%) blur(14px);
    border-bottom: 1px solid var(--line);
}

.rs-top__inner {
    height: 100%;
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: 0 1rem;
}

.rs-top__spacer {
    flex: 1 1 auto;
}

.rs-burger {
    width: 40px;
    height: 40px;
    border-radius: var(--r-sm);
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-2);
    display: grid;
    place-items: center;
}

    .rs-burger:hover {
        background: var(--canvas);
    }

/* Marca */
.rs-brand {
    display: flex;
    align-items: center;
    gap: .6rem;
    min-width: 0;
}

.rs-brand__mark {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: linear-gradient(140deg, var(--brand-600), var(--brand-800));
    color: #fff;
    display: grid;
    place-items: center;
    box-shadow: var(--sh-brand);
    flex: 0 0 auto;
}

.rs-brand__name {
    font-family: var(--font-display);
    font-size: 1.18rem;
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -.02em;
    line-height: 1;
    white-space: nowrap;
}

    .rs-brand__name span {
        color: var(--brand-600);
        font-style: italic;
    }

.rs-brand__by {
    font-size: .68rem;
    color: var(--faint);
    letter-spacing: .06em;
    text-transform: uppercase;
    font-weight: 600;
    padding-left: .7rem;
    margin-left: .1rem;
    border-left: 1px solid var(--line);
    white-space: nowrap;
}

/* Selector de empresa activa — la pieza que une a los cuatro productos */
.rs-orgbtn {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .3rem .7rem .3rem .35rem;
    border-radius: var(--r-pill);
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-2);
    max-width: 260px;
    transition: border-color .15s ease, box-shadow .15s ease;
}

    .rs-orgbtn:hover {
        border-color: var(--brand-300);
        box-shadow: var(--sh-sm);
    }

.rs-orgbtn__txt {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    line-height: 1.15;
    min-width: 0;
}

    .rs-orgbtn__txt small {
        font-size: .58rem;
        letter-spacing: .1em;
        text-transform: uppercase;
        color: var(--faint);
        font-weight: 700;
    }

    .rs-orgbtn__txt strong {
        font-size: .82rem;
        font-weight: 700;
        color: var(--ink);
        max-width: 150px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

.rs-orgbtn__go {
    color: var(--faint);
}

.rs-menu {
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    box-shadow: var(--sh-md);
    padding: .4rem;
    min-width: 280px;
}

    .rs-menu .dropdown-item {
        border-radius: var(--r-sm);
        font-size: .86rem;
        font-weight: 500;
        color: var(--ink-2);
        padding: .55rem .6rem;
        display: flex;
        align-items: center;
        gap: .6rem;
    }

        .rs-menu .dropdown-item:hover {
            background: var(--canvas);
            color: var(--ink);
        }

        .rs-menu .dropdown-item.is-active {
            background: var(--brand-50);
            color: var(--brand-700);
        }

.rs-menu__label {
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--faint);
    padding: .5rem .6rem .3rem;
}

/* Lanzador de aplicaciones (cuadrícula) */
.rs-launch {
    width: 40px;
    height: 40px;
    border-radius: var(--r-sm);
    border: 1px solid transparent;
    background: transparent;
    color: var(--ink-2);
    display: grid;
    place-items: center;
}

    .rs-launch:hover {
        background: var(--canvas);
        border-color: var(--line);
    }

.rs-launchmenu {
    min-width: 320px;
    padding: .75rem;
}

.rs-launchgrid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .5rem;
}

.rs-launchgrid__item {
    display: flex;
    flex-direction: column;
    gap: .45rem;
    padding: .8rem .7rem;
    border-radius: var(--r-md);
    border: 1px solid var(--line);
    background: var(--surface);
    transition: all .16s ease;
}

    .rs-launchgrid__item:hover {
        border-color: var(--brand-200);
        background: var(--brand-50);
        transform: translateY(-2px);
    }

.rs-launchgrid__ico {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    color: #fff;
}

.rs-launchgrid__name {
    font-size: .8rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.2;
}

.rs-launchgrid__desc {
    font-size: .7rem;
    color: var(--muted);
    line-height: 1.35;
}

/* Selector de idioma (visual) */
.rs-lang {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px;
    border-radius: var(--r-pill);
    background: var(--line-soft);
    border: 1px solid var(--line);
}

.rs-lang__opt {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    border: 0;
    background: transparent;
    border-radius: var(--r-pill);
    padding: .2rem .55rem;
    font-size: .7rem;
    font-weight: 700;
    color: var(--muted);
    letter-spacing: .02em;
}

    .rs-lang__opt.is-active {
        background: var(--surface);
        color: var(--ink);
        box-shadow: var(--sh-sm);
    }

.rs-lang__flag {
    font-size: .78rem;
    line-height: 1;
}

.rs-avatarbtn {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 2px solid var(--line);
    background: var(--canvas);
    padding: 0;
    overflow: hidden;
    flex: 0 0 auto;
}

    .rs-avatarbtn:hover {
        border-color: var(--brand-300);
    }

    .rs-avatarbtn img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

/* Layout del shell */
.rs-shell {
    display: flex;
    align-items: flex-start;
}

.rs-side {
    width: var(--side-w);
    flex: 0 0 var(--side-w);
    position: sticky;
    top: var(--top-h);
    height: calc(100vh - var(--top-h));
    overflow-y: auto;
    border-right: 1px solid var(--line);
    background: var(--surface);
    padding: 1.1rem .85rem 1.5rem;
}

.rs-main {
    flex: 1 1 auto;
    min-width: 0;
    padding: 1.75rem 1.5rem 4rem;
}

.rs-view {
    max-width: 1120px;
}

@media (max-width: 991.98px) {
    .rs-main {
        padding: 1.25rem 1rem 3rem;
    }
}

/* Menú lateral */
.rs-nav__group + .rs-nav__group {
    margin-top: 1.4rem;
}

.rs-nav__label {
    display: block;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--faint);
    padding: 0 .7rem .5rem;
}

.rs-nav__link {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .6rem .7rem;
    border-radius: var(--r-sm);
    font-size: .875rem;
    font-weight: 600;
    color: var(--ink-2);
    transition: background .15s ease, color .15s ease;
}

    .rs-nav__link + .rs-nav__link {
        margin-top: 2px;
    }

    .rs-nav__link:hover {
        background: var(--canvas);
        color: var(--ink);
    }

    .rs-nav__link.is-active {
        background: var(--brand-50);
        color: var(--brand-700);
    }

        .rs-nav__link.is-active svg {
            color: var(--brand-600);
        }

.rs-nav__n {
    margin-left: auto;
    font-family: var(--font-data);
    font-size: .68rem;
    font-weight: 600;
    color: var(--muted);
    background: var(--line-soft);
    border-radius: var(--r-pill);
    padding: .05rem .45rem;
}

.rs-nav__link.is-active .rs-nav__n {
    background: var(--brand-100);
    color: var(--brand-700);
}

.rs-nav__state {
    margin-left: auto;
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--faint);
}

    .rs-nav__state.is-on {
        color: #0B8F5C;
    }

.rs-nav__dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
    margin-left: .2rem;
}

.rs-dot--ri {
    background: var(--app-ri);
}

.rs-dot--jb {
    background: var(--app-jb);
}

.rs-dot--ex {
    background: var(--app-ex);
}

.rs-dot--cm {
    background: var(--app-cm);
}

.rs-nav__card {
    margin-top: 1.6rem;
    padding: .9rem;
    border-radius: var(--r-md);
    background: linear-gradient(140deg, var(--brand-50), #F6F5FF 120%);
    border: 1px solid var(--brand-100);
}

    .rs-nav__card p {
        font-size: .74rem;
        color: var(--ink-2);
        line-height: 1.5;
        margin: .35rem 0 .7rem;
    }

.rs-offcanvas {
    width: 292px;
}

    .rs-offcanvas .offcanvas-body {
        padding-top: .5rem;
    }

/* Encabezado de vista */
.rs-head {
    margin-bottom: 1.5rem;
}

    .rs-head h1 {
        margin: .35rem 0 .4rem;
    }

/* ==========================================================================
   COMPONENTES
   ========================================================================== */

/* Botones */
.btn {
    font-weight: 600;
    font-size: .875rem;
    border-radius: var(--r-sm);
    padding: .55rem 1.05rem;
    transition: all .16s ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: 1px solid transparent;
}

.btn-rs {
    background: var(--brand-600);
    border-color: var(--brand-600);
    color: #fff;
}

    .btn-rs:hover {
        background: var(--brand-700);
        border-color: var(--brand-700);
        color: #fff;
        box-shadow: var(--sh-brand);
        transform: translateY(-1px);
    }

.btn-rs-ghost {
    background: var(--surface);
    border-color: var(--line);
    color: var(--ink-2);
}

    .btn-rs-ghost:hover {
        background: var(--canvas);
        border-color: var(--brand-200);
        color: var(--ink);
    }

.btn-rs-soft {
    background: var(--brand-50);
    border-color: transparent;
    color: var(--brand-700);
}

    .btn-rs-soft:hover {
        background: var(--brand-100);
        color: var(--brand-900);
    }

.btn-rs-dark {
    background: var(--ink);
    border-color: var(--ink);
    color: #fff;
}

    .btn-rs-dark:hover {
        background: #2A3242;
        color: #fff;
    }

.btn-rs-danger {
    background: var(--danger-soft);
    border-color: transparent;
    color: #C0272D;
}

    .btn-rs-danger:hover {
        background: #FBDCDC;
        color: #A31F24;
    }

.btn-rs-lg {
    padding: .8rem 1.6rem;
    font-size: .95rem;
    border-radius: var(--r-md);
}

.btn-rs-sm {
    padding: .38rem .75rem;
    font-size: .78rem;
}

.btn-icon {
    width: 38px;
    height: 38px;
    padding: 0;
}

.btn-block {
    width: 100%;
}

/* Tarjetas y paneles */
.rs-panel {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: 1.4rem;
    box-shadow: var(--sh-sm);
}

.rs-panel--flat {
    box-shadow: none;
}

.rs-panel__head {
    display: flex;
    align-items: center;
    gap: .6rem;
    flex-wrap: wrap;
    margin-bottom: 1.1rem;
}

    .rs-panel__head .rs-title {
        flex: 1 1 auto;
    }

.rs-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
}

.rs-card--hover {
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

    .rs-card--hover:hover {
        transform: translateY(-3px);
        box-shadow: var(--sh-md);
        border-color: var(--brand-200);
    }

.rs-card__body {
    padding: 1rem;
}

.rs-card__media {
    position: relative;
    overflow: hidden;
    background: var(--line-soft);
}

    .rs-card__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        transition: transform .4s ease;
    }

.rs-card--hover:hover .rs-card__media img {
    transform: scale(1.05);
}

.rs-frame {
    background: var(--canvas);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
}

/* Badges */
.rs-badge {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .7rem;
    font-weight: 700;
    padding: .22rem .6rem;
    border-radius: var(--r-pill);
    letter-spacing: .01em;
    white-space: nowrap;
}

.rs-badge--brand {
    background: var(--brand-50);
    color: var(--brand-700);
}

.rs-badge--ok {
    background: var(--ok-soft);
    color: #0B8F5C;
}

.rs-badge--warn {
    background: var(--warn-soft);
    color: #B0700A;
}

.rs-badge--danger {
    background: var(--danger-soft);
    color: #C0272D;
}

.rs-badge--slate {
    background: var(--line-soft);
    color: var(--ink-2);
}

.rs-badge--solid {
    background: var(--brand-600);
    color: #fff;
}

.rs-badge--ri {
    background: var(--app-ri-soft);
    color: #3730A3;
}

.rs-badge--jb {
    background: var(--app-jb-soft);
    color: #96620C;
}

.rs-badge--ex {
    background: var(--app-ex-soft);
    color: #B01B1B;
}

.rs-badge--cm {
    background: var(--app-cm-soft);
    color: #124BB8;
}

.rs-chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .35rem .8rem;
    border-radius: var(--r-pill);
    background: var(--line-soft);
    border: 1px solid transparent;
    font-size: .78rem;
    font-weight: 600;
    color: var(--ink-2);
}

    .rs-chip:hover {
        background: var(--line);
        color: var(--ink);
    }

    .rs-chip.is-active {
        background: var(--brand-600);
        color: #fff;
        border-color: var(--brand-600);
    }

/* Formularios */
.rs-label {
    display: block;
    font-size: .78rem;
    font-weight: 700;
    color: var(--ink-2);
    margin-bottom: .35rem;
    letter-spacing: -.01em;
}

.rs-input,
.rs-select,
.rs-textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    padding: .62rem .85rem;
    font-size: .88rem;
    font-family: var(--font-ui);
    color: var(--ink);
    background: var(--surface);
    transition: border-color .15s ease, box-shadow .15s ease;
}

    .rs-input::placeholder, .rs-textarea::placeholder {
        color: var(--faint);
    }

    .rs-input:focus, .rs-select:focus, .rs-textarea:focus {
        outline: 0;
        border-color: var(--brand-500);
        box-shadow: 0 0 0 3px var(--brand-100);
    }

    .rs-input:disabled, .rs-select:disabled {
        background: var(--line-soft);
        color: var(--muted);
    }

.rs-textarea {
    min-height: 110px;
    resize: vertical;
    line-height: 1.6;
}

.rs-select {
    appearance: none;
    cursor: pointer;
    background-image: none;
    padding-right: 2.2rem;
}

.rs-help {
    font-size: .74rem;
    color: var(--faint);
    margin-top: .35rem;
}

.rs-field {
    position: relative;
}

.rs-field__ico {
    position: absolute;
    left: .8rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--faint);
    pointer-events: none;
}

.rs-field .rs-input {
    padding-left: 2.4rem;
}

.rs-field__act {
    position: absolute;
    right: .5rem;
    top: 50%;
    transform: translateY(-50%);
    border: 0;
    background: transparent;
    color: var(--muted);
    padding: .25rem;
    border-radius: 6px;
    line-height: 0;
}

    .rs-field__act:hover {
        color: var(--ink);
        background: var(--line-soft);
    }

.rs-selectwrap {
    position: relative;
}

.rs-selectwrap__go {
    position: absolute;
    right: .85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--faint);
    pointer-events: none;
}

/* Interruptor */
.rs-switch {
    position: relative;
    width: 42px;
    height: 24px;
    border-radius: var(--r-pill);
    background: var(--line);
    border: 0;
    flex: 0 0 auto;
    padding: 0;
    transition: background .2s ease;
}

    .rs-switch::after {
        content: "";
        position: absolute;
        top: 3px;
        left: 3px;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: #fff;
        box-shadow: var(--sh-sm);
        transition: transform .2s cubic-bezier(.2, .8, .2, 1);
    }

    .rs-switch.is-on {
        background: var(--brand-600);
    }

        .rs-switch.is-on::after {
            transform: translateX(18px);
        }

.rs-toggle-row {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding: .85rem 0;
    border-bottom: 1px solid var(--line-soft);
}

    .rs-toggle-row:last-child {
        border-bottom: 0;
    }

.rs-toggle-row__txt {
    flex: 1 1 auto;
    min-width: 0;
}

/* Barra de progreso */
.rs-bar {
    height: 6px;
    background: var(--line-soft);
    border-radius: var(--r-pill);
    overflow: hidden;
}

.rs-bar__fill {
    height: 100%;
    background: var(--brand-600);
    border-radius: var(--r-pill);
}

.rs-bar__fill--ok {
    background: var(--ok);
}

.rs-bar__fill--warn {
    background: var(--warn);
}

.rs-bar__fill--ex {
    background: var(--app-ex);
}

.rs-bar__fill--cm {
    background: var(--app-cm);
}

.rs-bar__fill--jb {
    background: var(--app-jb);
}

.rs-bar--thin {
    height: 4px;
}

.rs-progress-card {
    border-radius: var(--r-lg);
    padding: 1.25rem 1.4rem;
    background: linear-gradient(120deg, var(--brand-50), #F7F5FF 130%);
    border: 1px solid var(--brand-100);
}

/* Anchos para barras y medidores (evita CSS en el HTML) */
.w-5 {
    width: 5%;
}

.w-10 {
    width: 10%;
}

.w-15 {
    width: 15%;
}

.w-20 {
    width: 20%;
}

.w-25 {
    width: 25%;
}

.w-30 {
    width: 30%;
}

.w-35 {
    width: 35%;
}

.w-40 {
    width: 40%;
}

.w-45 {
    width: 45%;
}

.w-50 {
    width: 50%;
}

.w-55 {
    width: 55%;
}

.w-60 {
    width: 60%;
}

.w-62 {
    width: 62%;
}

.w-65 {
    width: 65%;
}

.w-70 {
    width: 70%;
}

.w-72 {
    width: 72%;
}

.w-75 {
    width: 75%;
}

.w-80 {
    width: 80%;
}

.w-85 {
    width: 85%;
}

.w-88 {
    width: 88%;
}

.w-90 {
    width: 90%;
}

.w-95 {
    width: 95%;
}

.w-100p {
    width: 100%;
}

/* Sidebar de secciones dentro de una vista */
.rs-secnav {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    padding: .5rem;
}

.rs-secnav__link {
    display: flex;
    align-items: center;
    gap: .65rem;
    padding: .6rem .7rem;
    border-radius: var(--r-sm);
    font-size: .84rem;
    font-weight: 600;
    color: var(--ink-2);
}

    .rs-secnav__link:hover {
        background: var(--canvas);
        color: var(--ink);
    }

    .rs-secnav__link.is-active {
        background: var(--brand-50);
        color: var(--brand-700);
    }

    .rs-secnav__link .tick {
        margin-left: auto;
        color: var(--ok);
    }

    .rs-secnav__link .pending {
        margin-left: auto;
        width: 7px;
        height: 7px;
        border-radius: 50%;
        background: var(--warn);
    }

.rs-sticky {
    position: sticky;
    top: calc(var(--top-h) + 1.25rem);
}

/* Tablas */
.rs-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}

    .rs-table thead th {
        font-size: .7rem;
        font-weight: 700;
        letter-spacing: .08em;
        text-transform: uppercase;
        color: var(--faint);
        padding: .7rem .8rem;
        border-bottom: 1px solid var(--line);
        white-space: nowrap;
        text-align: left;
    }

    .rs-table tbody td {
        padding: .85rem .8rem;
        border-bottom: 1px solid var(--line-soft);
        font-size: .85rem;
        color: var(--ink-2);
        vertical-align: middle;
    }

    .rs-table tbody tr:last-child td {
        border-bottom: 0;
    }

    .rs-table tbody tr:hover {
        background: var(--canvas);
    }

.rs-table-wrap {
    overflow-x: auto;
}

/* Métricas */
.rs-stat {
    display: flex;
    align-items: flex-start;
    gap: .85rem;
}

.rs-stat__ico {
    width: 42px;
    height: 42px;
    border-radius: var(--r-sm);
    display: grid;
    place-items: center;
    background: var(--brand-50);
    color: var(--brand-600);
    flex: 0 0 auto;
}

.rs-stat__ico--ok {
    background: var(--ok-soft);
    color: #0B8F5C;
}

.rs-stat__ico--warn {
    background: var(--warn-soft);
    color: #B0700A;
}

.rs-stat__ico--jb {
    background: var(--app-jb-soft);
    color: var(--app-jb);
}

.rs-stat__ico--ex {
    background: var(--app-ex-soft);
    color: #B01B1B;
}

.rs-stat__ico--cm {
    background: var(--app-cm-soft);
    color: var(--app-cm);
}

.rs-stat__num {
    font-family: var(--font-data);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--ink);
    line-height: 1.1;
    letter-spacing: -.03em;
}

.rs-stat__label {
    font-size: .76rem;
    color: var(--muted);
}

/* Avisos */
.rs-note {
    border-radius: var(--r-md);
    padding: 1rem 1.1rem;
    display: flex;
    gap: .8rem;
    align-items: flex-start;
}

.rs-note--warn {
    background: var(--warn-soft);
    border: 1px solid rgba(232, 162, 58, .4);
}

.rs-note--brand {
    background: var(--brand-50);
    border: 1px solid var(--brand-200);
}

.rs-note--ok {
    background: var(--ok-soft);
    border: 1px solid #A9F0D2;
}

.rs-note--danger {
    background: var(--danger-soft);
    border: 1px solid #F6C6C7;
}

.rs-note__ico {
    flex: 0 0 auto;
    margin-top: 2px;
}

.rs-note__title {
    font-size: .88rem;
    font-weight: 700;
    color: var(--ink);
}

.rs-note__text {
    font-size: .8rem;
    line-height: 1.55;
    margin: .15rem 0 0;
}

/* Encabezado de aplicación dentro de la vista */
.rs-apphead {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.15rem 1.3rem;
    border-radius: var(--r-lg);
    color: #fff;
    position: relative;
    overflow: hidden;
    margin-bottom: 1.5rem;
}

    .rs-apphead::after {
        content: "";
        position: absolute;
        width: 320px;
        height: 320px;
        border-radius: 50%;
        right: -110px;
        top: -170px;
        background: radial-gradient(circle, rgba(255,255,255,.22), transparent 65%);
    }

.rs-apphead--ri {
    background: linear-gradient(120deg, #4F46E5, #312E81);
}

.rs-apphead--jb {
    background: linear-gradient(120deg, #D98A1F, #7A3E12);
}

.rs-apphead--ex {
    background: linear-gradient(120deg, #DC2626, #6E1010);
}

.rs-apphead--cm {
    background: linear-gradient(120deg, #2166F5, #0C2757);
}

.rs-apphead__ico {
    width: 48px;
    height: 48px;
    border-radius: var(--r-md);
    background: rgba(255, 255, 255, .16);
    border: 1px solid rgba(255, 255, 255, .28);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    position: relative;
    z-index: 1;
}

.rs-apphead__txt {
    position: relative;
    z-index: 1;
    min-width: 0;
    flex: 1 1 auto;
}

.rs-apphead__name {
    font-family: var(--font-display);
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.15;
}

.rs-apphead__desc {
    font-size: .82rem;
    color: rgba(255, 255, 255, .78);
    margin: .1rem 0 0;
}

.rs-apphead__act {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
}

.btn-onapp {
    background: rgba(255,255,255,.14);
    border-color: rgba(255,255,255,.35);
    color: #fff;
}

    .btn-onapp:hover {
        background: #fff;
        border-color: #fff;
        color: var(--ink);
    }

/* Barra de contexto: empresa sobre la que se está trabajando */
.rs-ctx {
    display: flex;
    align-items: center;
    gap: .9rem;
    flex-wrap: wrap;
    padding: .8rem 1rem;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: var(--surface);
    margin-bottom: 1.25rem;
}

.rs-ctx__label {
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--faint);
}

.rs-ctx__sel {
    min-width: 230px;
}

/* Empresa: tarjeta de la lista */
.rs-org {
    display: flex;
    gap: 1rem;
    padding: 1.1rem;
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    background: var(--surface);
    transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

    .rs-org:hover {
        border-color: var(--brand-200);
        box-shadow: var(--sh-md);
        transform: translateY(-2px);
    }

.rs-org__logo {
    width: 56px;
    height: 56px;
    border-radius: var(--r-md);
    object-fit: cover;
    border: 1px solid var(--line);
    flex: 0 0 auto;
    background: var(--canvas);
}

.rs-org__body {
    flex: 1 1 auto;
    min-width: 0;
}

.rs-org__apps {
    display: flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
    margin-top: .6rem;
}

.rs-appdot {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .68rem;
    font-weight: 700;
    padding: .18rem .5rem;
    border-radius: var(--r-pill);
    background: var(--line-soft);
    color: var(--muted);
}

    .rs-appdot.is-on--ri {
        background: var(--app-ri-soft);
        color: #3730A3;
    }

    .rs-appdot.is-on--jb {
        background: var(--app-jb-soft);
        color: #96620C;
    }

    .rs-appdot.is-on--ex {
        background: var(--app-ex-soft);
        color: #B01B1B;
    }

    .rs-appdot.is-on--cm {
        background: var(--app-cm-soft);
        color: #124BB8;
    }

    .rs-appdot i {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: currentColor;
        display: block;
    }

.rs-org--add {
    border-style: dashed;
    border-width: 1.5px;
    align-items: center;
    justify-content: center;
    text-align: center;
    flex-direction: column;
    gap: .5rem;
    color: var(--brand-600);
    min-height: 152px;
    background: var(--canvas);
}

    .rs-org--add:hover {
        background: var(--brand-50);
        border-color: var(--brand-400);
    }

/* Zona de carga y galería */
.rs-drop {
    border: 1.5px dashed var(--line);
    border-radius: var(--r-md);
    background: var(--canvas);
    padding: 1.5rem 1rem;
    text-align: center;
    transition: all .18s ease;
    display: block;
    width: 100%;
}

    .rs-drop:hover {
        border-color: var(--brand-500);
        background: var(--brand-50);
    }

    .rs-drop.is-filled {
        border-style: solid;
        border-color: #A9F0D2;
        background: var(--ok-soft);
    }

.rs-drop__ico {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--brand-600);
    display: grid;
    place-items: center;
    margin: 0 auto .6rem;
}

.rs-drop.is-filled .rs-drop__ico {
    color: #0B8F5C;
    border-color: #A9F0D2;
}

.rs-photogrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(104px, 1fr));
    gap: .65rem;
}

.rs-photogrid__item {
    position: relative;
    aspect-ratio: 1;
    border-radius: var(--r-md);
    overflow: hidden;
    border: 1px solid var(--line);
    background: var(--canvas);
}

    .rs-photogrid__item img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .rs-photogrid__item .rm {
        position: absolute;
        top: .3rem;
        right: .3rem;
        width: 24px;
        height: 24px;
        border-radius: 50%;
        background: rgba(20, 24, 31, .6);
        color: #fff;
        display: grid;
        place-items: center;
        border: 0;
        backdrop-filter: blur(4px);
    }

.rs-photogrid__add {
    aspect-ratio: 1;
    border-radius: var(--r-md);
    border: 1.5px dashed var(--line);
    background: var(--canvas);
    display: grid;
    place-items: center;
    color: var(--brand-600);
}

    .rs-photogrid__add:hover {
        border-color: var(--brand-500);
        background: var(--brand-50);
    }

/* Horarios */
.rs-schedule-row {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .6rem 0;
    border-bottom: 1px solid var(--line-soft);
}

    .rs-schedule-row:last-child {
        border-bottom: 0;
    }

.rs-schedule-row__day {
    width: 96px;
    flex: 0 0 auto;
    font-size: .83rem;
    font-weight: 700;
    color: var(--ink-2);
}

.rs-schedule-row__times {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex: 1 1 auto;
    flex-wrap: wrap;
}

.rs-time {
    width: 108px;
}

/* Amenidades */
.rs-amenity {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .8rem .9rem;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: var(--surface);
}

    .rs-amenity.is-on {
        border-color: var(--brand-200);
        background: var(--brand-50);
    }

.rs-amenity__ico {
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: grid;
    place-items: center;
    background: var(--line-soft);
    color: var(--muted);
    flex: 0 0 auto;
}

.rs-amenity.is-on .rs-amenity__ico {
    background: var(--brand-100);
    color: var(--brand-700);
}

/* Miembro del equipo */
.rs-member {
    display: flex;
    align-items: center;
    gap: .8rem;
    padding: .8rem 0;
    border-bottom: 1px solid var(--line-soft);
}

    .rs-member:last-child {
        border-bottom: 0;
    }

/* Historias / publicaciones (Reservations) */
.rs-story {
    display: flex;
    gap: .9rem;
    padding: .9rem 0;
    border-bottom: 1px solid var(--line-soft);
}

    .rs-story:last-child {
        border-bottom: 0;
    }

.rs-story__thumb {
    width: 92px;
    height: 66px;
    border-radius: var(--r-sm);
    object-fit: cover;
    flex: 0 0 auto;
    border: 1px solid var(--line);
}

.rs-story__body {
    flex: 1 1 auto;
    min-width: 0;
}

/* Postulantes (Jobs) — tarjetas de video vertical */
.rs-reelrow {
    display: flex;
    gap: .75rem;
    overflow-x: auto;
    padding-bottom: .5rem;
}

    .rs-reelrow::-webkit-scrollbar {
        height: 6px;
    }

    .rs-reelrow::-webkit-scrollbar-thumb {
        background: var(--line);
        border-radius: var(--r-pill);
    }

.rs-reel {
    position: relative;
    width: 132px;
    flex: 0 0 auto;
    aspect-ratio: 9/16;
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--ink);
    border: 1px solid var(--line);
}

    .rs-reel img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        opacity: .92;
    }

.rs-reel__scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(15, 18, 26, .85) 8%, transparent 55%);
}

.rs-reel__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--ink);
    display: grid;
    place-items: center;
    border: 0;
}

.rs-reel__foot {
    position: absolute;
    left: .6rem;
    right: .6rem;
    bottom: .6rem;
    color: #fff;
}

.rs-reel__name {
    font-size: .74rem;
    font-weight: 700;
    line-height: 1.25;
}

.rs-reel__role {
    font-size: .66rem;
    color: rgba(255, 255, 255, .75);
}

/* Eventos (Expo) */
.rs-event {
    display: flex;
    gap: 1rem;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: var(--surface);
}

.rs-event__date {
    width: 58px;
    flex: 0 0 auto;
    border-radius: var(--r-sm);
    background: var(--app-ex-soft);
    color: #B01B1B;
    text-align: center;
    padding: .5rem 0;
}

    .rs-event__date .m {
        display: block;
        font-size: .62rem;
        font-weight: 700;
        letter-spacing: .1em;
        text-transform: uppercase;
    }

    .rs-event__date .d {
        display: block;
        font-family: var(--font-data);
        font-size: 1.3rem;
        font-weight: 600;
        line-height: 1.1;
    }

.rs-event__body {
    flex: 1 1 auto;
    min-width: 0;
}

/* Posts (Community) */
.rs-postgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: .8rem;
}

.rs-post {
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--surface);
}

.rs-post__media {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
}

    .rs-post__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

.rs-post__state {
    position: absolute;
    top: .45rem;
    left: .45rem;
    font-size: .62rem;
    font-weight: 700;
    padding: .15rem .45rem;
    border-radius: var(--r-pill);
    backdrop-filter: blur(6px);
}

.rs-post__state--pend {
    background: rgba(253, 243, 227, .92);
    color: #B0700A;
}

.rs-post__state--ok {
    background: rgba(230, 248, 240, .92);
    color: #0B8F5C;
}

.rs-post__state--chg {
    background: rgba(253, 236, 236, .92);
    color: #C0272D;
}

.rs-post__foot {
    padding: .55rem .6rem;
}

/* Sesiones activas */
.rs-session {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .85rem 0;
    border-bottom: 1px solid var(--line-soft);
}

    .rs-session:last-child {
        border-bottom: 0;
    }

.rs-session__ico {
    width: 38px;
    height: 38px;
    border-radius: var(--r-sm);
    background: var(--line-soft);
    color: var(--ink-2);
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

/* Requisitos de contraseña */
.rs-req {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .76rem;
    color: var(--muted);
}

    .rs-req i {
        width: 6px;
        height: 6px;
        border-radius: 50%;
        background: var(--line);
        display: block;
        flex: 0 0 auto;
    }

    .rs-req.is-ok {
        color: #0B8F5C;
    }

        .rs-req.is-ok i {
            background: var(--ok);
        }

/* Utilidades */
.rs-divider {
    height: 1px;
    background: var(--line);
    border: 0;
    margin: 1.35rem 0;
}

.rs-avatar {
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}

.rs-avatar--sm {
    width: 34px;
    height: 34px;
}

.rs-avatar--md {
    width: 44px;
    height: 44px;
}

.rs-avatar--xl {
    width: 96px;
    height: 96px;
    border: 3px solid #fff;
    box-shadow: var(--sh-md);
}

.rs-logo-sq {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    object-fit: cover;
    border: 1px solid var(--line);
    background: var(--surface);
    flex: 0 0 auto;
}

.rs-logo-sq--md {
    width: 40px;
    height: 40px;
    border-radius: 10px;
}

.rs-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rs-mono-lg {
    font-family: var(--font-data);
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--ink);
    letter-spacing: -.02em;
}

/* ==========================================================================
   ACCESO — login / registro / recuperación
   ========================================================================== */

.rs-auth {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    align-items: start;
}

/* Lado izquierdo: muro con las cuatro aplicaciones en movimiento */
.rs-auth__aside {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
    background: #1A1B4B;
    padding: 2.5rem;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.rs-wall {
    position: absolute;
    top: -18%;
    bottom: -18%;
    left: 50%;
    width: 122%;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: .9rem;
    transform: translateX(-50%) rotate(-7deg);
    opacity: .9;
}

.rs-wall__col {
    display: flex;
    flex-direction: column;
    gap: .9rem;
    animation: rs-wall-up 58s linear infinite;
}

.rs-wall__col--down {
    animation-name: rs-wall-down;
    animation-duration: 66s;
}

.rs-wall__col--slow {
    animation-duration: 78s;
}

.rs-wall__card {
    border-radius: 16px;
    overflow: hidden;
    position: relative;
    flex: 0 0 auto;
    border: 1px solid rgba(255, 255, 255, .12);
}

    .rs-wall__card img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
        aspect-ratio: 4/5;
    }

.rs-wall__tag {
    position: absolute;
    left: .55rem;
    bottom: .55rem;
    font-size: .6rem;
    font-weight: 700;
    letter-spacing: .04em;
    color: #fff;
    padding: .18rem .5rem;
    border-radius: var(--r-pill);
    backdrop-filter: blur(6px);
}

.rs-wall__tag--ri {
    background: rgba(79, 70, 229, .85);
}

.rs-wall__tag--jb {
    background: rgba(232, 162, 58, .92);
    color: #2A1700;
}

.rs-wall__tag--ex {
    background: rgba(220, 38, 38, .9);
}

.rs-wall__tag--cm {
    background: rgba(33, 102, 245, .85);
}

@keyframes rs-wall-up {
    from {
        transform: translateY(0);
    }

    to {
        transform: translateY(-50%);
    }
}

@keyframes rs-wall-down {
    from {
        transform: translateY(-50%);
    }

    to {
        transform: translateY(0);
    }
}

.rs-auth__scrim {
    position: absolute;
    inset: 0;
    background: radial-gradient(75% 55% at 12% 82%, rgba(9, 10, 34, .95), transparent 72%), radial-gradient(60% 40% at 10% 8%, rgba(9, 10, 34, .82), transparent 70%), linear-gradient(150deg, rgba(26, 27, 75, .42), rgba(11, 12, 42, .72));
}

.rs-auth__aside > * {
    position: relative;
    z-index: 2;
}

.rs-auth__brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
}

    .rs-auth__brand .rs-brand__name {
        color: #fff;
    }

        .rs-auth__brand .rs-brand__name span {
            color: var(--brand-300);
        }

.rs-auth__pitch {
    max-width: 15ch;
}

    .rs-auth__pitch h2 {
        font-family: var(--font-display);
        font-weight: 500;
        font-size: clamp(2.4rem, 4.2vw, 3.9rem);
        color: #fff;
        line-height: 1.02;
        letter-spacing: -.03em;
    }

        .rs-auth__pitch h2 em {
            font-style: italic;
            display: block;
        }

        .rs-auth__pitch h2 .v-ri {
            color: #A5B4FC;
        }

        .rs-auth__pitch h2 .v-jb {
            color: #FCA5A5;
        }

        .rs-auth__pitch h2 .v-ex {
            color: #F4C77B;
        }

        .rs-auth__pitch h2 .v-cm {
            color: #93C0FF;
        }

    .rs-auth__pitch p {
        color: rgba(255, 255, 255, .78);
        font-size: 1rem;
        margin-top: 1.1rem;
        max-width: 34ch;
    }

/* Formulario del acceso, más aire y más presencia */
.rs-auth h1.rs-display {
    font-size: clamp(2rem, 2.6vw, 2.5rem);
}

.rs-auth .rs-input {
    padding-top: .78rem;
    padding-bottom: .78rem;
}

.rs-auth__apps {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.rs-authapp {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .4rem .75rem;
    border-radius: var(--r-pill);
    background: rgba(255, 255, 255, .09);
    border: 1px solid rgba(255, 255, 255, .16);
    color: #fff;
    font-size: .74rem;
    font-weight: 600;
}

    .rs-authapp i {
        width: 7px;
        height: 7px;
        border-radius: 50%;
        display: block;
    }

/* Lado derecho: formulario */
.rs-auth__form {
    background: var(--surface);
    display: flex;
    min-height: 100vh;
    padding: 2.5rem;
}

.rs-auth__inner {
    margin: auto;
    width: 100%;
    max-width: 408px;
}

.rs-auth__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2.2rem;
}

.rs-social {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    padding: .62rem 1rem;
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    background: var(--surface);
    font-size: .85rem;
    font-weight: 600;
    color: var(--ink-2);
}

    .rs-social:hover {
        background: var(--canvas);
        border-color: var(--brand-200);
        color: var(--ink);
    }

.rs-or {
    display: flex;
    align-items: center;
    gap: .8rem;
    margin: 1.3rem 0;
    color: var(--faint);
    font-size: .74rem;
    font-weight: 600;
}

    .rs-or::before, .rs-or::after {
        content: "";
        height: 1px;
        background: var(--line);
        flex: 1 1 auto;
    }

.rs-check {
    display: flex;
    align-items: center;
    gap: .5rem;
    font-size: .8rem;
    color: var(--ink-2);
}

    .rs-check input {
        accent-color: var(--brand-600);
        width: 15px;
        height: 15px;
    }

@media (max-width: 991.98px) {
    .rs-auth {
        grid-template-columns: 1fr;
    }

    .rs-auth__aside {
        display: none;
    }

    .rs-auth__form {
        padding: 2rem 1.25rem;
    }
}

/* Movimiento reducido */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }
}

/* ==========================================================================
   MURO DEL ACCESO — piezas reales de cada aplicación
   ========================================================================== */

.rs-wall__card {
    display: block;
    background: var(--ink);
}

.rs-wall__card--tall img {
    aspect-ratio: 9/14;
}

.rs-wall__shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(10, 11, 30, .92) 4%, rgba(10, 11, 30, .25) 46%, transparent 72%);
}

/* etiqueta de aplicación */
.rs-wall__tag {
    z-index: 3;
}

.rs-wall__tag {
    position: absolute;
    left: .5rem;
    top: .5rem;
    bottom: auto;
}

/* pie común */
.rs-wall__foot {
    position: absolute;
    left: .6rem;
    right: .6rem;
    bottom: .55rem;
    z-index: 3;
    color: #fff;
}

.rs-wall__kicker {
    font-size: .52rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .72);
    display: block;
    margin-bottom: .15rem;
}

.rs-wall__head {
    font-family: var(--font-display);
    font-size: .82rem;
    font-weight: 600;
    line-height: 1.2;
    display: block;
}

.rs-wall__sub {
    font-size: .6rem;
    color: rgba(255, 255, 255, .7);
    display: block;
    margin-top: .15rem;
}

/* video vertical (Jobs) */
.rs-wall__play {
    position: absolute;
    top: 42%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--ink);
    display: grid;
    place-items: center;
    z-index: 3;
}

.rs-wall__time {
    position: absolute;
    right: .5rem;
    top: .5rem;
    z-index: 3;
    font-family: var(--font-data);
    font-size: .58rem;
    font-weight: 600;
    color: #fff;
    background: rgba(10, 11, 30, .6);
    padding: .1rem .35rem;
    border-radius: 6px;
}

/* publicación (Community) */
.rs-wall__ig {
    background: #fff;
    padding: .45rem .55rem;
    display: block;
}

.rs-wall__ig-top {
    display: flex;
    align-items: center;
    gap: .35rem;
    margin-bottom: .3rem;
}

.rs-wall__ig-dot {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--app-cm-soft);
    display: block;
    flex: 0 0 auto;
}

.rs-wall__ig-name {
    font-size: .58rem;
    font-weight: 700;
    color: var(--ink);
}

.rs-wall__ig-copy {
    font-size: .58rem;
    color: var(--muted);
    line-height: 1.35;
    display: block;
}

/* evento (Expo) */
.rs-wall__when {
    position: absolute;
    left: .5rem;
    bottom: .5rem;
    z-index: 3;
    display: inline-flex;
    align-items: baseline;
    gap: .25rem;
    background: rgba(255, 255, 255, .94);
    color: #8E1616;
    border-radius: 8px;
    padding: .2rem .4rem;
    font-family: var(--font-data);
    font-size: .6rem;
    font-weight: 600;
}

/* ==========================================================================
   MODAL, PESTAÑAS Y LISTAS EDITABLES
   ========================================================================== */

.rs-modal .modal-content {
    border: 1px solid var(--line);
    border-radius: var(--r-lg);
    box-shadow: var(--sh-lg);
}

.rs-modal .modal-header {
    border-bottom: 1px solid var(--line);
    padding: 1.1rem 1.3rem;
}

.rs-modal .modal-body {
    padding: 1.3rem;
}

.rs-modal .modal-footer {
    border-top: 1px solid var(--line);
    padding: 1rem 1.3rem;
    gap: .5rem;
}

.rs-modal__title {
    font-family: var(--font-display);
    font-size: 1.3rem;
    font-weight: 600;
    color: var(--ink);
}

/* elegir modo (IA / manual) */
.rs-modes {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .7rem;
}

.rs-mode {
    text-align: left;
    border: 1.5px solid var(--line);
    border-radius: var(--r-md);
    background: var(--surface);
    padding: .9rem 1rem;
    transition: all .16s ease;
}

    .rs-mode:hover {
        border-color: var(--brand-200);
        background: var(--brand-50);
    }

    .rs-mode.is-active {
        border-color: var(--brand-600);
        background: var(--brand-50);
        box-shadow: 0 0 0 3px var(--brand-100);
    }

.rs-mode__ico {
    color: var(--brand-600);
    margin-bottom: .4rem;
    display: block;
}

.rs-mode__title {
    font-size: .86rem;
    font-weight: 700;
    color: var(--ink);
    display: block;
}

.rs-mode__desc {
    font-size: .72rem;
    color: var(--muted);
    line-height: 1.4;
    display: block;
}

/* pestañas segmentadas */
.rs-tabs {
    display: flex;
    gap: 2px;
    padding: 3px;
    background: var(--line-soft);
    border: 1px solid var(--line);
    border-radius: var(--r-md);
}

.rs-tabs__btn {
    flex: 1 1 0;
    border: 0;
    background: transparent;
    border-radius: var(--r-sm);
    padding: .5rem .7rem;
    font-size: .8rem;
    font-weight: 700;
    color: var(--muted);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
}

    .rs-tabs__btn:hover {
        color: var(--ink);
    }

    .rs-tabs__btn.is-active {
        background: var(--surface);
        color: var(--ink);
        box-shadow: var(--sh-sm);
    }

/* bloque destacado dentro de un formulario */
.rs-block {
    border: 1px solid var(--brand-200);
    background: var(--brand-50);
    border-radius: var(--r-md);
    padding: 1rem;
}

.rs-block__title {
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--brand-700);
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-bottom: .8rem;
}

/* fila para agregar elementos uno por uno */
.rs-addrow {
    display: flex;
    gap: .5rem;
}

    .rs-addrow .rs-input {
        flex: 1 1 auto;
    }

.rs-taglist {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .6rem;
}

.rs-tag {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .3rem .5rem .3rem .7rem;
    border-radius: var(--r-pill);
    background: var(--line-soft);
    font-size: .76rem;
    font-weight: 600;
    color: var(--ink-2);
}

    .rs-tag button {
        border: 0;
        background: transparent;
        color: var(--faint);
        padding: 0;
        line-height: 0;
    }

        .rs-tag button:hover {
            color: var(--danger);
        }

.rs-empty {
    border: 1.5px dashed var(--line);
    border-radius: var(--r-md);
    background: var(--canvas);
    padding: 1.4rem 1rem;
    text-align: center;
    color: var(--muted);
    font-size: .82rem;
}

/* acciones en tabla */
.rs-actions {
    display: inline-flex;
    gap: .3rem;
}

.rs-iconbtn {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-2);
    display: inline-grid;
    place-items: center;
}

    .rs-iconbtn:hover {
        background: var(--canvas);
        border-color: var(--brand-200);
        color: var(--brand-700);
    }

.rs-iconbtn--danger:hover {
    background: var(--danger-soft);
    border-color: #F6C6C7;
    color: #C0272D;
}

.rs-iconbtn--ok:hover {
    background: var(--ok-soft);
    border-color: #A9F0D2;
    color: #0B8F5C;
}

/* ==========================================================================
   MENSAJES CON CANDIDATOS (Jobs)
   ========================================================================== */

.rs-chat {
    display: grid;
    grid-template-columns: 240px 1fr;
    min-height: 380px;
}

.rs-chat__list {
    border-right: 1px solid var(--line);
    padding-right: .75rem;
}

.rs-chat__item {
    display: flex;
    gap: .6rem;
    align-items: center;
    padding: .6rem .5rem;
    border-radius: var(--r-sm);
    width: 100%;
    text-align: left;
    border: 0;
    background: transparent;
}

    .rs-chat__item:hover {
        background: var(--canvas);
    }

    .rs-chat__item.is-active {
        background: var(--app-jb-soft);
    }

    .rs-chat__item .name {
        font-size: .8rem;
        font-weight: 700;
        color: var(--ink);
        display: block;
    }

    .rs-chat__item .prev {
        font-size: .7rem;
        color: var(--muted);
        display: block;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-width: 130px;
    }

.rs-chat__unread {
    margin-left: auto;
    min-width: 18px;
    height: 18px;
    border-radius: var(--r-pill);
    background: #B0700A;
    color: #fff;
    font-size: .62rem;
    font-weight: 700;
    display: grid;
    place-items: center;
    padding: 0 .3rem;
}

.rs-chat__panel {
    display: flex;
    flex-direction: column;
    padding-left: 1rem;
}

.rs-chat__head {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding-bottom: .8rem;
    border-bottom: 1px solid var(--line);
}

.rs-chat__log {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: .7rem;
    padding: 1rem 0;
}

.rs-msg {
    max-width: 78%;
}

.rs-msg__bubble {
    border: 1px solid var(--line);
    background: var(--surface);
    border-radius: var(--r-md);
    border-top-left-radius: 4px;
    padding: .65rem .85rem;
    font-size: .82rem;
    line-height: 1.55;
    color: var(--ink-2);
}

.rs-msg--me {
    align-self: flex-end;
}

    .rs-msg--me .rs-msg__bubble {
        background: var(--brand-600);
        border-color: var(--brand-600);
        color: #fff;
        border-top-left-radius: var(--r-md);
        border-top-right-radius: 4px;
    }

.rs-msg__when {
    font-size: .65rem;
    color: var(--faint);
    margin-top: .25rem;
    display: block;
}

.rs-msg--me .rs-msg__when {
    text-align: right;
}

.rs-chat__foot {
    display: flex;
    gap: .5rem;
    padding-top: .8rem;
    border-top: 1px solid var(--line);
}

@media (max-width: 767.98px) {
    .rs-chat {
        grid-template-columns: 1fr;
    }

    .rs-chat__list {
        border-right: 0;
        border-bottom: 1px solid var(--line);
        padding-right: 0;
        padding-bottom: .75rem;
        margin-bottom: .75rem;
    }

    .rs-chat__panel {
        padding-left: 0;
    }

    .rs-modes {
        grid-template-columns: 1fr;
    }
}

/* postulante en lista */
.rs-cand {
    display: flex;
    align-items: center;
    gap: .85rem;
    padding: .9rem 0;
    border-bottom: 1px solid var(--line-soft);
}

    .rs-cand:last-child {
        border-bottom: 0;
    }

.rs-cand__video {
    position: relative;
    width: 46px;
    height: 62px;
    border-radius: 8px;
    overflow: hidden;
    flex: 0 0 auto;
    background: var(--ink);
}

    .rs-cand__video img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        opacity: .9;
    }

    .rs-cand__video span {
        position: absolute;
        inset: 0;
        display: grid;
        place-items: center;
        color: #fff;
    }

.rs-cand__body {
    flex: 1 1 auto;
    min-width: 0;
}

.rs-score {
    font-family: var(--font-data);
    font-size: .78rem;
    font-weight: 600;
    color: var(--brand-700);
    background: var(--brand-50);
    border-radius: var(--r-pill);
    padding: .15rem .5rem;
}

.rs-wall__card--sq img {
    aspect-ratio: 1/1;
}

.rs-wall__card--wide img {
    aspect-ratio: 5/4;
}

/* Bootstrap marca la pestaña activa con .active */
.rs-tabs__btn.active {
    background: var(--surface);
    color: var(--ink);
    box-shadow: var(--sh-sm);
}

/* ==========================================================================
   JOBS — seguimiento de postulantes
   ========================================================================== */

.rs-range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 4px;
    border-radius: var(--r-pill);
    background: var(--line);
}

    .rs-range::-webkit-slider-thumb {
        -webkit-appearance: none;
        appearance: none;
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: var(--brand-600);
        border: 3px solid #fff;
        box-shadow: var(--sh-sm);
        cursor: pointer;
    }

    .rs-range::-moz-range-thumb {
        width: 18px;
        height: 18px;
        border-radius: 50%;
        background: var(--brand-600);
        border: 3px solid #fff;
        cursor: pointer;
    }

/* medidor de compatibilidad */
.rs-match {
    display: inline-flex;
    align-items: baseline;
    gap: .1rem;
    font-family: var(--font-data);
    font-weight: 600;
    border-radius: var(--r-pill);
    padding: .2rem .55rem;
    font-size: .82rem;
}

.rs-match--alto {
    background: var(--ok-soft);
    color: #0B8F5C;
}

.rs-match--medio {
    background: var(--warn-soft);
    color: #B0700A;
}

.rs-match--bajo {
    background: var(--line-soft);
    color: var(--muted);
}

.rs-match small {
    font-size: .62rem;
    font-weight: 600;
    opacity: .75;
}

/* candidato recomendado */
.rs-rec {
    border: 1px solid var(--app-jb);
    border-radius: var(--r-lg);
    background: linear-gradient(120deg, var(--app-jb-soft), #FFF 130%);
    padding: 1.2rem;
}

.rs-rec__video {
    position: relative;
    width: 92px;
    aspect-ratio: 9/14;
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--ink);
    flex: 0 0 auto;
}

    .rs-rec__video img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        opacity: .92;
    }

    .rs-rec__video button {
        position: absolute;
        inset: 0;
        border: 0;
        background: transparent;
        display: grid;
        place-items: center;
        color: #fff;
    }

.rs-skill {
    display: inline-flex;
    align-items: center;
    gap: .3rem;
    font-size: .72rem;
    font-weight: 600;
    padding: .18rem .55rem;
    border-radius: var(--r-pill);
    background: var(--ok-soft);
    color: #0B8F5C;
}

.rs-gap {
    background: var(--warn-soft);
    color: #B0700A;
}

/* tarjeta de talento pasivo */
.rs-talent {
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: var(--surface);
    overflow: hidden;
    height: 100%;
}

.rs-talent__media {
    position: relative;
    aspect-ratio: 4/5;
    background: var(--ink);
}

    .rs-talent__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

.rs-talent__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .92);
    color: var(--ink);
    border: 0;
    display: grid;
    place-items: center;
}

.rs-talent__tag {
    position: absolute;
    top: .5rem;
    left: .5rem;
    font-size: .62rem;
    font-weight: 700;
    background: rgba(255, 255, 255, .94);
    color: var(--ink);
    padding: .15rem .45rem;
    border-radius: var(--r-pill);
}

/* ==========================================================================
   COMMUNITY — semana, calendario y aprobación
   ========================================================================== */

.rs-postcard {
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: var(--surface);
    overflow: hidden;
    height: 100%;
    display: flex;
    flex-direction: column;
    text-align: left;
    width: 100%;
    padding: 0;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

    .rs-postcard:hover {
        transform: translateY(-3px);
        box-shadow: var(--sh-md);
        border-color: var(--app-cm);
    }

.rs-postcard__media {
    position: relative;
    aspect-ratio: 4/5;
    overflow: hidden;
    background: var(--line-soft);
}

    .rs-postcard__media img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

.rs-postcard__scrim {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(15, 18, 26, .5) 0%, transparent 45%);
}

.rs-postcard__day {
    position: absolute;
    top: .5rem;
    left: .5rem;
    background: rgba(255, 255, 255, .95);
    border-radius: 10px;
    padding: .25rem .45rem;
    text-align: center;
    line-height: 1.05;
}

    .rs-postcard__day .dow {
        display: block;
        font-size: .58rem;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .05em;
        color: var(--app-cm);
    }

    .rs-postcard__day .num {
        display: block;
        font-size: .95rem;
        font-weight: 700;
        color: var(--ink);
    }

.rs-postcard__net {
    position: absolute;
    top: .5rem;
    right: .5rem;
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    background: rgba(255, 255, 255, .95);
    color: var(--ink);
    font-size: .6rem;
    font-weight: 700;
    padding: .18rem .4rem;
    border-radius: var(--r-pill);
}

.rs-postcard__body {
    padding: .7rem .75rem .8rem;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: .3rem;
}

.rs-postcard__title {
    font-size: .85rem;
    font-weight: 700;
    color: var(--ink);
    line-height: 1.3;
}

.rs-postcard__copy {
    font-size: .74rem;
    color: var(--muted);
    line-height: 1.45;
}

.rs-postcard__foot {
    display: flex;
    align-items: center;
    gap: .4rem;
    margin-top: auto;
    padding-top: .4rem;
}

.rs-state {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    font-size: .66rem;
    font-weight: 700;
    padding: .16rem .5rem;
    border-radius: var(--r-pill);
}

.rs-state--rev {
    background: var(--warn-soft);
    color: #B0700A;
}

.rs-state--ok {
    background: var(--ok-soft);
    color: #0B8F5C;
}

.rs-state--chg {
    background: var(--danger-soft);
    color: #C0272D;
}

.rs-state--pub {
    background: var(--app-cm-soft);
    color: #124BB8;
}

/* calendario mensual */
.rs-cal {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: .4rem;
}

.rs-cal__dow {
    font-size: .64rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--faint);
    text-align: center;
    padding-bottom: .3rem;
}

.rs-cal__cell {
    min-height: 82px;
    border: 1px solid var(--line);
    border-radius: var(--r-sm);
    background: var(--surface);
    padding: .35rem;
    display: flex;
    flex-direction: column;
    gap: .25rem;
}

    .rs-cal__cell.is-empty {
        background: transparent;
        border-color: transparent;
    }

.rs-cal__num {
    font-size: .7rem;
    font-weight: 700;
    color: var(--ink-2);
}

.rs-cal__cell.is-today .rs-cal__num {
    background: var(--app-cm);
    color: #fff;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    font-size: .66rem;
}

.rs-cal__post {
    display: flex;
    align-items: center;
    gap: .3rem;
    font-size: .64rem;
    font-weight: 600;
    color: var(--ink-2);
    background: var(--app-cm-soft);
    border: 0;
    border-radius: 6px;
    padding: .18rem .3rem;
    width: 100%;
    text-align: left;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

    .rs-cal__post:hover {
        background: #D9E6FD;
    }

    .rs-cal__post i {
        width: 5px;
        height: 5px;
        border-radius: 50%;
        background: var(--app-cm);
        flex: 0 0 auto;
        display: block;
    }

.rs-cal__post--rev {
    background: var(--warn-soft);
}

    .rs-cal__post--rev i {
        background: var(--warn);
    }

@media (max-width: 575.98px) {
    .rs-cal__cell {
        min-height: 56px;
    }

    .rs-cal__post {
        font-size: .55rem;
    }
}

/* checklist de aprobación */
.rs-approve {
    display: flex;
    gap: .7rem;
    padding: .75rem 0;
    border-bottom: 1px solid var(--line-soft);
}

    .rs-approve:last-of-type {
        border-bottom: 0;
    }

    .rs-approve input {
        width: 18px;
        height: 18px;
        accent-color: var(--ok);
        flex: 0 0 auto;
        margin-top: 2px;
    }

.rs-approve__title {
    font-size: .85rem;
    font-weight: 700;
    color: var(--ink);
}

.rs-approve__text {
    font-size: .76rem;
    color: var(--muted);
    line-height: 1.45;
}

/* opciones de cambio */
.rs-change {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .8rem;
    border: 1.5px solid var(--line);
    border-radius: var(--r-pill);
    font-size: .78rem;
    font-weight: 600;
    color: var(--ink-2);
    cursor: pointer;
}

    .rs-change:hover {
        border-color: var(--app-cm);
        background: var(--app-cm-soft);
    }

    .rs-change input {
        accent-color: var(--app-cm);
    }

/* vista previa tipo feed */
.rs-feedmock {
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    overflow: hidden;
    background: var(--surface);
}

.rs-feedmock__head {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .6rem .75rem;
    border-bottom: 1px solid var(--line-soft);
}

.rs-feedmock__img {
    width: 100%;
    aspect-ratio: 1;
    object-fit: cover;
    display: block;
}

.rs-feedmock__acts {
    display: flex;
    gap: .7rem;
    padding: .6rem .75rem;
    color: var(--ink-2);
}

.rs-feedmock__copy {
    padding: 0 .75rem .75rem;
    font-size: .78rem;
    color: var(--ink-2);
    line-height: 1.5;
}

/* solicitudes rápidas (fechas especiales) */
.rs-occasion {
    display: flex;
    align-items: center;
    gap: .7rem;
    width: 100%;
    text-align: left;
    padding: .75rem .85rem;
    border: 1px solid var(--line);
    border-radius: var(--r-md);
    background: var(--surface);
    transition: all .16s ease;
}

    .rs-occasion:hover {
        border-color: var(--app-cm);
        background: var(--app-cm-soft);
        transform: translateY(-2px);
    }

.rs-occasion__emoji {
    font-size: 1.3rem;
    line-height: 1;
    flex: 0 0 auto;
}

.rs-cover-4x5 {
    aspect-ratio: 4/5;
}


/* El ámbar de Jobs necesita más cuerpo cuando lleva un icono blanco encima */
.rs-launchgrid__ico.rs-dot--jb {
    background: #C8891A;
}

/* ==========================================================================
   Tira de aplicaciones en el acceso
   ========================================================================== */
.rs-authstrip {
    border-top: 1px solid var(--line);
    padding-top: 1.1rem;
}

.rs-authstrip__label {
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--faint);
    display: block;
    margin-bottom: .7rem;
    text-align: center;
}

.rs-authstrip__row {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .5rem;
}

.rs-applogo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .35rem;
    text-align: center;
}

.rs-applogo__mark {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    color: #fff;
}

.rs-applogo__mark--ri {
    background: linear-gradient(140deg, #4F46E5, #312E81);
}

.rs-applogo__mark--jb {
    background: linear-gradient(140deg, #D98A1F, #7A3E12);
}

.rs-applogo__mark--ex {
    background: linear-gradient(140deg, #DC2626, #6E1010);
}

.rs-applogo__mark--cm {
    background: linear-gradient(140deg, #2166F5, #0C2757);
}

.rs-applogo__name {
    font-size: .62rem;
    font-weight: 700;
    color: var(--ink-2);
    line-height: 1.2;
}
