:root {
    --zc-primary: #6d2347;
    --zc-primary-dark: #3a1026;
    --zc-primary-light: #a45b7d;
    --zc-primary-xlight: #f5e9ee;
    --zc-sidebar-active-bg: rgba(109, 35, 71, .12);
    --zc-sidebar-active-border: #6d2347;
}

.portal-shell {
    background: #f7f4f5;
}

.portal-shell .sidebar-brand-link {
    display: flex;
    align-items: center;
    gap: .75rem;
    color: inherit;
    text-decoration: none;
}

.portal-shell .brand-text {
    color: var(--zc-text-primary, #1f2937);
    font-size: 1rem;
}

.portal-shell .brand-text strong {
    font-weight: 800;
}

.portal-shell .sidebar-close {
    display: none;
}

.portal-shell .topbar-eyebrow {
    margin: 0;
    color: var(--zc-primary, #6d2347);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.portal-shell .topbar-title {
    margin: .2rem 0 0;
    font-size: 1.25rem;
}

.portal-shell .topbar-right,
.portal-shell .topbar-left {
    display: flex;
    align-items: center;
    gap: .8rem;
}

.portal-shell .topbar-icon-btn {
    display: grid;
    width: 2.4rem;
    height: 2.4rem;
    place-items: center;
    color: var(--zc-text-primary, #1f2937);
    background: transparent;
    border: 1px solid var(--zc-border-color, #e5e7eb);
    border-radius: .5rem;
}

.portal-preview-badge {
    padding: .35rem .65rem;
    color: var(--zc-primary-dark);
    background: var(--zc-primary-xlight);
    border-radius: 999px;
    font-size: .72rem;
    font-weight: 700;
}

.auth-page {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 2rem 1rem;
    background: radial-gradient(circle at 80% 10%, rgba(164, 91, 125, .22), transparent 25rem), #3a1026;
}

.auth-main {
    width: min(100%, 30rem);
}

.auth-brand {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.5rem;
    color: #fff;
    text-decoration: none;
    text-align: center;
}

.auth-brand span {
    color: rgba(255, 255, 255, .62);
    font-size: .68rem;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.auth-brand strong {
    margin-top: .3rem;
    font-size: 1.5rem;
}

.auth-note {
    margin: 1.2rem 0 0;
    color: rgba(255, 255, 255, .58);
    font-size: .8rem;
    text-align: center;
}

@media (max-width: 991.98px) {
    .portal-shell .zentic-sidebar:not(.mobile-open) {
        transform: translateX(-100%);
    }

    .portal-shell .zentic-sidebar.mobile-open {
        transform: translateX(0);
    }

    .portal-shell .sidebar-close {
        display: block;
    }
}

/* Tehilah portal surface -------------------------------------------------- */
.portal-shell {
    --portal-wine: #6d2347;
    --portal-wine-dark: #3a1026;
    --portal-cream: #faf8f9;
    background: var(--zc-body-bg, #f4f6fa);
}

.portal-shell .sidebar-brand-link { gap: .65rem; }
.portal-shell .brand-mark {
    display: grid;
    width: 2.15rem;
    height: 2.15rem;
    place-items: center;
    flex: 0 0 2.15rem;
    color: #fff;
    background: linear-gradient(135deg, var(--portal-wine), var(--portal-wine-dark));
    border-radius: .7rem;
    font-size: .66rem;
    font-weight: 800;
    letter-spacing: .04em;
}
.portal-shell .brand-text { line-height: 1.1; }
.portal-shell .brand-text small { display: block; margin-top: .25rem; color: var(--zc-sidebar-text-muted); font-size: .57rem; font-weight: 600; letter-spacing: .02em; }
.portal-shell .sidebar-ai-status { display: flex; align-items: center; gap: .55rem; padding: .7rem 1.15rem; background: rgba(109, 35, 71, .07); border-bottom: 1px solid var(--zc-sidebar-border); }
.portal-shell .sidebar-content { flex: 1; overflow-y: auto; padding: .2rem .62rem 1rem; }
.portal-shell .sidebar-content .nav-section-label { padding-left: .5rem; }
.portal-shell .sidebar-content .nav-list { padding: 0; }
.portal-shell .sidebar-content .nav-link { padding: .68rem .65rem; }
.portal-shell .nav-link.active { background: linear-gradient(135deg, var(--portal-wine), var(--portal-wine-dark)); box-shadow: 0 4px 14px rgba(109, 35, 71, .25); }
.portal-shell .nav-link.active .nav-icon { color: #fff; }
.portal-shell .sidebar-user { display: flex; align-items: center; gap: .6rem; padding: .85rem 1rem; border-top: 1px solid var(--zc-sidebar-border); }
.portal-shell .sidebar-user-info { min-width: 0; flex: 1; }
.portal-shell .sidebar-user-info strong, .portal-shell .sidebar-user-info small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-shell .sidebar-user-info strong { font-size: .76rem; }
.portal-shell .sidebar-user-info small { margin-top: .15rem; color: var(--zc-text-secondary); font-size: .64rem; }
.portal-shell .sidebar-user-settings { color: var(--zc-text-muted); }
.portal-shell .zentic-topbar { padding: 0 1.5rem; }
.portal-shell .topbar-heading { line-height: 1; }
.portal-shell .topbar-eyebrow { margin: 0; color: var(--portal-wine); font-size: .6rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.portal-shell .topbar-eyebrow span { color: var(--zc-border-color); margin: 0 .18rem; }
.portal-shell .topbar-title { margin: .24rem 0 0; font-size: 1rem; font-weight: 700; }
.portal-shell .topbar-account { display: flex; align-items: center; gap: .55rem; margin-left: .25rem; }
.portal-shell .topbar-account-copy strong, .portal-shell .topbar-account-copy small { display: block; line-height: 1.2; }
.portal-shell .topbar-account-copy strong { font-size: .75rem; }
.portal-shell .topbar-account-copy small { margin-top: .18rem; color: var(--zc-text-secondary); font-size: .62rem; }
.portal-shell .portal-avatar { color: var(--portal-wine-dark); background: #f0dfe7; font-size: .67rem; font-weight: 800; }
.portal-shell .topbar-btn { position: relative; display: grid; width: 2.2rem; height: 2.2rem; place-items: center; color: var(--zc-text-secondary); background: transparent; border: 0; border-radius: .5rem; }
.portal-shell .topbar-btn:hover { color: var(--portal-wine); background: var(--zc-border-light); }
.portal-shell .topbar-btn .notif-badge { top: .3rem; right: .32rem; width: .42rem; height: .42rem; background: var(--portal-wine); border: 2px solid #fff; }
.portal-shell .zentic-content { padding: 2rem clamp(1rem, 3vw, 2rem); }
.portal-shell .zentic-footer { padding: .9rem clamp(1rem, 3vw, 2rem); font-size: .7rem; }
.portal-shell .footer-status-dot { display: inline-block; width: .4rem; height: .4rem; margin-right: .35rem; background: var(--zc-warning); border-radius: 50%; }
.portal-shell .portal-page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1.25rem; margin-bottom: 1.45rem; }
.portal-shell .eyebrow-label { margin: 0 0 .35rem; color: var(--portal-wine); font-size: .64rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.portal-shell .page-title { font-size: clamp(1.45rem, 2.2vw, 1.9rem); letter-spacing: -.04em; }
.portal-shell .page-subtitle { margin: .35rem 0 0; color: var(--zc-text-secondary); font-size: .78rem; }
.portal-shell .page-header-actions { display: flex; align-items: center; gap: .55rem; flex-wrap: wrap; }
.portal-shell .btn-zentic { display: inline-flex; align-items: center; justify-content: center; gap: .15rem; border-radius: .55rem; font-size: .72rem; font-weight: 700; }
.portal-shell .btn-primary { background: linear-gradient(135deg, var(--portal-wine), var(--portal-wine-dark)); box-shadow: 0 3px 10px rgba(109, 35, 71, .22); }
.portal-shell .btn-primary:hover { background: var(--portal-wine-dark); }
.portal-shell .btn-outline { color: var(--zc-text-secondary); background: #fff; border-color: var(--zc-border-color); }
.portal-shell .btn-outline:hover { color: var(--portal-wine); border-color: #d4a6b9; background: #fff; }
.portal-shell .btn-white { color: var(--portal-wine-dark); background: #fff; border-color: #fff; }
.portal-shell .btn-ghost { color: var(--zc-text-secondary); }
.portal-shell .card-subtitle { margin: .23rem 0 0; color: var(--zc-text-secondary); font-size: .68rem; font-weight: 400; }
.portal-shell .card-link, .portal-shell .stat-link { color: var(--portal-wine); font-size: .68rem; font-weight: 700; }
.portal-shell .stat-link { display: inline-flex; align-items: center; gap: .3rem; margin-top: auto; padding-top: .8rem; }
.portal-shell .stat-link i, .portal-shell .card-link i { font-size: .75rem; }
.portal-shell .portal-alert { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.25rem; padding: .82rem 1rem; color: #49303a; background: #fff7ed; border: 1px solid #f7dfbd; border-radius: .8rem; }
.portal-shell .portal-alert-admin { color: #304a48; background: #effcf8; border-color: #c7eee2; }
.portal-shell .portal-alert-icon { display: grid; width: 2rem; height: 2rem; flex: 0 0 2rem; place-items: center; color: #c27525; background: #fff; border-radius: .55rem; }
.portal-shell .portal-alert-admin .portal-alert-icon { color: #0f8b73; }
.portal-shell .portal-alert strong { display: block; font-size: .74rem; }
.portal-shell .portal-alert p { margin: .18rem 0 0; color: inherit; opacity: .78; font-size: .66rem; }
.portal-shell .portal-alert a { margin-left: auto; color: inherit; font-size: .66rem; font-weight: 700; white-space: nowrap; }
.portal-shell .portal-alert a i { margin-left: .2rem; }
.portal-shell .portal-stat-card { min-height: 10.9rem; padding: 1.05rem; }
.portal-shell .portal-stat-card .stat-card-header { margin-bottom: .65rem; }
.portal-shell .portal-stat-card .stat-icon { width: 2.15rem; height: 2.15rem; border-radius: .62rem; font-size: .92rem; }
.portal-shell .stat-kicker { color: var(--zc-text-secondary); font-size: .64rem; font-weight: 700; }
.portal-shell .stat-value { display: block; font-size: 1.38rem; letter-spacing: -.05em; }
.portal-shell .stat-value small { color: var(--zc-text-secondary); font-size: .68rem; font-weight: 500; letter-spacing: 0; }
.portal-shell .stat-meta { display: block; margin-top: .25rem; color: var(--zc-text-secondary); font-size: .65rem; }
.portal-shell .stat-positive { color: #059669; font-weight: 700; }
.portal-shell .activity-chart { display: flex; min-height: 15rem; }
.portal-shell .chart-axis { display: flex; flex-direction: column; justify-content: space-between; padding: .2rem .75rem .95rem 0; color: var(--zc-text-muted); font-family: var(--zc-font-mono); font-size: .6rem; }
.portal-shell .chart-grid { position: relative; flex: 1; min-width: 0; padding-bottom: 1.25rem; }
.portal-shell .chart-line { position: absolute; right: 0; left: 0; height: 1px; background: #edf0f5; }
.portal-shell .chart-line:nth-child(1) { top: 0; }.portal-shell .chart-line:nth-child(2) { top: 33.3%; }.portal-shell .chart-line:nth-child(3) { top: 66.6%; }.portal-shell .chart-line:nth-child(4) { bottom: 0; }
.portal-shell .chart-svg { position: absolute; inset: 0 0 1.25rem; width: 100%; height: calc(100% - 1.25rem); overflow: visible; }
.portal-shell .chart-labels { position: absolute; right: 0; bottom: 0; left: 0; display: flex; justify-content: space-between; color: var(--zc-text-muted); font-size: .6rem; }
.portal-shell .portal-activity-list .activity-item { gap: .65rem; padding: .78rem 0; border-bottom: 1px solid var(--zc-border-light); }
.portal-shell .portal-activity-list .activity-item:last-child { border-bottom: 0; }
.portal-shell .activity-icon { display: grid; width: 1.8rem; height: 1.8rem; flex: 0 0 1.8rem; place-items: center; border-radius: .55rem; font-size: .75rem; }
.portal-shell .activity-icon-purple { color: var(--portal-wine); background: #f3e5eb; }.portal-shell .activity-icon-cyan { color: #087f91; background: #e2f8fb; }.portal-shell .activity-icon-green { color: #087153; background: #e0f7ed; }
.portal-shell .activity-item strong, .portal-shell .activity-item small { display: block; }.portal-shell .activity-item strong { font-size: .68rem; }.portal-shell .activity-item small { margin-top: .18rem; color: var(--zc-text-secondary); font-size: .61rem; }
.portal-shell .subscription-hero { position: relative; min-height: 20rem; overflow: hidden; color: #fff; background: linear-gradient(135deg, #3a1026, #6d2347 65%, #9d506e); border-radius: var(--zc-radius-xl); box-shadow: 0 12px 30px rgba(58, 16, 38, .18); }
.portal-shell .subscription-hero-glow { position: absolute; width: 20rem; height: 20rem; top: -8rem; right: -4rem; background: rgba(255, 255, 255, .11); border-radius: 50%; filter: blur(1px); }
.portal-shell .subscription-hero-content { position: relative; display: flex; height: 100%; min-height: 20rem; flex-direction: column; padding: 1.7rem; }
.portal-shell .subscription-hero-top { display: flex; align-items: center; justify-content: space-between; }.portal-shell .subscription-hero .badge-purple { color: #fff; background: rgba(255, 255, 255, .13); }
.portal-shell .plan-mark { display: grid; width: 2.45rem; height: 2.45rem; place-items: center; color: #3a1026; background: #f5dcb0; border-radius: .7rem; }
.portal-shell .subscription-hero h3 { margin-top: auto; color: #fff; font-size: 1.55rem; letter-spacing: -.04em; }.portal-shell .subscription-hero p { max-width: 27rem; margin: .45rem 0 1.1rem; color: rgba(255,255,255,.72); font-size: .73rem; }
.portal-shell .plan-price { display: flex; align-items: baseline; gap: .45rem; }.portal-shell .plan-price strong { font-size: 2.15rem; letter-spacing: -.07em; }.portal-shell .plan-price span { color: rgba(255,255,255,.68); font-size: .7rem; }
.portal-shell .subscription-hero-footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; margin-top: 1.4rem; padding-top: .95rem; border-top: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.72); font-size: .65rem; }.portal-shell .subscription-hero-footer i { margin-right: .25rem; }
.portal-shell .feature-list { margin: 0; padding: 0; list-style: none; }.portal-shell .feature-list li { display: flex; align-items: center; gap: .65rem; padding: .68rem 0; border-bottom: 1px solid var(--zc-border-light); font-size: .72rem; }.portal-shell .feature-list li:last-child { border-bottom: 0; }.portal-shell .feature-check { display: grid; width: 1.45rem; height: 1.45rem; place-items: center; color: #087153; background: #e0f7ed; border-radius: 50%; font-size: .65rem; }
.portal-shell .plan-note, .portal-shell .secure-note, .portal-shell .demo-notice { display: flex; gap: .55rem; margin-top: 1.2rem; padding: .7rem; color: var(--zc-text-secondary); background: var(--zc-body-bg); border-radius: .55rem; font-size: .63rem; line-height: 1.55; }.portal-shell .plan-note i, .portal-shell .secure-note i, .portal-shell .demo-notice i { color: var(--portal-wine); flex: 0 0 auto; }
.portal-shell .current-plan-cell { color: var(--portal-wine); }.portal-shell .current-plan-cell .badge-zentic { margin-left: .3rem; vertical-align: middle; }
.portal-shell .usage-period { display: inline-flex; align-items: center; gap: .4rem; color: var(--zc-text-secondary); font-size: .68rem; }.portal-shell .usage-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.35rem; }.portal-shell .usage-summary h3 { margin-top: .3rem; font-size: .95rem; }.portal-shell .usage-summary p { margin-top: .3rem; color: var(--zc-text-secondary); font-size: .67rem; }.portal-shell .usage-summary-number { display: flex; flex-direction: column; align-items: flex-end; }.portal-shell .usage-summary-number strong { color: var(--portal-wine); font-size: 1.8rem; letter-spacing: -.07em; }.portal-shell .usage-summary-number span { color: var(--zc-text-secondary); font-size: .62rem; }
.portal-shell .usage-card { padding: 1.1rem; }.portal-shell .usage-card-head { display: flex; align-items: center; justify-content: space-between; }.portal-shell .usage-icon { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: .65rem; }.portal-shell .usage-icon-research { color: var(--portal-wine); background: #f3e5eb; }.portal-shell .usage-icon-watchlists { color: #087f91; background: #e2f8fb; }.portal-shell .usage-icon-exports { color: #087153; background: #e0f7ed; }.portal-shell .usage-card h3 { margin-top: 1rem; font-size: .77rem; }.portal-shell .usage-number { margin: .2rem 0 .8rem; }.portal-shell .usage-number strong { font-size: 1.7rem; letter-spacing: -.07em; }.portal-shell .usage-number span { color: var(--zc-text-secondary); font-size: .7rem; }.portal-shell .usage-card-foot { display: flex; justify-content: space-between; margin-top: .55rem; color: var(--zc-text-secondary); font-size: .6rem; }
.portal-shell .payment-method { display: flex; align-items: center; gap: .85rem; padding: 1rem; border: 1px solid var(--zc-border-color); border-radius: .7rem; }.portal-shell .card-brand-mark { display: grid; width: 2.8rem; height: 1.8rem; place-items: center; color: #fff; background: linear-gradient(135deg, #25395d, #5276a8); border-radius: .25rem; font-size: .55rem; font-style: italic; font-weight: 800; }.portal-shell .payment-method strong, .portal-shell .payment-method small { display: block; }.portal-shell .payment-method strong { font-size: .72rem; }.portal-shell .payment-method small { margin-top: .2rem; color: var(--zc-text-secondary); font-size: .62rem; }.portal-shell .invoice-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }.portal-shell .invoice-summary strong, .portal-shell .invoice-summary span { display: block; }.portal-shell .invoice-summary strong { margin: .35rem 0 .1rem; font-size: 1.45rem; letter-spacing: -.06em; }.portal-shell .invoice-summary strong small { color: var(--zc-text-secondary); font-size: .6rem; letter-spacing: 0; }.portal-shell .invoice-summary span:last-child { color: var(--zc-text-secondary); font-size: .65rem; }
.portal-shell .portal-empty-state { display: grid; min-height: 12rem; padding: 2rem 1rem; place-items: center; align-content: center; color: var(--zc-text-secondary); text-align: center; }.portal-shell .portal-empty-state > i { margin-bottom: .7rem; color: var(--portal-wine, #6d2347); font-size: 1.4rem; }.portal-shell .portal-empty-state strong { color: var(--zc-text-primary); font-size: .78rem; }.portal-shell .portal-empty-state p { max-width: 30rem; margin: .4rem 0 0; font-size: .66rem; line-height: 1.6; }.portal-shell .portal-empty-state--compact { min-height: 8rem; padding: 1rem; }
.portal-shell .portal-table { min-width: 42rem; font-size: .69rem; }.portal-shell .portal-table th { color: var(--zc-text-muted); font-size: .6rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; border-bottom-color: var(--zc-border-color); }.portal-shell .portal-table td { padding-top: .8rem; padding-bottom: .8rem; color: var(--zc-text-secondary); border-bottom-color: var(--zc-border-light); }.portal-shell .portal-table td strong { color: var(--zc-text-primary); }.portal-shell .portal-table tbody tr:last-child td { border-bottom: 0; }.portal-shell .member-cell { display: flex; align-items: center; gap: .6rem; }.portal-shell .member-cell strong, .portal-shell .member-cell small { display: block; }.portal-shell .member-cell strong { font-size: .7rem; }.portal-shell .member-cell small { margin-top: .12rem; color: var(--zc-text-secondary); font-size: .6rem; }.portal-shell .avatar-sm { width: 2rem; height: 2rem; font-size: .63rem; }.portal-shell .avatar-purple { color: var(--portal-wine); background: #f3e5eb; }.portal-shell .avatar-cyan { color: #087f91; background: #e2f8fb; }.portal-shell .avatar-orange { color: #a85b0a; background: #fff0d9; }.portal-shell .plan-cell { display: inline-flex; align-items: center; gap: .35rem; color: var(--zc-text-primary); font-size: .67rem; }.portal-shell .plan-cell i { color: var(--portal-wine); }
.portal-shell .admin-chart { position: relative; min-height: 17rem; padding-top: 1.8rem; }.portal-shell .admin-chart svg { display: block; width: 100%; height: 14rem; overflow: visible; }.portal-shell .admin-chart-legend { position: absolute; top: 0; right: 0; display: flex; gap: 1rem; color: var(--zc-text-secondary); font-size: .62rem; }.portal-shell .legend-dot { display: inline-block; width: .45rem; height: .45rem; margin-right: .25rem; border-radius: 50%; }.portal-shell .legend-dot-purple { background: var(--zc-primary); }.portal-shell .legend-dot-cyan { background: var(--zc-secondary); }.portal-shell .mix-row { display: grid; grid-template-columns: 1fr 2.3rem; gap: .5rem; align-items: end; margin-bottom: 1.1rem; }.portal-shell .mix-row > div:first-child { grid-column: 1 / -1; display: flex; justify-content: space-between; }.portal-shell .mix-row span, .portal-shell .mix-row strong { font-size: .68rem; }.portal-shell .mix-row strong { font-weight: 500; color: var(--zc-text-secondary); }.portal-shell .mix-row small { color: var(--zc-text-secondary); font-size: .6rem; text-align: right; }.portal-shell .mix-track { height: .45rem; overflow: hidden; background: #f0efff; border-radius: 99rem; }.portal-shell .mix-track span { display: block; height: 100%; background: var(--zc-primary); border-radius: inherit; }.portal-shell .mix-track-cyan { background: #e5fafc; }.portal-shell .mix-track-cyan span { background: var(--zc-secondary); }.portal-shell .mix-divider { margin: .2rem 0 .5rem; border-top: 1px solid var(--zc-border-light); }.portal-shell .mini-stat-row { display: flex; justify-content: space-between; padding: .5rem 0; color: var(--zc-text-secondary); font-size: .66rem; }
.portal-shell .mini-metric { display: flex; align-items: center; gap: .7rem; padding: .8rem; background: #fff; border: 1px solid var(--zc-border-color); border-radius: .75rem; }.portal-shell .mini-metric-icon { display: grid; width: 2rem; height: 2rem; flex: 0 0 2rem; place-items: center; border-radius: .55rem; font-size: .8rem; }.portal-shell .mini-metric-purple { color: var(--portal-wine); background: #f3e5eb; }.portal-shell .mini-metric-green { color: #087153; background: #e0f7ed; }.portal-shell .mini-metric-blue { color: #1d4ed8; background: #e4efff; }.portal-shell .mini-metric-orange { color: #a85b0a; background: #fff0d9; }.portal-shell .mini-metric small, .portal-shell .mini-metric strong { display: block; }.portal-shell .mini-metric small { color: var(--zc-text-secondary); font-size: .62rem; }.portal-shell .mini-metric strong { margin-top: .12rem; font-size: 1.1rem; letter-spacing: -.04em; }.portal-shell .member-table-toolbar { align-items: center; }.portal-shell .table-count { display: inline-grid; min-width: 1.35rem; height: 1.35rem; margin-left: .25rem; place-items: center; color: var(--portal-wine); background: #f3e5eb; border-radius: 50%; font-size: .58rem; }.portal-shell .table-filters { display: flex; gap: .25rem; padding: .2rem; background: var(--zc-body-bg); border-radius: .5rem; }.portal-shell .filter-pill { padding: .42rem .65rem; color: var(--zc-text-secondary); background: transparent; border: 0; border-radius: .35rem; font-size: .61rem; font-weight: 700; }.portal-shell .filter-pill.active { color: var(--portal-wine); background: #fff; box-shadow: var(--zc-shadow-xs); }.portal-shell .table-footer { display: flex; align-items: center; justify-content: space-between; padding: .75rem 1.25rem; color: var(--zc-text-secondary); border-top: 1px solid var(--zc-border-light); font-size: .62rem; }.portal-shell .pagination-simple { display: flex; align-items: center; gap: .5rem; }.portal-shell .pagination-simple > span { color: var(--portal-wine); font-weight: 700; }
.portal-shell .zentic-modal .modal-title { font-size: 1rem; }.portal-shell .zentic-modal .form-label { display: block; margin-bottom: .35rem; color: var(--zc-text-secondary); font-size: .68rem; font-weight: 700; }.portal-shell .zentic-modal .form-control, .portal-shell .zentic-modal .form-select { font-size: .72rem; }
.portal-shell .research-intro { display: flex; align-items: center; gap: .85rem; padding: 1.1rem 1.25rem; }.portal-shell .research-intro-icon { display: grid; width: 2.25rem; height: 2.25rem; flex: 0 0 2.25rem; place-items: center; color: var(--portal-wine); background: #f3e5eb; border-radius: .65rem; }.portal-shell .research-intro h3 { font-size: .82rem; }.portal-shell .research-intro p { margin-top: .22rem; color: var(--zc-text-secondary); font-size: .66rem; }.portal-shell .research-card { display: flex; align-items: center; gap: .7rem; min-height: 7.5rem; padding: 1rem; color: inherit; transition: transform var(--transition-fast), box-shadow var(--transition-fast), border-color var(--transition-fast); }.portal-shell .research-card:hover { color: inherit; border-color: #d4a6b9; transform: translateY(-2px); box-shadow: var(--zc-shadow-md); }.portal-shell .research-card > span:not(.research-card-icon) { flex: 1; }.portal-shell .research-card strong, .portal-shell .research-card small { display: block; }.portal-shell .research-card strong { font-size: .72rem; }.portal-shell .research-card small { margin-top: .25rem; color: var(--zc-text-secondary); font-size: .62rem; line-height: 1.45; }.portal-shell .research-card-icon { display: grid; width: 2.15rem; height: 2.15rem; flex: 0 0 2.15rem; place-items: center; border-radius: .6rem; }.portal-shell .research-icon-purple { color: var(--portal-wine); background: #f3e5eb; }.portal-shell .research-icon-cyan { color: #087f91; background: #e2f8fb; }.portal-shell .research-icon-green { color: #087153; background: #e0f7ed; }.portal-shell .research-card-arrow { margin-left: auto; color: var(--portal-wine); font-size: .8rem; }

@media (max-width: 767.98px) {
    .portal-shell .zentic-topbar { padding: 0 1rem; }.portal-shell .topbar-account-copy, .portal-shell .topbar-search { display: none; }.portal-shell .portal-page-header { align-items: flex-start; flex-direction: column; }.portal-shell .page-header-actions { width: 100%; }.portal-shell .page-header-actions .btn-zentic { flex: 1; }.portal-shell .portal-alert { align-items: flex-start; flex-wrap: wrap; }.portal-shell .portal-alert a { margin-left: 2.8rem; }.portal-shell .usage-summary { align-items: flex-start; }.portal-shell .subscription-hero-footer { align-items: flex-start; flex-direction: column; }.portal-shell .invoice-summary { align-items: flex-start; flex-direction: column; }.portal-shell .table-filters { order: 2; width: 100%; overflow-x: auto; }.portal-shell .member-table-toolbar { align-items: flex-start; flex-direction: column; }.portal-shell .table-footer { gap: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
    .auth-live-background *, .auth-live-background *::before, .auth-live-background *::after { animation: none !important; }
    .auth-page *, .auth-page *::before, .auth-page *::after { transition-duration: .01ms !important; }
    .portal-shell *, .portal-shell *::before, .portal-shell *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Authentication and onboarding ------------------------------------------ */
.auth-page { position: relative; isolation: isolate; overflow-x: hidden; color: var(--zc-text-primary, #111827); background: #f4f6fa; font-family: "Montserrat", ui-sans-serif, system-ui, sans-serif; }
.auth-page :is(h1, h2, h3, h4, h5, h6, button, input, textarea, select) { font-family: "Montserrat", ui-sans-serif, system-ui, sans-serif; }
.auth-page::before, .auth-page::after { position: fixed; z-index: 0; width: 28rem; height: 28rem; border: 1px solid rgba(255,255,255,.07); border-radius: 50%; content: ""; pointer-events: none; }
.auth-page::before { top: -16rem; right: -9rem; border-color: rgba(109,35,71,.08); }.auth-page::after { bottom: -18rem; left: -10rem; border-color: rgba(80,70,229,.08); }
.auth-live-background { position: fixed; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; }
.auth-live-image { position: absolute; inset: -8%; opacity: .18; background: url('../images/auth-research-live-bg.webp') center / cover no-repeat; filter: saturate(.84) contrast(.92); transform: scale(1.08); animation: auth-image-drift 36s ease-in-out infinite alternate; }
.auth-live-grid { position: absolute; inset: -10%; opacity: .58; background-image: linear-gradient(to right, rgba(109,35,71,.045) 1px, transparent 1px), linear-gradient(to bottom, rgba(109,35,71,.045) 1px, transparent 1px); background-size: 5rem 5rem; mask-image: linear-gradient(to bottom, transparent, #000 15%, #000 82%, transparent); animation: auth-grid-drift 28s linear infinite; }
.auth-live-orbit { position: absolute; border: 1px solid rgba(109,35,71,.09); border-radius: 50%; animation: auth-orbit-breathe 12s ease-in-out infinite alternate; }
.auth-live-orbit--one { top: 7%; right: -8rem; width: 31rem; height: 31rem; }
.auth-live-orbit--two { bottom: -15rem; left: 12%; width: 28rem; height: 28rem; border-color: rgba(80,70,229,.07); animation-delay: -4s; }
.auth-live-traces { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .42; pointer-events: none; }
.auth-live-trace { fill: none; stroke-width: 1.5; stroke-dasharray: 9 18; animation: auth-trace-flow 11s linear infinite; }
.auth-live-trace--primary { color: rgba(109,35,71,.25); stroke: currentColor; }
.auth-live-trace--secondary { color: rgba(80,70,229,.16); stroke: currentColor; animation-duration: 15s; animation-direction: reverse; }
.auth-live-bars { position: absolute; right: 7%; bottom: 13%; display: flex; align-items: flex-end; gap: .65rem; width: min(18rem, 25vw); height: 9rem; opacity: .28; transform: skewY(-8deg); }
.auth-live-bars span { position: relative; display: block; width: .65rem; height: var(--auth-bar-height); background: linear-gradient(to bottom, rgba(109,35,71,.58), rgba(207,116,142,.28)); border-radius: .18rem; animation: auth-bar-pulse 7s ease-in-out infinite alternate; }
.auth-live-bars span::before { position: absolute; top: -.9rem; bottom: -.9rem; left: 50%; width: 1px; background: rgba(109,35,71,.35); content: ""; }
.auth-live-bars span:nth-child(1) { --auth-bar-height: 2.4rem; animation-delay: -.8s; }.auth-live-bars span:nth-child(2) { --auth-bar-height: 4.6rem; animation-delay: -2.1s; }.auth-live-bars span:nth-child(3) { --auth-bar-height: 3.2rem; animation-delay: -3.4s; }.auth-live-bars span:nth-child(4) { --auth-bar-height: 6.4rem; animation-delay: -1.2s; }.auth-live-bars span:nth-child(5) { --auth-bar-height: 5rem; animation-delay: -4s; }.auth-live-bars span:nth-child(6) { --auth-bar-height: 7.4rem; animation-delay: -2.8s; }.auth-live-bars span:nth-child(7) { --auth-bar-height: 6rem; animation-delay: -5.2s; }
@keyframes auth-grid-drift { to { transform: translate3d(5rem, 5rem, 0); } }
@keyframes auth-image-drift { to { transform: scale(1.16) translate3d(-1.5%, 1%, 0); } }
@keyframes auth-orbit-breathe { to { transform: scale(1.04) translate3d(-.5rem, .6rem, 0); opacity: .68; } }
@keyframes auth-trace-flow { to { stroke-dashoffset: -216; } }
@keyframes auth-bar-pulse { to { transform: translateY(-.35rem); opacity: .72; } }
.auth-main { position: relative; z-index: 1; width: min(100%, 33rem); }
.auth-brand { gap: .25rem; }
.auth-card { padding: clamp(1.4rem, 5vw, 2.2rem); background: rgba(255,255,255,.98); border: 1px solid rgba(255,255,255,.28); border-radius: 1.2rem; box-shadow: 0 2rem 5rem rgba(14,2,8,.28); }
.auth-card-heading { margin-bottom: 1.35rem; }.auth-kicker { display: block; margin-bottom: .55rem; color: var(--portal-wine, #6d2347); font-size: .62rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }.auth-card h1 { font-size: 1.55rem; letter-spacing: -.05em; }.auth-card-heading p { margin-top: .45rem; color: var(--zc-text-secondary); font-size: .72rem; line-height: 1.55; }
.auth-divider { display: flex; align-items: center; gap: .65rem; margin: 1.15rem 0; color: var(--zc-text-muted); font-size: .61rem; }.auth-divider::before, .auth-divider::after { height: 1px; flex: 1; background: var(--zc-border-color); content: ""; }
.auth-label { display: block; margin: .8rem 0 .35rem; color: var(--zc-text-primary); font-size: .66rem; font-weight: 700; }.auth-label-row { display: flex; align-items: center; justify-content: space-between; }.auth-label-row a { color: var(--portal-wine, #6d2347); font-size: .62rem; font-weight: 700; }.auth-input { display: block; width: 100%; min-height: 2.7rem; padding: .65rem .75rem; color: var(--zc-text-primary); background: #fff; border: 1px solid var(--zc-border-color); border-radius: .5rem; font: inherit; font-size: .72rem; }.auth-input:focus { border-color: var(--portal-wine, #6d2347); outline: 0; box-shadow: 0 0 0 .2rem rgba(109,35,71,.12); }.auth-password-field { position: relative; }.auth-password-field .auth-input { padding-right: 2.75rem; }.auth-password-toggle { position: absolute; top: 50%; right: .45rem; display: grid; width: 1.9rem; height: 1.9rem; padding: 0; place-items: center; color: var(--zc-text-muted, #6b7280); background: transparent; border: 0; border-radius: .4rem; transform: translateY(-50%); }.auth-password-toggle:hover { color: var(--portal-wine, #6d2347); background: rgba(109,35,71,.06); }.auth-password-toggle:focus-visible { color: var(--portal-wine, #6d2347); outline: 2px solid var(--portal-wine, #6d2347); outline-offset: 2px; }.auth-field-note { margin: .35rem 0 0; color: var(--zc-text-secondary); font-size: .59rem; }.auth-submit { display: flex; align-items: center; justify-content: center; gap: .35rem; width: 100%; min-height: 2.9rem; margin-top: 1.2rem; color: #fff; background: linear-gradient(135deg, var(--portal-wine, #6d2347), var(--portal-wine-dark, #3a1026)); border: 0; border-radius: .55rem; font-size: .73rem; font-weight: 700; box-shadow: 0 5px 14px rgba(109,35,71,.2); }.auth-submit i { font-size: .85rem; }.auth-submit:disabled, .auth-password-toggle:disabled { cursor: wait; opacity: .65; }
.auth-swal-popup { width: min(28rem, calc(100% - 2rem)) !important; padding: 1.75rem !important; border: 1px solid #eee8ed !important; border-radius: 1rem !important; box-shadow: 0 1.5rem 4rem rgba(32,9,22,.18) !important; font-family: "Montserrat", ui-sans-serif, system-ui, sans-serif !important; }
.auth-swal-popup .swal2-icon { margin: .15rem auto 1rem; }
.auth-swal-title { color: var(--zc-text-primary, #111827) !important; font-size: 1.15rem !important; letter-spacing: -.04em; }
.auth-swal-text { color: var(--zc-text-secondary, #6b7280) !important; font-size: .75rem !important; line-height: 1.6 !important; }
.auth-swal-confirm { min-height: 2.65rem !important; padding: .65rem 1.3rem !important; background: var(--portal-wine, #6d2347) !important; border-radius: .55rem !important; font-size: .72rem !important; font-weight: 700 !important; box-shadow: 0 .45rem 1rem rgba(109,35,71,.18) !important; }
.auth-switch { margin: 1.25rem 0 0; color: var(--zc-text-secondary); font-size: .67rem; text-align: center; }.auth-switch a { color: var(--portal-wine, #6d2347); font-weight: 800; }.auth-legal { margin: 1.15rem 0 0; color: var(--zc-text-muted); font-size: .57rem; line-height: 1.55; text-align: center; }.auth-error, .auth-success { display: flex; gap: .55rem; margin-bottom: 1rem; padding: .7rem .75rem; border-radius: .55rem; font-size: .64rem; line-height: 1.5; }.auth-error { display: block; color: #8b2d2d; background: #fff0f0; border: 1px solid #f4cccc; }.auth-error strong { display: block; }.auth-error ul { margin: .25rem 0 0; padding-left: 1rem; }.auth-success { color: #086b56; background: #e9faf4; border: 1px solid #c7eee2; }.auth-success i { flex: 0 0 auto; }.auth-success p { margin: 0; }
/* Zentic split-panel login shell. */
.auth-page--zentic-login { display: flex; min-height: 100vh; padding: 0; overflow-x: hidden; background: var(--zc-body-bg, #f4f6fa); }
.auth-page--zentic-login .auth-main--zentic-login { display: flex; width: 100%; max-width: none; min-height: 100vh; }
.auth-page--zentic-login .auth-left { flex: 1; justify-content: flex-start; align-items: flex-start; padding: clamp(2rem, 7vw, 6rem); background: radial-gradient(circle at 80% 12%, rgba(207, 116, 142, .22), transparent 26rem), linear-gradient(150deg, #3a1026 0%, #240813 58%, #18050d 100%); }
.auth-page--zentic-login .auth-left-logo { position: relative; z-index: 1; margin-bottom: clamp(3.5rem, 10vh, 7rem); color: #fff; }
.auth-page--zentic-login .auth-left-logo-icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; color: #fff; background: var(--portal-wine, #6d2347); border-radius: var(--zc-radius-xl, 1rem); font-size: .76rem; font-weight: 800; letter-spacing: .04em; }
.auth-page--zentic-login .auth-left-logo-text { color: #fff; font-size: 1.25rem; font-weight: 800; }
.auth-page--zentic-login .auth-left-copy { position: relative; z-index: 1; max-width: 34rem; }
.auth-page--zentic-login .auth-left-eyebrow { margin: 0 0 1.15rem; color: rgba(255,255,255,.58); font-size: .68rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.auth-page--zentic-login .auth-tagline { margin: 0 0 1rem; color: #fff; font-size: clamp(2.15rem, 4vw, 3.8rem); font-weight: 800; letter-spacing: -.06em; line-height: 1.08; }
.auth-page--zentic-login .auth-tagline span { color: #f08eaa; background: none; -webkit-text-fill-color: initial; }
.auth-page--zentic-login .auth-description { max-width: 28rem; margin-bottom: 2rem; color: rgba(255,255,255,.68); font-size: .9rem; line-height: 1.75; }
.auth-page--zentic-login .auth-feature { margin-bottom: 1rem; }
.auth-page--zentic-login .auth-feature-icon { color: #f08eaa; background: rgba(255,255,255,.1); }
.auth-page--zentic-login .auth-feature span:last-child { color: rgba(255,255,255,.78); }
.auth-page--zentic-login .auth-left-meta { position: absolute; right: clamp(2rem, 7vw, 6rem); bottom: 2rem; left: clamp(2rem, 7vw, 6rem); z-index: 1; margin: 0; color: rgba(255,255,255,.44); font-size: .68rem; letter-spacing: .03em; }
.auth-page--zentic-login .auth-right { width: 42%; min-width: 30rem; padding: clamp(2rem, 6vw, 5rem); background: var(--zc-body-bg, #f4f6fa); }
.auth-page--zentic-login .auth-form-container { max-width: 28rem; }
.auth-page--zentic-login .auth-card { box-shadow: var(--zc-shadow-lg, 0 10px 25px rgba(0,0,0,.06)); }
.auth-page--zentic-login .auth-form-header { margin-bottom: 1.5rem; }
.auth-page--zentic-login .auth-form-title { margin: 0 0 .4rem; color: var(--zc-text-primary, #111827); font-size: 1.7rem; font-weight: 800; letter-spacing: -.05em; }
.auth-page--zentic-login .auth-form-subtitle { margin: 0; color: var(--zc-text-secondary, #6b7280); font-size: .76rem; line-height: 1.6; }
.auth-page--zentic-login .auth-note { margin-top: 1.25rem; color: var(--zc-text-muted, #6b7280); font-size: .62rem; line-height: 1.5; }

@media (max-width: 991.98px) {
    .auth-page--zentic-login .auth-main--zentic-login { display: block; }
    .auth-page--zentic-login .auth-left { display: none; }
    .auth-page--zentic-login .auth-right { width: 100%; min-width: 0; min-height: 100vh; padding: 2rem 1rem; }
    .auth-page--zentic-login .auth-form-container { margin: 0 auto; }
}

/* Zentic workspace gateway concept: compact rail + focused account panel. */
.auth-page--zentic-gateway { display: block; min-height: 100vh; padding: 0; overflow-x: hidden; background: #f4f6fa; }
.auth-page--zentic-gateway::before { top: -13rem; right: -10rem; border-color: rgba(109,35,71,.08); }
.auth-page--zentic-gateway::after { bottom: -16rem; left: -12rem; border-color: rgba(80,70,229,.08); }
.auth-page--zentic-gateway .auth-main--zentic-gateway { position: relative; z-index: 1; width: min(100% - 3rem, 70rem); max-width: none; margin: 0 auto; padding: 2.25rem 0 1.5rem; }
.auth-gateway-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.auth-gateway-brand { display: inline-flex; align-items: center; gap: .7rem; color: var(--zc-text-primary, #111827); text-decoration: none; }
.auth-gateway-brand-mark { display: grid; width: 2.3rem; height: 2.3rem; place-items: center; color: #fff; background: var(--portal-wine, #6d2347); border-radius: .65rem; font-size: .65rem; font-weight: 800; letter-spacing: .04em; }
.auth-gateway-brand strong, .auth-gateway-brand small { display: block; }
.auth-gateway-brand strong { font-size: .88rem; font-weight: 800; }
.auth-gateway-brand small { margin-top: .12rem; color: var(--zc-text-secondary, #6b7280); font-size: .58rem; }
.auth-gateway-status { display: inline-flex; align-items: center; gap: .4rem; color: var(--zc-text-secondary, #6b7280); font-size: .62rem; font-weight: 700; }
.auth-gateway-status i { display: block; width: .42rem; height: .42rem; background: #10b981; border-radius: 50%; box-shadow: 0 0 0 .2rem #d1fae5; }
.auth-gateway-card { display: grid; grid-template-columns: minmax(18rem, 32%) minmax(0, 1fr); overflow: hidden; background: #fff; border: 1px solid var(--zc-border-color, #e5e7eb); border-radius: var(--zc-radius-2xl, 1.25rem); box-shadow: 0 1.25rem 3rem rgba(17,24,39,.08); }
.auth-gateway-rail { position: relative; display: flex; min-height: 36rem; flex-direction: column; padding: clamp(2rem, 5vw, 3.5rem); overflow: hidden; color: #fff; background: radial-gradient(circle at 92% 8%, rgba(240,142,170,.22), transparent 15rem), linear-gradient(155deg, #3a1026 0%, #240813 68%, #18050d 100%); }
.auth-gateway-rail::after { position: absolute; right: -5rem; bottom: -7rem; width: 16rem; height: 16rem; border: 1px solid rgba(255,255,255,.1); border-radius: 50%; content: ""; }
.auth-gateway-kicker { position: relative; z-index: 1; color: #f08eaa; font-size: .62rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.auth-gateway-rail h1 { position: relative; z-index: 1; max-width: 18rem; margin: 1rem 0 .85rem; color: #fff; font-size: clamp(1.55rem, 3vw, 2.15rem); font-weight: 800; letter-spacing: -.06em; line-height: 1.08; }
.auth-gateway-rail > p { position: relative; z-index: 1; max-width: 19rem; color: rgba(255,255,255,.66); font-size: .72rem; line-height: 1.65; }
.auth-gateway-steps { position: relative; z-index: 1; display: grid; gap: 1rem; margin: auto 0 0; padding: 2rem 0 0; list-style: none; }
.auth-gateway-steps li { display: flex; align-items: flex-start; gap: .7rem; }
.auth-gateway-steps li > span { color: #f08eaa; font-family: var(--zc-font-mono, monospace); font-size: .62rem; font-weight: 500; }
.auth-gateway-steps strong, .auth-gateway-steps small { display: block; }
.auth-gateway-steps strong { color: #fff; font-size: .68rem; }
.auth-gateway-steps small { margin-top: .18rem; color: rgba(255,255,255,.5); font-size: .6rem; }
.auth-gateway-rail-note { position: relative; z-index: 1; margin-top: 2rem !important; color: rgba(255,255,255,.42) !important; font-size: .58rem !important; }
.auth-gateway-form { display: flex; align-items: center; padding: clamp(2rem, 5vw, 4rem); background: #fff; }
.auth-page--zentic-gateway .auth-form-container { width: 100%; max-width: 34rem; margin: 0 auto; }
.auth-page--zentic-gateway .auth-card { padding: 0; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.auth-page--zentic-gateway .auth-card-heading { margin-bottom: 1.5rem; }
.auth-page--zentic-gateway .auth-form-header { margin-bottom: 1.5rem; }
.auth-page--zentic-gateway .auth-card h1, .auth-page--zentic-gateway .auth-form-title { margin: 0 0 .45rem; color: var(--zc-text-primary, #111827); font-size: 1.7rem; font-weight: 800; letter-spacing: -.06em; }
.auth-page--zentic-gateway .auth-card-heading p, .auth-page--zentic-gateway .auth-form-subtitle { margin: 0; color: var(--zc-text-secondary, #6b7280); font-size: .75rem; line-height: 1.6; }
.auth-page--zentic-gateway .auth-note { margin-top: 1.35rem; color: var(--zc-text-muted, #6b7280); font-size: .6rem; line-height: 1.5; }
.auth-gateway-footer { margin: 1rem 0 0; color: var(--zc-text-muted, #6b7280); font-size: .6rem; text-align: center; }
.oauth-consent-card { max-width: 38rem; }
.oauth-consent-intro { display: flex; align-items: flex-start; gap: .9rem; }
.oauth-app-mark { display: grid; width: 2.8rem; height: 2.8rem; flex: 0 0 2.8rem; place-items: center; color: #fff; background: linear-gradient(145deg, #8f315c, #3a1026); border-radius: .85rem; box-shadow: 0 .45rem 1rem rgba(58,16,38,.2); font-size: 1.05rem; }
.oauth-consent-intro .auth-kicker { margin-top: .15rem; }
.oauth-consent-intro h1 { margin-bottom: .45rem !important; }
.oauth-consent-intro p { max-width: 30rem; }
.oauth-consent-intro p strong { color: var(--zc-text-primary, #111827); font-weight: 700; }
.oauth-client-row { display: flex; align-items: center; gap: .7rem; margin: 1.35rem 0; padding: .8rem .9rem; background: #fbfafc; border: 1px solid #eee8ed; border-radius: .8rem; }
.oauth-client-avatar { display: grid; width: 2.15rem; height: 2.15rem; flex: 0 0 2.15rem; place-items: center; color: #fff; background: #6d2347; border-radius: .65rem; font-size: .6rem; font-weight: 800; letter-spacing: .04em; }
.oauth-client-row strong, .oauth-client-row small { display: block; }
.oauth-client-row strong { color: var(--zc-text-primary, #111827); font-size: .7rem; }
.oauth-client-row small { margin-top: .15rem; color: var(--zc-text-secondary, #6b7280); font-size: .59rem; }
.oauth-client-status { display: inline-flex; align-items: center; gap: .3rem; margin-left: auto; color: #087153; font-size: .56rem; font-weight: 700; white-space: nowrap; }
.oauth-client-status i { font-size: .68rem; }
.oauth-trust-callout { display: flex; align-items: flex-start; gap: .6rem; padding: .8rem .85rem; color: #086b56; background: #effbf7; border: 1px solid #c9eee2; border-radius: .75rem; font-size: .64rem; line-height: 1.5; }
.oauth-trust-icon { display: grid; width: 1.25rem; height: 1.25rem; flex: 0 0 1.25rem; place-items: center; background: #d8f6eb; border-radius: 50%; font-size: .65rem; }
.oauth-trust-callout strong { color: #075844; }
.oauth-permissions { margin-top: 1.55rem; }
.oauth-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: .7rem; }
.oauth-section-eyebrow { display: block; margin-bottom: .25rem; color: var(--portal-wine, #6d2347); font-size: .57rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.oauth-section-heading h2 { margin: 0; color: var(--zc-text-primary, #111827); font-size: .92rem; font-weight: 800; letter-spacing: -.035em; }
.oauth-readonly-badge { display: inline-flex; align-items: center; gap: .3rem; padding: .35rem .5rem; color: #087153; background: #eaf9f3; border: 1px solid #c9eee2; border-radius: 99rem; font-size: .56rem; font-weight: 800; white-space: nowrap; }
.oauth-readonly-badge i { font-size: .65rem; }
.oauth-permission-list { overflow: hidden; border: 1px solid var(--zc-border-color, #e5e7eb); border-radius: .8rem; }
.oauth-permission-row { display: flex; align-items: center; gap: .7rem; padding: .78rem .8rem; background: #fff; }
.oauth-permission-row + .oauth-permission-row { border-top: 1px solid var(--zc-border-light, #f0edf0); }
.oauth-permission-icon { display: grid; width: 2rem; height: 2rem; flex: 0 0 2rem; place-items: center; color: var(--portal-wine, #6d2347); background: #f7edf2; border-radius: .55rem; font-size: .78rem; }
.oauth-permission-copy { min-width: 0; flex: 1; }
.oauth-permission-copy strong, .oauth-permission-copy small { display: block; }
.oauth-permission-copy strong { color: var(--zc-text-primary, #111827); font-size: .66rem; }
.oauth-permission-copy small { margin-top: .18rem; color: var(--zc-text-secondary, #6b7280); font-size: .59rem; line-height: 1.45; }
.oauth-permission-check { color: #0b9b70; font-size: .75rem; }
.oauth-boundary-note { display: flex; align-items: flex-start; gap: .5rem; margin-top: .85rem; color: var(--zc-text-secondary, #6b7280); font-size: .59rem; line-height: 1.5; }
.oauth-boundary-note > i { flex: 0 0 auto; margin-top: .08rem; color: var(--portal-wine, #6d2347); }
.oauth-consent-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .65rem; margin-top: 1.35rem; }
.oauth-consent-actions .auth-submit { margin-top: 0; }
.auth-secondary-submit { min-height: 2.9rem; padding: .65rem 1rem; color: var(--zc-text-secondary, #6b7280); background: #fff; border: 1px solid var(--zc-border-color, #e5e7eb); border-radius: .55rem; font-size: .68rem; font-weight: 700; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.auth-secondary-submit:hover { color: var(--portal-wine, #6d2347); background: #fbf8fa; border-color: #d4a6b9; }
.auth-secondary-submit:focus-visible { color: var(--portal-wine, #6d2347); outline: 2px solid var(--portal-wine, #6d2347); outline-offset: 2px; }
.auth-secondary-submit:disabled { cursor: wait; opacity: .65; }
.oauth-consent-footnote { display: flex; align-items: center; justify-content: center; gap: .35rem; margin: 1rem 0 0; color: var(--zc-text-muted, #6b7280); font-size: .56rem; line-height: 1.5; text-align: center; }
.oauth-consent-footnote i { color: #0b9b70; }
@media (max-width: 767.98px) {
    .auth-page--zentic-gateway .auth-main--zentic-gateway { width: min(100% - 1.5rem, 34rem); padding: 1rem 0; }
    .auth-gateway-header { margin-bottom: 1rem; }
    .auth-gateway-status { display: none; }
    .auth-gateway-card { display: block; }
    .auth-gateway-rail { min-height: 0; padding: 1.5rem; }
    .auth-gateway-rail h1 { max-width: 22rem; font-size: 1.65rem; }
    .auth-gateway-steps { margin-top: 1.5rem; padding-top: 0; }
    .auth-gateway-rail-note { margin-top: 1.25rem !important; }
    .auth-gateway-form { padding: 1.5rem; }
    .oauth-consent-intro { gap: .7rem; }
    .oauth-app-mark { width: 2.4rem; height: 2.4rem; flex-basis: 2.4rem; border-radius: .7rem; font-size: .9rem; }
    .oauth-client-row { margin: 1.1rem 0; }
    .oauth-section-heading { align-items: flex-start; flex-direction: column; gap: .55rem; }
    .oauth-consent-actions { grid-template-columns: 1fr; }
    .oauth-consent-actions .auth-secondary-submit { order: 2; }
}
