:root {
    --pts-primary: #7C3AED;
    --pts-accent: #2AA7DF;
    --pt-primary: #7C3AED;
    --pt-mid: #2AA7DF;
    --pts-sidebar-bg: rgba(7, 7, 9, 0.92);
    --pts-content-bg: rgba(10, 10, 12, 0.68);
    --pts-surface-bg: rgba(255, 255, 255, 0.08);
    --pts-surface-bg-strong: rgba(255, 255, 255, 0.12);
    --pts-border: rgba(255, 255, 255, 0.12);
    --pts-border-soft: rgba(255, 255, 255, 0.08);
    --pts-text: #f8fafc;
    --pts-text-muted: rgba(226, 232, 240, 0.72);
    --pts-text-dark: #111827;
    --pts-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
    --pts-radius: 22px;
    --pts-sidebar-width: 290px;
    --pts-header-height: 84px;
    --pts-transition: all .25s ease;
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body.pts-dashboard,
body.pts-auth {
    margin: 0;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    color: var(--pts-text);
    background:
        radial-gradient(circle at top left, rgba(124, 58, 237, 0.26), transparent 28%),
        radial-gradient(circle at bottom right, rgba(42, 167, 223, 0.22), transparent 25%),
        linear-gradient(135deg, #030304 0%, #0b0b0f 54%, #15151c 100%);
}

a {
    color: inherit;
}

.pts-shell {
    min-height: 100vh;
}

.pts-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--pts-sidebar-width);
    height: 100vh;
    padding: 20px 16px;
    background: var(--pts-sidebar-bg);
    border-right: 1px solid var(--pts-border-soft);
    backdrop-filter: blur(22px);
    -webkit-backdrop-filter: blur(22px);
    display: flex;
    flex-direction: column;
    z-index: 1000;
    box-shadow: 18px 0 40px rgba(0, 0, 0, 0.18);
}

.pts-sidebar__brand {
    padding-bottom: 16px;
}

.pts-brand {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px;
    text-decoration: none;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255,255,255,0.08), rgba(255,255,255,0.03));
    border: 1px solid var(--pts-border);
}

.pts-brand__mark,
.pts-auth-brand__mark {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--pts-primary), var(--pts-accent));
    color: #fff;
    box-shadow: 0 14px 24px rgba(185, 28, 28, 0.32);
    overflow: hidden;
}

.pts-brand__mark img,
.pts-auth-brand__mark img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.pts-brand__copy,
.pts-auth-brand__copy {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.pts-brand__copy strong,
.pts-auth-brand__copy strong {
    font-size: 16px;
    line-height: 1.2;
    color: #fff;
}

.pts-brand__copy small,
.pts-auth-brand__copy small {
    color: var(--pts-text-muted);
    font-size: 12px;
}

.pts-sidebar__nav {
    flex: 1;
    overflow-y: auto;
    padding-right: 4px;
}

.pts-nav-group {
    margin-top: 18px;
}

.pts-nav-group__title {
    display: block;
    margin: 0 12px 10px;
    color: rgba(248, 250, 252, 0.5);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.pts-nav {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pts-nav li + li {
    margin-top: 6px;
}

.pts-nav a {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 50px;
    padding: 12px 14px;
    border-radius: 16px;
    text-decoration: none;
    color: rgba(248, 250, 252, 0.82);
    border: 1px solid transparent;
    transition: var(--pts-transition);
}

.pts-nav a:hover {
    transform: translateX(4px);
    background: rgba(255,255,255,0.05);
    border-color: var(--pts-border);
    color: #fff;
}

.pts-nav li.is-active a {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.22), rgba(185, 28, 28, 0.34));
    border-color: rgba(239, 68, 68, 0.32);
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.06), 0 16px 30px rgba(127, 29, 29, 0.24);
}

.pts-nav i {
    width: 20px;
    text-align: center;
    color: #fca5a5;
}

.pts-sidebar__footer {
    padding-top: 16px;
}

.pts-user-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border-radius: 18px;
    background: rgba(255,255,255,0.05);
    border: 1px solid var(--pts-border);
}

.pts-user-card__avatar img {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    border: 2px solid rgba(239, 68, 68, 0.32);
}

.pts-user-card__copy {
    min-width: 0;
}

.pts-user-card__copy strong,
.pts-user-card__copy small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pts-user-card__copy strong {
    font-size: 14px;
    color: #fff;
}

.pts-user-card__copy small {
    margin-top: 4px;
    color: var(--pts-text-muted);
    font-size: 12px;
}

.pts-main {
    margin-left: var(--pts-sidebar-width);
    min-height: 100vh;
}

.pts-header {
    position: sticky;
    top: 0;
    z-index: 200;
    min-height: var(--pts-header-height);
    padding: 18px 28px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    background: rgba(4, 4, 7, 0.6);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--pts-border-soft);
}

.pts-header__left,
.pts-header__right {
    display: flex;
    align-items: center;
    gap: 16px;
}

.pts-header__eyebrow {
    display: block;
    margin-bottom: 4px;
    color: rgba(248, 250, 252, 0.54);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.pts-header h1 {
    margin: 0;
    font-size: 28px;
    line-height: 1.05;
    letter-spacing: -0.04em;
}

.pts-toggle,
.pts-user-menu__toggle {
    border: 1px solid var(--pts-border);
    background: rgba(255,255,255,0.06);
    color: #fff;
    border-radius: 14px;
    min-height: 46px;
    padding: 0 14px;
    cursor: pointer;
    transition: var(--pts-transition);
}

.pts-toggle:hover,
.pts-user-menu__toggle:hover {
    background: rgba(255,255,255,0.1);
}

.pts-toggle {
    display: none;
    width: 46px;
}

.pts-header-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 46px;
    padding: 0 18px;
    border-radius: 14px;
    text-decoration: none;
    color: #fff;
    background: linear-gradient(135deg, var(--pts-primary), var(--pts-accent));
    box-shadow: 0 18px 28px rgba(127, 29, 29, 0.28);
}

.pts-user-menu {
    position: relative;
}

.pts-user-menu__dropdown {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    min-width: 200px;
    padding: 8px;
    border-radius: 18px;
    background: rgba(10, 10, 12, 0.95);
    border: 1px solid var(--pts-border);
    box-shadow: var(--pts-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: var(--pts-transition);
}

.pts-user-menu__dropdown.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.pts-user-menu__dropdown a {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    padding: 10px 12px;
    border-radius: 12px;
    text-decoration: none;
    color: rgba(248, 250, 252, 0.9);
}

.pts-user-menu__dropdown a:hover {
    background: rgba(255,255,255,0.06);
}

.pts-content {
    padding: 28px;
}

.pts-content__hero,
.pts-widget,
.pts-link-card,
.pts-metric,
.pts-home__hero-main,
.pts-snapshot,
.pts-profile__hero {
    border-radius: var(--pts-radius);
    border: 1px solid var(--pts-border);
    background: var(--pts-surface-bg);
    box-shadow: var(--pts-shadow);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
}

.pts-content__hero {
    margin-bottom: 20px;
    padding: 18px 22px;
}

.pts-content__hero-mark {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(239, 68, 68, 0.14);
    color: #fecaca;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pts-content__hero p {
    margin: 0;
    color: var(--pts-text-muted);
    line-height: 1.75;
}

.page-content--dashboard {
    background: transparent;
    padding: 0;
    box-shadow: none;
}

.page-content,
.page-content .am-body-content {
    color: var(--pts-text);
}

.page-content > .am-tabs-wrapper,
.page-content > ul.am-tabs {
    display: none;
}

.pts-home,
.pts-profile {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.pts-home__hero {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(300px, .85fr);
    gap: 20px;
}

.pts-home__hero-main {
    position: relative;
    overflow: hidden;
    padding: 32px;
    background:
        radial-gradient(circle at top right, rgba(255,255,255,0.12), transparent 28%),
        linear-gradient(135deg, rgba(239, 68, 68, 0.9), rgba(127, 29, 29, 0.88));
}

.pts-home__hero-main h1 {
    margin: 14px 0 12px;
    font-size: clamp(32px, 4vw, 46px);
    line-height: 1.02;
    letter-spacing: -0.045em;
}

.pts-home__hero-main p {
    margin: 0;
    max-width: 50rem;
    color: rgba(255,255,255,0.9);
    line-height: 1.8;
}

.pts-home__eyebrow {
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.16);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.pts-home__actions,
.pts-link-grid,
.pts-profile__quick {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}

.pts-home__actions {
    margin-top: 24px;
}

.pts-home__action,
.pts-link-card,
.pts-profile__cta {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 56px;
    padding: 14px 16px;
    text-decoration: none;
    transition: var(--pts-transition);
}

.pts-home__action {
    border-radius: 16px;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.14);
    color: #fff;
}

.pts-home__action:hover,
.pts-link-card:hover,
.pts-profile__cta:hover {
    transform: translateY(-2px);
}

.pts-snapshot {
    padding: 24px;
}

.pts-snapshot__label {
    display: block;
    margin-bottom: 10px;
    color: var(--pts-text-muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.pts-snapshot strong {
    display: block;
    font-size: 26px;
    letter-spacing: -0.04em;
}

.pts-snapshot small {
    display: block;
    margin-top: 6px;
    color: var(--pts-text-muted);
    line-height: 1.6;
    word-break: break-word;
}

.pts-snapshot__stats {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 18px;
}

.pts-snapshot__stats div {
    padding: 16px;
    border-radius: 18px;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--pts-border-soft);
}

.pts-snapshot__stats b,
.pts-snapshot__stats span {
    display: block;
}

.pts-snapshot__stats b {
    font-size: 24px;
    color: #fff;
}

.pts-snapshot__stats span {
    margin-top: 6px;
    font-size: 12px;
    color: var(--pts-text-muted);
}

.pts-snapshot__link {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    margin-top: 18px;
    text-decoration: none;
    color: #fff;
    font-weight: 700;
}

.pts-metrics {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.pts-metric {
    display: flex;
    gap: 14px;
    padding: 22px;
}

.pts-metric i {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(239, 68, 68, 0.12);
    color: #fca5a5;
}

.pts-metric small,
.pts-metric strong,
.pts-metric span {
    display: block;
}

.pts-metric small {
    color: rgba(255,255,255,0.62);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.pts-metric strong {
    margin-top: 8px;
    font-size: 20px;
    letter-spacing: -0.03em;
}

.pts-metric span {
    margin-top: 6px;
    color: var(--pts-text-muted);
    line-height: 1.7;
    font-size: 13px;
}

.pts-metric--primary {
    background: linear-gradient(135deg, rgba(239, 68, 68, 0.24), rgba(255, 255, 255, 0.08));
}

.pts-link-card {
    border-radius: 18px;
    color: #fff;
}

.pts-link-card i {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    color: #fecaca;
    background: rgba(239, 68, 68, 0.14);
}

.pts-link-card strong,
.pts-link-card small {
    display: block;
}

.pts-link-card strong {
    font-size: 15px;
}

.pts-link-card small {
    margin-top: 6px;
    color: var(--pts-text-muted);
    line-height: 1.65;
}

.pts-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.15fr) minmax(0, .95fr);
    gap: 18px;
}

.ng-dash-home .ng-dashboard-grid--single {
    grid-template-columns: 1fr;
}

.pts-dashboard-grid__col {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.pts-widget__head {
    padding: 22px 24px 0;
}

.pts-widget__head h2 {
    margin: 0;
    font-size: 19px;
    letter-spacing: -0.03em;
}

.pts-widget__body {
    padding: 18px 24px 24px;
}

.pts-widget .am-widget-list,
.pts-activity {
    list-style: none;
    margin: 0;
    padding: 0;
}

.pts-widget .am-widget-list > li {
    padding: 16px 0;
    border-top: 1px solid var(--pts-border-soft);
}

.pts-widget .am-widget-list > li:first-child {
    border-top: 0;
    padding-top: 0;
}

.pts-widget .am-widget-list > li:last-child {
    padding-bottom: 0;
}

.pts-widget a {
    color: #fff;
}

.pts-widget .am-list-subscriptions-date,
.pts-widget .am-list-subscriptions-desc,
.pts-widget .am-list-resources-desc,
.pts-widget .am-block-nodata,
.pts-widget .member-subscriptions-no p {
    display: block;
    margin-top: 6px;
    color: var(--pts-text-muted);
    line-height: 1.65;
}

.pts-widget .am-grid-container {
    overflow-x: auto;
}

.pts-widget .am-grid,
.pts-widget .am-member-payment-history {
    width: 100%;
    border-collapse: collapse;
}

.pts-widget .am-grid th,
.pts-widget .am-grid td,
.pts-widget .am-member-payment-history th,
.pts-widget .am-member-payment-history td {
    padding: 12px 10px;
    border-top: 1px solid var(--pts-border-soft);
    text-align: left;
    font-size: 13px;
}

.pts-widget .am-grid th,
.pts-widget .am-member-payment-history th {
    color: rgba(255,255,255,0.55);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pts-activity {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.pts-activity li {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 14px 16px;
    border-radius: 16px;
    background: rgba(255,255,255,0.04);
    border: 1px solid var(--pts-border-soft);
}

.pts-activity__icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(239, 68, 68, 0.12);
    color: #fecaca;
}

.pts-activity__copy strong,
.pts-activity__copy small {
    display: block;
}

.pts-activity__copy strong {
    color: #fff;
    font-size: 14px;
}

.pts-activity__copy small,
.pts-activity time {
    color: var(--pts-text-muted);
    font-size: 12px;
}

.pts-profile__hero {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 24px;
}

.pts-profile__avatar img {
    width: 96px;
    height: 96px;
    border-radius: 26px;
    border: 2px solid rgba(239, 68, 68, 0.3);
}

.pts-profile__copy {
    flex: 1;
}

.pts-profile__copy span {
    display: block;
    color: rgba(255,255,255,0.56);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .1em;
}

.pts-profile__copy h2 {
    margin: 8px 0 6px;
    font-size: 32px;
    line-height: 1.05;
    letter-spacing: -0.04em;
}

.pts-profile__copy p {
    margin: 0;
    color: var(--pts-text-muted);
}

.pts-profile__cta {
    border-radius: 16px;
    background: rgba(239, 68, 68, 0.12);
    border: 1px solid rgba(239, 68, 68, 0.16);
    color: #fff;
}

.pts-backend-safe {
    min-height: 100vh;
}

.pts-overlay {
    display: none;
}

.pts-auth {
    min-height: 100vh;
    padding: 28px;
}

.pts-auth-shell {
    min-height: calc(100vh - 56px);
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(360px, .9fr);
    gap: 26px;
    align-items: stretch;
}

.pts-auth-panel,
.pts-auth-form-shell {
    border-radius: 30px;
    border: 1px solid var(--pts-border);
    background: rgba(9, 9, 12, 0.68);
    box-shadow: var(--pts-shadow);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
}

.pts-auth-panel {
    padding: 38px;
}

.pts-auth-panel__inner {
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 24px;
}

.pts-auth-brand {
    display: flex;
    align-items: center;
    gap: 14px;
}

.pts-auth-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 24px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255,255,255,0.07);
    border: 1px solid var(--pts-border);
    color: #fecaca;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
}

.pts-auth-panel h1 {
    margin: 18px 0 12px;
    font-size: clamp(36px, 4vw, 56px);
    line-height: 1.03;
    letter-spacing: -0.05em;
}

.pts-auth-panel p {
    margin: 0;
    max-width: 46rem;
    color: var(--pts-text-muted);
    line-height: 1.8;
}

.pts-auth-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.pts-auth-card {
    padding: 18px;
    border-radius: 22px;
    border: 1px solid var(--pts-border);
    background: rgba(255,255,255,0.05);
}

.pts-auth-card span {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: rgba(239, 68, 68, 0.14);
    color: #fecaca;
}

.pts-auth-card strong {
    display: block;
    margin-top: 14px;
    font-size: 14px;
    line-height: 1.65;
}

.pts-auth-form-shell {
    padding: 18px;
}

.pts-auth-form-card {
    height: 100%;
    padding: 28px 26px;
    border-radius: 24px;
    background: rgba(255,255,255,0.92);
    color: var(--pts-text-dark);
}

.pts-auth-form-head {
    margin-bottom: 22px;
}

.pts-auth-form-head small {
    display: inline-block;
    margin-bottom: 12px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(239, 68, 68, 0.08);
    color: var(--pts-accent);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pts-auth-form-head h2 {
    margin: 0 0 10px;
    font-size: 30px;
    line-height: 1.08;
    letter-spacing: -0.04em;
}

.pts-auth-form-head p {
    margin: 0;
    color: #4b5563;
    line-height: 1.7;
}

.pts-auth-links {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    margin-top: 18px;
    font-size: 13px;
}

.pts-auth-links a {
    color: var(--pts-accent);
    text-decoration: none;
    font-weight: 700;
}

.pts-auth-links a:hover {
    text-decoration: underline;
}

.pts-auth-form-card .am-body-content,
.pts-auth-form-card .am-body-content-wrapper,
.pts-auth-form-card .am-form {
    width: 100%;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.pts-auth-form-card .am-form .am-row {
    margin-bottom: 18px;
}

.pts-auth-form-card .am-form label,
.pts-auth-form-card .am-form legend {
    color: #111827;
    font-weight: 700;
    font-size: 13px;
}

.pts-auth-form-card .am-form input[type="text"],
.pts-auth-form-card .am-form input[type="email"],
.pts-auth-form-card .am-form input[type="password"],
.pts-auth-form-card .am-form input[type="number"],
.pts-auth-form-card .am-form input[type="url"],
.pts-auth-form-card .am-form select,
.pts-auth-form-card .am-form textarea {
    width: 100%;
    min-height: 52px;
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid rgba(209, 213, 219, 0.9);
    background: rgba(255,255,255,0.95);
}

.pts-auth-form-card .am-form input:focus,
.pts-auth-form-card .am-form select:focus,
.pts-auth-form-card .am-form textarea:focus {
    outline: none;
    border-color: rgba(239, 68, 68, 0.35);
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.1);
}

.pts-auth-form-card .am-form input[type="submit"],
.pts-auth-form-card .am-form input[type="button"],
.pts-auth-form-card .am-form button,
.page-content .am-body-content a.button,
.page-content .am-body-content button,
.page-content .am-body-content input[type="button"],
.page-content .am-body-content input[type="submit"] {
    border: 0;
    border-radius: 16px;
    min-height: 50px;
    padding: 12px 18px;
    color: #fff;
    font-weight: 800;
    background: linear-gradient(135deg, var(--pts-primary), var(--pts-accent));
    box-shadow: 0 16px 28px rgba(127, 29, 29, 0.24);
}

.page-content .am-body-content input[type="text"],
.page-content .am-body-content input[type="email"],
.page-content .am-body-content input[type="password"],
.page-content .am-body-content input[type="number"],
.page-content .am-body-content select,
.page-content .am-body-content textarea {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,0.12);
    color: #fff;
    background: rgba(255,255,255,0.05);
}

.page-content .am-body-content input:focus,
.page-content .am-body-content select:focus,
.page-content .am-body-content textarea:focus {
    outline: none;
    border-color: rgba(239, 68, 68, 0.34);
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.12);
}

.page-content .am-body-content .am-errors,
.page-content .am-body-content .am-info,
.page-content .am-body-content .am-success,
.pts-auth-form-card .am-errors,
.pts-auth-form-card .am-info,
.pts-auth-form-card .am-success {
    border-radius: 16px;
    padding: 14px 16px;
}

.page-content .am-body-content .am-error {
    color: #fecaca;
}

@media (max-width: 1180px) {
    .pts-metrics,
    .pts-home__hero,
    .pts-dashboard-grid,
    .pts-auth-shell {
        grid-template-columns: 1fr;
    }

    .pts-auth-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 980px) {
    .pts-toggle,
    .pts-overlay {
        display: block;
    }

    .pts-sidebar {
        transform: translateX(-100%);
        transition: var(--pts-transition);
    }

    body.pts-sidebar-open .pts-sidebar {
        transform: translateX(0);
    }

    .pts-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.56);
        opacity: 0;
        visibility: hidden;
        transition: var(--pts-transition);
        z-index: 900;
    }

    body.pts-sidebar-open .pts-overlay {
        opacity: 1;
        visibility: visible;
    }

    .pts-main {
        margin-left: 0;
    }
}

@media (max-width: 720px) {
    .pts-auth,
    .pts-content {
        padding: 16px;
    }

    .pts-header {
        padding: 16px;
        align-items: flex-start;
        flex-direction: column;
    }

    .pts-header__right,
    .pts-home__actions,
    .pts-link-grid,
    .pts-profile__quick,
    .pts-snapshot__stats {
        grid-template-columns: 1fr;
    }

    .pts-home__hero-main,
    .pts-widget__head,
    .pts-widget__body,
    .pts-profile__hero,
    .pts-content__hero {
        padding-left: 18px;
        padding-right: 18px;
    }

    .pts-profile__hero {
        flex-direction: column;
        align-items: flex-start;
    }

    .pts-activity li {
        grid-template-columns: 42px minmax(0, 1fr);
    }

    .pts-activity time {
        grid-column: 2;
    }
}

.page-content .am-body-content,
.page-content .am-body-content-wrapper {
    background: transparent;
    padding: 0;
    margin: 0;
}

.page-content .am-body-content > h1:first-child,
.page-content .am-body-content > h2:first-child {
    margin: 0 0 14px;
    font-size: 32px;
    line-height: 1.05;
    letter-spacing: -0.04em;
    color: #fff;
}

.page-content .am-body-content p,
.page-content .am-body-content li,
.page-content .am-body-content td,
.page-content .am-body-content th,
.page-content .am-body-content label,
.page-content .am-body-content legend {
    color: rgba(226, 232, 240, 0.88);
}

.page-content .am-body-content a:not(.button),
.page-content .am-body-content .local-link,
.pts-inline-link {
    color: #fecaca;
    text-decoration: none;
}

.page-content .am-body-content a:not(.button):hover,
.page-content .am-body-content .local-link:hover,
.pts-inline-link:hover {
    text-decoration: underline;
}

.page-content .am-form,
.page-content .am-body-content form {
    display: block;
    padding: 24px;
    border-radius: 22px;
    border: 1px solid var(--pts-border);
    background: rgba(255,255,255,0.05);
    box-shadow: var(--pts-shadow);
}

.page-content .am-form div.am-row {
    margin-bottom: 18px;
}

.page-content .am-form div.am-element-title {
    margin-bottom: 8px;
    color: rgba(255,255,255,0.74);
    font-size: 16px;
    font-weight: 700;
    color: black;
}

.page-content .am-form fieldset {
    margin: 0 0 18px;
    padding: 18px;
    border-radius: 18px;
    border: 1px solid var(--pts-border-soft);
    background: rgba(255,255,255,0.03);
}

.page-content .am-form .am-error {
    display: block;
    margin-top: 6px;
    color: #fecaca;
    font-size: 12px;
}

.page-content .am-form input[type="checkbox"],
.page-content .am-form input[type="radio"] {
    width: auto;
    min-height: 0;
    margin-right: 8px;
    accent-color: var(--pts-primary);
}

.page-content .am-form textarea {
    min-height: 140px;
    resize: vertical;
}

.page-content .am-grid-container {
    overflow-x: auto;
}

.page-content .am-pager {
    margin-top: 18px;
}

.page-content .am-pager a,
.page-content .am-pager span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    min-height: 40px;
    padding: 0 12px;
    margin: 4px 6px 0 0;
    border-radius: 12px;
    border: 1px solid var(--pts-border);
    background: rgba(255,255,255,0.04);
    color: #fff;
    text-decoration: none;
}

.pts-filter {
    margin-bottom: 16px;
}

.pts-filter .am-input-filter-inner-wrapper {
    position: relative;
}

.pts-filter .am-input-filter {
    width: 100%;
    min-height: 48px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid var(--pts-border);
    color: #fff;
    background: rgba(255,255,255,0.05);
}

.pts-resource-grid,
.pts-subscription-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.pts-resource-card,
.pts-subscription-card,
.pts-history-card,
.pts-empty-state {
    border-radius: 22px;
    border: 1px solid var(--pts-border);
    background: rgba(255,255,255,0.05);
    box-shadow: var(--pts-shadow);
}

.pts-resource-card,
.pts-subscription-card {
    padding: 18px;
}

.pts-resource-card__head,
.pts-subscription-card__head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.pts-resource-card__badge,
.pts-subscription-card__status {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 0 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pts-resource-card__badge {
    background: rgba(239, 68, 68, 0.12);
    color: #fecaca;
}

.pts-subscription-card__status {
    background: rgba(255,255,255,0.08);
    color: #fff;
}

.pts-subscription-card__status.is-active {
    background: rgba(124, 58, 237, 0.14);
    color: #e9d5ff;
}

.pts-subscription-card__status.is-recurring {
    background: rgba(59, 130, 246, 0.16);
    color: #bfdbfe;
}

.pts-subscription-card__status.is-lifetime {
    background: rgba(168, 85, 247, 0.16);
    color: #e9d5ff;
}

.pts-subscription-card__status.is-future {
    background: rgba(245, 158, 11, 0.16);
    color: #fde68a;
}

.pts-resource-card__title,
.pts-subscription-card__title {
    margin-top: 14px;
    font-size: 16px;
    font-weight: 800;
    line-height: 1.45;
    color: #fff;
}

.pts-resource-card__title a,
.pts-subscription-card__title a {
    color: #fff;
    text-decoration: none;
}

.pts-resource-card__title a:hover,
.pts-subscription-card__title a:hover {
    color: #fecaca;
}

.pts-resource-card__desc,
.pts-subscription-card__meta,
.pts-subscription-card__desc {
    margin-top: 10px;
    color: var(--pts-text-muted);
    font-size: 12px;
    line-height: 1.7;
}

.pts-subscription-card__actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 16px;
}

.pts-action-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 14px;
    border-radius: 12px;
    border: 1px solid rgba(239, 68, 68, 0.24);
    background: rgba(239, 68, 68, 0.1);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
}

.pts-action-link:hover {
    background: rgba(239, 68, 68, 0.16);
    text-decoration: none;
}

.pts-empty-state {
    padding: 28px 24px;
    text-align: center;
}

.pts-empty-state h3 {
    margin: 0 0 12px;
    font-size: 24px;
    color: #fff;
}

.pts-empty-state p {
    margin: 0;
    color: var(--pts-text-muted);
    line-height: 1.8;
}

.pts-links-list {
    display: grid;
    gap: 10px;
}

.pts-links-list__item {
    padding: 14px 16px;
    border-radius: 16px;
    border: 1px solid var(--pts-border-soft);
    background: rgba(255,255,255,0.04);
}

.pts-history-card {
    padding: 24px;
}

.pts-history-card__head {
    margin-bottom: 18px;
}

.pts-history-card__head h1 {
    margin: 0 0 10px;
    font-size: 28px;
    line-height: 1.08;
    letter-spacing: -0.04em;
    color: #fff;
}

.pts-history-card__head p {
    margin: 0;
    color: var(--pts-text-muted);
    line-height: 1.75;
}

.pts-history-card .am-grid,
.pts-history-card .am-member-payment-history {
    width: 100%;
    border-collapse: collapse;
}

.pts-history-card .am-grid th,
.pts-history-card .am-grid td,
.pts-history-card .am-member-payment-history th,
.pts-history-card .am-member-payment-history td {
    padding: 13px 10px;
    border-top: 1px solid var(--pts-border-soft);
    text-align: left;
}

.pts-history-card .am-grid th,
.pts-history-card .am-member-payment-history th {
    color: rgba(255,255,255,0.56);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pts-history-card .am-grid td,
.pts-history-card .am-member-payment-history td {
    color: rgba(226, 232, 240, 0.88);
    font-size: 13px;
    line-height: 1.65;
}

.pts-invoice-list {
    display: grid;
    gap: 16px;
}

.pts-invoice-list__item {
    padding: 18px;
    border-radius: 18px;
    border: 1px solid var(--pts-border-soft);
    background: rgba(255,255,255,0.04);
}

.page-content .am-body-content > .am-errors,
.page-content .am-body-content > .am-info,
.page-content .am-body-content > .am-success {
    margin-bottom: 18px;
}

@media (max-width: 900px) {
    .pts-resource-grid,
    .pts-subscription-grid {
        grid-template-columns: 1fr;
    }
}

/* Screenshot-inspired refresh */
:root {
    --pts-primary: #7C3AED;
    --pts-accent: #8B5CF6;
    --pts-sidebar-bg: #0F0720;
    --pts-content-bg: #FAF8FF;
    --pts-surface-bg: #ffffff;
    --pts-surface-bg-strong: #F5F3FF;
    --pts-border: #EDE9FE;
    --pts-border-soft: #F5F3FF;
    --pts-text: #1E1133;
    --pts-text-muted: #6B5D85;
    --pts-text-dark: #1E1133;
    --pts-shadow: 0 16px 40px rgba(124, 58, 237, 0.08);
}

body.pts-dashboard,
body.pts-auth {
    background: var(--pts-content-bg);
    color: var(--pts-text);
}

.pts-sidebar {
    background: var(--pts-sidebar-bg);
    border-right: 0;
    box-shadow: 10px 0 30px rgba(15, 7, 32, 0.15);
}

.pts-brand {
    background: rgba(255,255,255,0.04);
    border-color: rgba(255,255,255,0.08);
}

.pts-brand__mark,
.pts-auth-brand__mark {
    background: linear-gradient(135deg, #7C3AED, #2AA7DF);
    box-shadow: 0 14px 24px rgba(124, 58, 237, 0.22);
}

.pts-nav-group__title {
    color: rgba(255,255,255,0.34);
}

.pts-nav a {
    color: rgba(255,255,255,0.78);
}

.pts-nav a:hover {
    background: rgba(255,255,255,0.06);
    border-color: rgba(255,255,255,0.09);
}

.pts-nav li.is-active a {
    background: linear-gradient(135deg, #18c880, #0da96c);
    border-color: transparent;
    box-shadow: 0 10px 22px rgba(27, 196, 125, 0.26);
}

.pts-nav li.is-active i,
.pts-nav li.is-active span {
    color: #fff;
}

.pts-nav i {
    color: rgba(255,255,255,0.7);
}

.pts-user-card {
    background: rgba(255,255,255,0.05);
    border-color: rgba(255,255,255,0.08);
}

.pts-user-card__avatar img {
    border-radius: 14px;
    border-color: rgba(42, 167, 223, 0.25);
}

.pts-main {
    background: transparent;
}

.pts-header {
    padding: 18px 28px 8px;
    background: transparent;
    border-bottom: 0;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    align-items: center;
}

.pts-topbar-pill {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
    padding: 0 18px;
    border-radius: 18px;
    background: #fff;
    color: var(--pts-text);
    box-shadow: var(--pts-shadow);
}

.pts-topbar-pill i {
    color: #2aa7df;
}

.pts-topbar-pill__date {
    font-size: 14px;
    font-weight: 700;
}

.pts-topbar-pill__time {
    padding: 8px 10px;
    border-radius: 999px;
    background: rgba(42, 167, 223, 0.08);
    color: #0da96c;
    font-size: 13px;
    text-transform: lowercase;
}

.pts-header-cta {
    background: linear-gradient(135deg, #2f7bff, #18c880);
    box-shadow: 0 12px 24px rgba(24, 200, 128, 0.18);
}

.pts-user-menu__toggle {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    min-height: 56px;
    padding: 0 14px 0 10px;
    border: 0;
    border-radius: 18px;
    background: #fff;
    color: var(--pts-text);
    box-shadow: var(--pts-shadow);
}

.pts-user-menu__avatar {
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: linear-gradient(135deg, #2aa7df, #18c880);
    color: #fff;
    font-size: 14px;
    font-weight: 800;
}

.pts-user-menu__identity {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}

.pts-user-menu__identity strong,
.pts-user-menu__identity small {
    display: block;
    line-height: 1.2;
}

.pts-user-menu__identity strong {
    color: var(--pts-text);
    font-size: 14px;
}

.pts-user-menu__identity small {
    color: #7c8699;
    font-size: 11px;
}

.pts-user-menu__dropdown {
    background: #fff;
    border: 1px solid var(--pts-border);
}

.pts-user-menu__dropdown a {
    color: var(--pts-text);
}

.pts-user-menu__dropdown a:hover {
    background: #f6f9fc;
}

.pts-content {
    padding-top: 6px;
}

.pts-content__hero,
.pts-widget,
.pts-link-card,
.pts-metric,
.pts-snapshot,
.pts-profile__stat-card,
.pts-profile__form-card,
.pts-history-card,
.pts-resource-card,
.pts-subscription-card,
.pts-empty-state,
.page-content .am-form,
.page-content .am-body-content form {
    background: #fff;
    border: 1px solid var(--pts-border);
    box-shadow: var(--pts-shadow);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.pts-home__hero-main,
.pts-content__hero,
.pts-profile__hero--cover {
    background: linear-gradient(135deg, #21479a 0%, #1f84c7 48%, #1ac889 100%);
    border: 0;
    box-shadow: 0 18px 40px rgba(32, 95, 183, 0.18);
    color: #fff;
}

.pts-home__hero-main p,
.pts-content__hero p,
.pts-profile__hero--cover p {
    color: rgba(255,255,255,0.92);
}

.pts-home__action {
    background: rgba(255,255,255,0.12);
    border: 1px solid rgba(255,255,255,0.18);
}

.pts-snapshot,
.pts-metric,
.pts-link-card,
.pts-widget,
.pts-history-card,
.pts-resource-card,
.pts-subscription-card,
.pts-empty-state,
.page-content .am-form,
.page-content .am-body-content form {
    color: var(--pts-text);
}

.pts-snapshot strong,
.pts-metric strong,
.pts-link-card strong,
.pts-widget__head h2,
.pts-history-card__head h1,
.pts-resource-card__title,
.pts-subscription-card__title,
.pts-profile__stat-card strong,
.page-content .am-body-content > h1:first-child,
.page-content .am-body-content > h2:first-child {
    color: var(--pts-text);
}

.pts-snapshot small,
.pts-snapshot__label,
.pts-snapshot__stats span,
.pts-metric small,
.pts-metric span,
.pts-link-card small,
.pts-content__hero-mark,
.pts-resource-card__desc,
.pts-subscription-card__meta,
.pts-subscription-card__desc,
.pts-history-card__head p,
.pts-empty-state p,
.page-content .am-body-content p,
.page-content .am-body-content li,
.page-content .am-body-content td,
.page-content .am-body-content th,
.page-content .am-body-content label,
.page-content .am-body-content legend {
    color: #6b7280;
}

.pts-snapshot__stats div,
.pts-activity li,
.pts-links-list__item,
.pts-invoice-list__item,
.page-content .am-form fieldset {
    background: #f8fbff;
    border-color: var(--pts-border-soft);
}

.pts-snapshot__link,
.pts-subscription-card__title a,
.pts-resource-card__title a,
.page-content .am-body-content a:not(.button),
.page-content .am-body-content .local-link,
.pts-inline-link {
    color: #21479a;
}

.pts-snapshot__link:hover,
.pts-subscription-card__title a:hover,
.pts-resource-card__title a:hover,
.page-content .am-body-content a:not(.button):hover,
.page-content .am-body-content .local-link:hover,
.pts-inline-link:hover {
    color: #18a96f;
}

.pts-metric i,
.pts-link-card i,
.pts-activity__icon,
.pts-resource-card__badge {
    background: rgba(42, 167, 223, 0.1);
    color: #21479a;
}

.pts-metric--primary {
    background: #fff;
}

.pts-resource-card__badge {
    color: #1f84c7;
}

.pts-subscription-card__status {
    background: rgba(42, 167, 223, 0.08);
    color: #1f84c7;
}

.pts-subscription-card__status.is-active {
    background: rgba(27, 196, 125, 0.12);
    color: #0b9a66;
}

.pts-subscription-card__status.is-recurring {
    background: rgba(42, 167, 223, 0.12);
    color: #1d72d1;
}

.pts-subscription-card__status.is-lifetime {
    background: rgba(126, 92, 255, 0.12);
    color: #6952d8;
}

.pts-subscription-card__status.is-future {
    background: rgba(245, 158, 11, 0.14);
    color: #b7791f;
}

.pts-action-link,
.page-content .am-body-content a.button,
.page-content .am-body-content button,
.page-content .am-body-content input[type="button"],
.page-content .am-body-content input[type="submit"],
.pts-auth-form-card .am-form input[type="submit"],
.pts-auth-form-card .am-form input[type="button"],
.pts-auth-form-card .am-form button {
    background: linear-gradient(135deg, #2f7bff, #18c880);
    box-shadow: 0 12px 22px rgba(42, 167, 223, 0.16);
}

.page-content .am-body-content input[type="text"],
.page-content .am-body-content input[type="email"],
.page-content .am-body-content input[type="password"],
.page-content .am-body-content input[type="number"],
.page-content .am-body-content input[type="url"],
.page-content .am-body-content select,
.page-content .am-body-content textarea,
.pts-auth-form-card .am-form input[type="text"],
.pts-auth-form-card .am-form input[type="email"],
.pts-auth-form-card .am-form input[type="password"],
.pts-auth-form-card .am-form input[type="number"],
.pts-auth-form-card .am-form input[type="url"],
.pts-auth-form-card .am-form select,
.pts-auth-form-card .am-form textarea,
.pts-filter .am-input-filter {
    color: var(--pts-text);
    background: #fff;
    border-color: #dbe3ef;
}

.page-content .am-body-content input:focus,
.page-content .am-body-content select:focus,
.page-content .am-body-content textarea:focus,
.pts-auth-form-card .am-form input:focus,
.pts-auth-form-card .am-form select:focus,
.pts-auth-form-card .am-form textarea:focus,
.pts-filter .am-input-filter:focus {
    border-color: rgba(42, 167, 223, 0.4);
    box-shadow: 0 0 0 4px rgba(42, 167, 223, 0.08);
}

.pts-history-card .am-grid th,
.pts-history-card .am-member-payment-history th {
    color: #7b8496;
}

.pts-history-card .am-grid td,
.pts-history-card .am-member-payment-history td,
.pts-activity__copy small,
.pts-activity time {
    color: #5f697d;
}

.pts-profile__hero--cover {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    padding: 28px 30px;
}

.pts-profile__hero-main h2 {
    margin: 14px 0 10px;
    font-size: clamp(30px, 4vw, 42px);
    line-height: 1.05;
    letter-spacing: -0.04em;
}

.pts-profile__hero-side {
    display: flex;
    align-items: center;
    gap: 14px;
}

.pts-profile__hero-user strong,
.pts-profile__hero-user small {
    display: block;
}

.pts-profile__hero-user strong {
    color: #fff;
    font-size: 16px;
}

.pts-profile__hero-user small {
    margin-top: 4px;
    color: rgba(255,255,255,0.86);
}

.pts-profile__stats {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.pts-profile__stat-card {
    display: block;
    padding: 20px 22px;
    border-radius: 22px;
    text-decoration: none;
}

.pts-profile__stat-card small,
.pts-profile__stat-card strong,
.pts-profile__stat-card span {
    display: block;
}

.pts-profile__stat-card small {
    color: #7b8496;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pts-profile__stat-card strong {
    margin-top: 10px;
    font-size: 20px;
    line-height: 1.35;
}

.pts-profile__stat-card span {
    margin-top: 8px;
    color: #6b7280;
    font-size: 13px;
    line-height: 1.7;
}

.pts-profile__stat-card--action:hover {
    transform: translateY(-2px);
}

.pts-profile__form-card {
    overflow: hidden;
}

.pts-auth {
    background: #f3f6fb;
}

.pts-auth-shell {
    max-width: 1180px;
    margin: 0 auto;
    min-height: calc(100vh - 64px);
    grid-template-columns: minmax(340px, .92fr) minmax(0, 1.08fr);
}

.pts-auth-panel {
    background: linear-gradient(180deg, #1b2240 0%, #161b31 100%);
    border: 0;
    box-shadow: 0 18px 40px rgba(15, 23, 42, 0.12);
}

.pts-auth-panel p,
.pts-auth-card strong,
.pts-auth-brand__copy small {
    color: rgba(255,255,255,0.82);
}

.pts-auth-chip {
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.12);
    color: #dff8ff;
}

.pts-auth-card {
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.1);
}

.pts-auth-card span {
    background: rgba(255,255,255,0.12);
    color: #fff;
}

.pts-auth-form-shell {
    background: transparent;
    border: 0;
    box-shadow: none;
    padding: 0;
}

.pts-auth-form-card {
    background: #fff;
    border-radius: 30px;
    box-shadow: var(--pts-shadow);
}

.pts-auth-form-head small {
    background: rgba(42, 167, 223, 0.08);
    color: #21479a;
}

.pts-auth-form-head p {
    color: #6b7280;
}

@media (max-width: 980px) {
    .pts-header {
        padding: 16px;
        align-items: flex-start;
    }

    .pts-header__right {
        width: 100%;
        justify-content: space-between;
    }

    .pts-profile__stats {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .pts-topbar-pill {
        width: 100%;
        justify-content: space-between;
        flex-wrap: wrap;
        height: auto;
        padding-top: 12px;
        padding-bottom: 12px;
    }

    .pts-user-menu__toggle {
        width: 100%;
        justify-content: space-between;
    }

    .pts-profile__hero--cover {
        grid-template-columns: 1fr;
    }
}

/* ========== Noman Graphics / ng-dashboard (member shell) ========== */
body.pts-dashboard.ng-dashboard {
    margin: 0;
    font-family: 'Poppins', 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--pts-text, #1E1133);
    background: var(--pts-content-bg, #FAF8FF) !important;
    overflow-x: hidden;
}

body.pts-dashboard.ng-dashboard .am-body-content,
body.pts-dashboard.ng-dashboard .am-body-content-content {
    background: transparent;
}

.ng-dashboard-wrapper {
    display: flex;
    min-height: 100vh;
    position: relative;
    overflow-x: hidden;
}

.ng-sidebar-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 900;
}

.ng-sidebar-overlay.visible {
    display: block;
}

.ng-mobile-menu-btn {
    display: none;
    position: fixed;
    top: 12px;
    left: 12px;
    z-index: 850;
    width: 44px;
    height: 44px;
    border: none;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--pts-primary, #7C3AED), #5B21B6);
    color: #fff;
    font-size: 20px;
    cursor: pointer;
    box-shadow: 0 4px 14px rgba(124, 58, 237, 0.35);
    align-items: center;
    justify-content: center;
}

.ptdash-sidebar {
    position: fixed;
    left: 10px;
    top: 10px;
    width: 260px;
    height: calc(100vh - 20px);
    padding: 20px 0 14px;
    border-radius: 28px;
    background: #0F0720;
    border: 1px solid rgba(139, 92, 246, 0.15);
    box-shadow: 0 0 0 1px rgba(139,92,246,.06) inset, 0 8px 40px rgba(15,7,32,.55), 0 0 80px -20px rgba(124,58,237,.25);
    z-index: 800;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    scrollbar-width: none;
    -ms-overflow-style: none;
    transition: width 0.38s cubic-bezier(0.4, 0, 0.2, 1), padding 0.38s cubic-bezier(0.4, 0, 0.2, 1), left 0.28s ease;
}

.ptdash-sidebar::-webkit-scrollbar {
    display: none;
}

.ptdash-sidebar::before {
    content: '';
    position: absolute;
    top: -60px;
    left: -60px;
    width: 200px;
    height: 200px;
    background: radial-gradient(circle, rgba(124,58,237,.2) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
}

.ptdash-mobile-close {
    display: none;
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
    width: 36px;
    height: 36px;
    border: none;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.ptdash-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 16px 16px;
    margin: 0 10px 10px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    text-decoration: none;
    color: #fff;
    position: relative;
    z-index: 1;
    flex-shrink: 0;
}

.ptdash-brand.pts-custom-logo-link {
    gap: 16px;
}

.ptdash-brand .ptdash-brand-tag {
    display: block;
    margin-top: 6px;
    max-width: 100%;
}

.ptdash-brand-logo {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: linear-gradient(135deg, var(--pts-primary, #7C3AED), #5B21B6);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    overflow: hidden;
}

.ptdash-brand-logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ptdash-brand-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ptdash-brand-name {
    font-weight: 700;
    font-size: 15px;
    letter-spacing: -0.02em;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ptdash-brand-tag {
    font-size: 11px;
    color: #9CA3AF;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ptdash-nav-wrap {
    flex: 1;
    min-height: 0;
    padding: 0 10px;
    position: relative;
    z-index: 1;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 10px;
}

.ptdash-nav-wrap::-webkit-scrollbar {
    display: none;
}

.ptdash-nav {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ptdash-nav-cat {
    list-style: none;
    font-size: 10px;
    color: #7C6B9E;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    font-weight: 700;
    padding: 16px 12px 6px;
    margin: 0;
}

.ptdash-nav-cat:first-child {
    padding-top: 4px;
}

.ptdash-nav-item {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ptdash-nav-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    margin: 3px 0;
    border-radius: 18px;
    color: #B8A9D4;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    transition: color 0.2s, background 0.2s, transform 0.2s, box-shadow 0.2s;
    position: relative;
    overflow: hidden;
}

.ptdash-nav-link .ptdash-nav-icon {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    opacity: 0.85;
}

.ptdash-nav-link .ptdash-nav-icon i {
    font-size: 15px;
    line-height: 1;
}

.ptdash-nav-text {
    flex: 1;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ptdash-badge {
    margin-left: auto;
    flex-shrink: 0;
    font-size: 10px;
    font-weight: 700;
    padding: 2px 8px;
    border-radius: 6px;
    background: rgba(124, 58, 237, 0.2);
    color: #A78BFA;
}

.ptdash-badge-success {
    background: rgba(42, 167, 223, 0.15);
    color: #2AA7DF;
}

.ptdash-nav-link:hover {
    background: #251548;
    color: #fff;
    transform: translateX(4px);
}

.ptdash-nav-link.active {
    background: linear-gradient(135deg, var(--pt-primary, #7C3AED), var(--pt-mid, #2AA7DF));
    color: #fff;
    box-shadow: 0 4px 20px rgba(124, 58, 237, 0.35);
}

.ptdash-nav-link.active::before {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), transparent);
    pointer-events: none;
}

.ptdash-nav-link.active .ptdash-nav-icon {
    opacity: 1;
}

.ptdash-nav-link--logout {
    margin-top: 8px;
    color: #f87171;
}

.ptdash-nav-link--logout:hover {
    background: rgba(248, 113, 113, 0.12);
    color: #fca5a5;
}

.ptdash-sidebar-ad {
    margin: 10px 12px 0;
    border-radius: 14px;
    overflow: hidden;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.ptdash-sidebar-ad a {
    display: block;
}

.ptdash-sb-footer {
    margin: 12px 14px 0;
    padding: 12px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.08);
    position: relative;
    z-index: 1;
    flex-shrink: 0;
}

.ptdash-sb-user {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: inherit;
    outline: none;
}

.ptdash-sb-user:hover .ptdash-sb-user-name {
    color: #fff;
}

.ptdash-sb-user:focus-visible {
    border-radius: 12px;
    box-shadow: 0 0 0 2px rgba(124, 58, 237, 0.5);
}

.ptdash-sb-user-info {
    min-width: 0;
    flex: 1;
}

.ptdash-sb-avatar {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    background: linear-gradient(135deg, #667eea, #764ba2);
    color: #fff;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid var(--pts-primary, #7C3AED);
    font-size: 14px;
}

.ptdash-sb-avatar--img {
    padding: 0;
    overflow: hidden;
}

.ptdash-sb-avatar--img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ptdash-sb-user-name {
    display: block;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ptdash-sb-user-email {
    display: block;
    color: #9ca3af;
    font-size: 11px;
    margin-top: 2px;
    word-break: break-all;
}

.ptdash-toggle {
    width: 36px;
    height: 36px;
    margin: 10px auto 0;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.08);
    color: rgba(255, 255, 255, 0.9);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease, transform 0.15s ease;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.ptdash-toggle:hover {
    background: rgba(255, 255, 255, 0.14);
    transform: translateY(-1px);
}

body.ng-sidebar-collapsed .ptdash-sidebar {
    width: 78px;
    padding: 18px 0 12px;
}

body.ng-sidebar-collapsed .ng-main-content {
    margin-left: 98px;
    max-width: calc(100vw - 98px);
    width: auto;
}

body.ng-sidebar-collapsed .ptdash-brand-info,
body.ng-sidebar-collapsed .ptdash-brand-tag,
body.ng-sidebar-collapsed .ptdash-nav-cat,
body.ng-sidebar-collapsed .ptdash-nav-text,
body.ng-sidebar-collapsed .ptdash-sb-user-info {
    display: none !important;
}

body.ng-sidebar-collapsed .ptdash-brand {
    justify-content: center;
    padding-left: 8px;
    padding-right: 8px;
    margin-left: 6px;
    margin-right: 6px;
}

body.ng-sidebar-collapsed .pts-custom-logo-text-group,
body.ng-sidebar-collapsed .pts-custom-logo-text-row,
body.ng-sidebar-collapsed .pts-custom-logo-text-fast,
body.ng-sidebar-collapsed .pts-custom-logo-text-clicks {
    display: none !important;
}

body.ng-sidebar-collapsed .ptdash-nav-link {
    justify-content: center;
    padding: 12px 8px;
    gap: 0;
}

body.ng-sidebar-collapsed .ptdash-nav-link .ptdash-nav-icon {
    margin: 0;
}

body.ng-sidebar-collapsed .ptdash-nav-link .ptdash-nav-icon i {
    font-size: 17px;
}

body.ng-sidebar-collapsed .ptdash-sb-footer {
    display: flex;
    justify-content: center;
    padding-left: 6px;
    padding-right: 6px;
}

body.ng-sidebar-collapsed .ptdash-sb-user {
    justify-content: center;
}

body.ng-sidebar-collapsed .ptdash-toggle svg {
    transform: rotate(180deg);
}

body.ng-sidebar-collapsed .ptdash-toggle i {
    transform: rotate(180deg);
}

body.ng-sidebar-collapsed .ptdash-sidebar-ad {
    display: none !important;
}

@media (max-width: 1200px) {
    .ptdash-toggle {
        display: none;
    }
}

.ng-main-content {
    flex: 1;
    margin-left: 290px;
    padding: 20px 24px 32px;
    max-width: calc(100vw - 290px);
    min-width: 0;
    transition: margin-left 0.38s cubic-bezier(0.4, 0, 0.2, 1), max-width 0.38s cubic-bezier(0.4, 0, 0.2, 1), padding 0.38s cubic-bezier(0.4, 0, 0.2, 1);
}

.ng-top-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 22px;
}

.ng-date-time-display {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 10px 20px;
    background: linear-gradient(135deg, var(--pt-primary, #7C3AED), var(--pt-mid, #2AA7DF));
    border-radius: 999px;
    border: none;
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.2);
}

.ng-date-time-icon {
    color: #fff;
}

.ng-date-text {
    font-weight: 600;
    font-size: 14px;
    color: #fff;
}

.ng-time-text {
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.2);
    font-weight: 700;
    font-size: 13px;
    color: #fff;
    backdrop-filter: blur(4px);
}

.ng-hero-user {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.ng-hero-user__avatar {
    width: 40px;
    height: 40px;
    border-radius: 999px;
    background: linear-gradient(135deg, #7c3aed, #2aa7df);
    color: #fff;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    border: 2px solid rgba(255, 255, 255, .6);
}

.ng-hero-user__avatar--img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ng-hero-user__name {
    font-weight: 700;
    color: #1f2937;
}

.ng-expiry-strip {
    margin: 10px 0 16px;
    padding: 12px 14px;
    border-radius: 14px;
    border: 1px solid #fbbf24;
    background: linear-gradient(135deg, #fff8e6 0%, #fff1cf 100%);
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.ng-expiry-strip__head {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #92400e;
}

.ng-expiry-strip__list {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    flex: 1;
    min-width: 220px;
}

.ng-expiry-pill {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 999px;
    padding: 6px 10px;
    border: 1px solid #fcd34d;
    background: #fff;
}

.ng-expiry-pill--urgent {
    border-color: #f87171;
    background: #fff1f2;
}

.ng-expiry-pill__title {
    font-size: 12px;
    font-weight: 700;
    color: #78350f;
}

.ng-expiry-pill__meta {
    font-size: 11px;
    color: #92400e;
}

.ng-expiry-strip__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 12px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 700;
    background: #7c3aed;
    color: #fff;
}

.ng-top-bar-right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

/* Topbar actions (WhatsApp + notifications) */
.ng-topbar-btn {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 9px 14px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #EDE9FE;
    color: #1E1133;
    text-decoration: none;
    font-weight: 800;
    font-size: 13px;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
    box-shadow: 0 2px 10px rgba(124, 58, 237, 0.04);
}

.ng-topbar-btn:hover {
    background: #F5F3FF;
    border-color: var(--pts-primary, #7C3AED);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.1);
}

.ng-notif-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.ng-notif-btn {
    position: relative;
    width: 44px;
    height: 44px;
    border-radius: 14px;
    border: 1px solid #EDE9FE;
    background: #fff;
    color: #6B5D85;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s ease, border-color 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease;
    box-shadow: 0 2px 10px rgba(124, 58, 237, 0.04);
}

.ng-notif-btn:hover {
    background: #F5F3FF;
    border-color: var(--pts-primary, #7C3AED);
    color: var(--pts-primary, #7C3AED);
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.1);
}

.ng-notif-count {
    position: absolute;
    top: 6px;
    right: 6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: linear-gradient(135deg, #ef4444, #f87171);
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
}

.ng-notif-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 340px;
    max-width: min(360px, 96vw);
    background: #fff;
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.16);
    overflow: hidden;
    z-index: 1300;
}

.ng-notif-dropdown.show {
    display: block;
}

.ng-notif-header {
    padding: 16px 18px;
    border-bottom: 1px solid #f1f5f9;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ng-notif-header h4 {
    margin: 0;
    font-size: 15px;
    font-weight: 900;
    color: #0f172a;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ng-notif-list {
    max-height: 320px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.ng-notif-list::-webkit-scrollbar {
    display: none;
}

.ng-notif-empty {
    padding: 40px 18px;
    text-align: center;
    color: #6b7280;
    font-weight: 700;
    font-size: 13px;
}

.ng-notif-item {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 18px;
    border-bottom: 1px solid #f1f5f9;
    text-decoration: none;
    color: inherit;
}

.ng-notif-item:last-child {
    border-bottom: none;
}

.ng-notif-item:hover {
    background: #f8fafc;
}

.ng-notif-icon {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    background: rgba(124, 58, 237, 0.08);
    border: 1px solid rgba(124, 58, 237, 0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    flex-shrink: 0;
}

.ng-notif-content {
    flex: 1;
    min-width: 0;
}

.ng-notif-title {
    font-size: 13px;
    font-weight: 900;
    color: #0f172a;
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ng-notif-desc {
    font-size: 12px;
    color: #6b7280;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.4;
}

.ng-notif-time {
    font-size: 11px;
    color: #9ca3af;
    margin-top: 4px;
}

/* Dashboard notice block */
.ng-notice-board {
    margin-top: 0;
    background: #fff;
    border: 1px solid #e2e8f0;
    border-radius: 22px;
    padding: 18px 18px;
    box-shadow: 0 8px 30px rgba(2, 6, 23, 0.08);
}

.ng-notice-board__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.ng-notice-board__title {
    margin: 0;
    font-size: 18px;
    font-weight: 900;
    color: #0f172a;
    display: flex;
    align-items: center;
    gap: 12px;
}

.ng-notice-board__title i,
.ng-notice-board__title span {
    color: var(--pts-primary, #7C3AED);
}

.ng-notice-board__list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.ng-notice-board__list .ng-notif-item {
    background: transparent;
    border-bottom: 1px solid #f1f5f9;
}

.ng-notice-board__list .ng-notif-item:hover {
    background: #f8fafc;
}

.ng-notice-board__list .ng-notif-icon {
    background: rgba(124, 58, 237, 0.12);
    border-color: rgba(124, 58, 237, 0.22);
}

.ng-notice-board__list .ng-notif-title {
    color: #0f172a;
}

.ng-notice-board__list .ng-notif-desc {
    color: #64748b;
}

.ng-notice-board__list .ng-notif-time {
    color: #94a3b8;
}

/* Subscriptions + notice side-by-side */
.ng-overview-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
    gap: 18px;
    align-items: start;
    margin-bottom: 18px;
}

@media (max-width: 1100px) {
    .ng-overview-grid {
        grid-template-columns: 1fr;
    }
}

.ng-user-menu {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 12px 6px 8px;
    background: #fff;
    border: 1px solid #EDE9FE;
    border-radius: 999px;
    cursor: pointer;
    box-shadow: 0 2px 10px rgba(124, 58, 237, 0.04);
}

.ng-user-avatar-sm {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--pts-primary, #7C3AED), var(--pts-accent, #8B5CF6));
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.ng-user-menu-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ng-user-menu-name {
    font-weight: 600;
    font-size: 14px;
    color: #0f172a;
    line-height: 1.2;
}

.ng-user-menu-id {
    font-size: 11px;
    color: #64748b;
}

.ng-user-menu-caret {
    font-size: 11px;
    color: #94a3b8;
    margin-left: 4px;
}

.ng-user-dropdown {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    min-width: 300px;
    max-width: min(360px, 96vw);
    background: #fff;
    border-radius: 18px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 14px 40px rgba(0, 0, 0, 0.12);
    overflow: hidden;
    z-index: 1200;
}

.ng-user-dropdown.show {
    display: block;
}

.ng-dropdown-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    color: #1e293b;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
}

.ng-dropdown-item:hover {
    background: #f8fafc;
}

.ng-dropdown-item i {
    width: 1.1em;
    color: #64748b;
}

.ng-dropdown-item--danger {
    color: #dc2626;
}

.ng-dropdown-item--danger i {
    color: #dc2626;
}

.ng-dropdown-divider {
    height: 1px;
    background: #e2e8f0;
    margin: 4px 0;
}

.ng-dropdown-plans {
    padding: 10px 12px 12px;
    background: #f8fafc;
    border-top: 1px solid #e2e8f0;
    border-bottom: 1px solid #e2e8f0;
}

.ng-dropdown-plans__label {
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #64748b;
    margin: 0 0 8px 4px;
}

.ng-dropdown-plan-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 10px;
    margin-bottom: 8px;
    background: #fff;
    border: 1px solid #e8ecf1;
    border-radius: 12px;
    box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
}

.ng-dropdown-plan-row:last-child {
    margin-bottom: 0;
}

.ng-dropdown-plan-row__icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: linear-gradient(135deg, #3b82f6, #2563eb);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    flex-shrink: 0;
}

.ng-dropdown-plan-row__text {
    flex: 1;
    min-width: 0;
}

.ng-dropdown-plan-row__text strong {
    display: block;
    font-size: 13px;
    font-weight: 800;
    color: #0f172a;
    line-height: 1.25;
    margin-bottom: 2px;
}

.ng-dropdown-plan-row__text small {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 11px;
    color: #64748b;
}

.ng-dropdown-plan-row__pill {
    padding: 5px 10px;
    font-size: 9px;
    flex-shrink: 0;
}

.ng-page-inner {
    min-width: 0;
}

.ng-subpage-hero {
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.12), rgba(59, 130, 246, 0.1));
    border: 1px solid rgba(124, 58, 237, 0.2);
    border-radius: 24px;
    padding: 20px 22px;
    margin-bottom: 22px;
}

.ng-subpage-hero-mark {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--pts-primary, #7C3AED);
    margin-bottom: 8px;
}

.ng-subpage-hero p {
    margin: 0;
    color: #475569;
    font-size: 15px;
    line-height: 1.55;
}

/* Dashboard home */
.ng-dash-home {
    margin-bottom: 24px;
}

.ng-hero-banner {
    border-radius: 28px;
    padding: 28px 26px;
    margin-bottom: 24px;
    color: #fff;
    background: linear-gradient(135deg, #1A0836 0%, #2E1065 40%, #5B21B6 75%, #7C3AED 100%);
    box-shadow: 0 8px 28px rgba(124, 58, 237, 0.22);
    position: relative;
    overflow: hidden;
}

.ng-hero-banner::before {
    content: '';
    position: absolute;
    top: -40%;
    right: -30%;
    width: 70%;
    height: 140%;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.12) 0%, transparent 65%);
    pointer-events: none;
}

.ng-hero-inner {
    position: relative;
    z-index: 1;
}

.ng-hero-greeting {
    margin: 0 0 10px;
    font-size: clamp(22px, 4vw, 30px);
    font-weight: 800;
    line-height: 1.15;
}

.ng-hero-quote {
    margin: 0 0 20px;
    font-size: 14px;
    opacity: 0.95;
    font-style: italic;
    line-height: 1.5;
}

.ng-quick-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.ng-quick-card {
    flex: 1;
    min-width: 140px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-radius: 18px;
    text-decoration: none;
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.22);
    transition: transform 0.2s, background 0.2s;
}

.ng-quick-card:hover {
    background: rgba(255, 255, 255, 0.22);
    transform: translateY(-2px);
}

.ng-quick-card__icon {
    font-size: 22px;
    line-height: 1;
}

.ng-quick-card__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ng-quick-card__text strong {
    font-size: 14px;
    font-weight: 700;
}

.ng-quick-card__text small {
    font-size: 11px;
    opacity: 0.92;
}

.ng-subscriptions-box {
    background: #fff;
    border-radius: 24px;
    padding: 18px 20px 20px;
    margin-bottom: 24px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.05);
}

.ng-subscriptions-box__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.ng-subscriptions-box__title {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: #1f2937;
}

.ng-subscriptions-empty {
    text-align: center;
    padding: 20px 12px;
    color: #64748b;
    font-size: 14px;
}

.ng-subscriptions-cta {
    display: inline-block;
    margin-top: 12px;
    padding: 10px 20px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--pts-primary, #7C3AED), #5B21B6);
    color: #fff !important;
    text-decoration: none;
    font-weight: 600;
    font-size: 13px;
}

.ng-subscriptions-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ng-subscription-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border-radius: 18px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid #e5e7eb;
}

.ng-subscription-row__main {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.ng-subscription-row__icon {
    font-size: 20px;
    flex-shrink: 0;
}

.ng-subscription-row__name {
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: #1f2937;
}

.ng-subscription-row__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 4px;
    font-size: 11px;
    color: #6b7280;
}

.ng-sub-status {
    flex-shrink: 0;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    background: var(--pts-primary, #7C3AED);
    color: #fff;
}

.ng-sub-status--expired {
    background: #ef4444;
}

.ng-dashboard-grid {
    align-items: start;
}

body.pts-dashboard.ng-dashboard .ng-widget {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.04);
}

body.pts-dashboard.ng-dashboard .ng-widget .pts-widget__head {
    border-bottom: 1px solid #f1f5f9;
}

body.pts-dashboard.ng-dashboard .ng-widget .pts-widget__head h2 {
    color: #1f2937;
}

/* Tools grid (resources) */
.ng-tools-section {
    margin-top: 8px;
}

.ng-tools-category {
    margin-bottom: 28px;
}

.ng-tools-category:last-child {
    margin-bottom: 0;
}

.ng-tools-category__title {
    font-size: 16px;
    font-weight: 700;
    color: #1f2937;
    margin: 0 0 14px;
    padding-bottom: 6px;
    border-bottom: 1px solid #e5e7eb;
    letter-spacing: -0.02em;
}

.ng-section-title {
    font-size: 18px;
    font-weight: 700;
    color: #1f2937;
    margin: 0 0 14px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--pts-primary, #7C3AED);
    display: inline-block;
}

.ng-tools-filter {
    margin-bottom: 14px;
}

body.pts-dashboard.ng-dashboard .ng-tools-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 16px;
}

body.pts-dashboard.ng-dashboard .ng-tool-card {
    background: #fff;
    border-radius: 22px;
    overflow: hidden;
    border: 1px solid #e5e7eb;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
    display: flex;
    flex-direction: column;
}

body.pts-dashboard.ng-dashboard .ng-tool-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 24px rgba(124, 58, 237, 0.08);
    border-color: var(--pts-primary, #7C3AED);
}

body.pts-dashboard.ng-dashboard .ng-tool-card .pts-resource-card__head {
    background: #f8fafc;
    border-bottom: 1px solid #e5e7eb;
}

body.pts-dashboard.ng-dashboard .ng-tool-card .pts-resource-card__badge {
    background: rgba(124, 58, 237, 0.12);
    color: #7C3AED;
}

body.pts-dashboard.ng-dashboard .ng-tool-card .pts-resource-card__title {
    padding: 14px 16px 0;
}

body.pts-dashboard.ng-dashboard .ng-tool-card .pts-resource-card__title a {
    color: #0f172a;
    font-weight: 700;
    text-decoration: none;
}

body.pts-dashboard.ng-dashboard .ng-tool-card .pts-resource-card__title a:hover {
    color: var(--pts-primary, #7C3AED);
}

body.pts-dashboard.ng-dashboard .ng-tool-card .pts-resource-card__desc {
    padding: 8px 16px 16px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.5;
}

/* Payment history */
.ng-payment-page {
    max-width: 100%;
}

body.pts-dashboard.ng-dashboard .ng-history-card {
    background: #fff;
    border-radius: 24px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.05);
    padding: 4px 0 8px;
    overflow: hidden;
}

body.pts-dashboard.ng-dashboard .ng-history-card .pts-history-card__head {
    padding: 20px 22px 8px;
}

body.pts-dashboard.ng-dashboard .ng-history-card .pts-history-card__head h1 {
    font-size: 22px;
    color: #1f2937;
}

body.pts-dashboard.ng-dashboard .ng-history-card .am-grid-container {
    overflow-x: auto;
    padding: 0 12px 16px;
}

body.pts-dashboard.ng-dashboard .ng-history-card table.am-grid {
    min-width: 520px;
}

/* Profile */
.ng-profile-page .pts-profile__hero--cover {
    background: linear-gradient(135deg, #0F0720 0%, #1A0836 100%);
    border-radius: 26px;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.ng-profile-page .pts-profile__stat-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 20px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.ng-profile-page .pts-link-card {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
}

body.pts-dashboard.ng-dashboard .ng-profile-page .pts-widget {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
}

/* Top bar: date + active plan */
.ng-top-bar-left {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    min-width: 0;
}

.ng-active-plan-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    background: #fff;
    border: 1px solid #d1fae5;
    border-radius: 999px;
    box-shadow: 0 2px 8px rgba(124, 58, 237, 0.12);
    font-size: 12px;
    max-width: min(420px, 100%);
}

.ng-active-plan-chip i {
    color: var(--pts-primary, #7C3AED);
}

.ng-active-plan-chip__label {
    font-weight: 700;
    color: #065f46;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 10px;
}

.ng-active-plan-chip__value {
    font-weight: 600;
    color: #1f2937;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ng-user-avatar-sm--img,
.ptdash-sb-avatar--img {
    padding: 0;
    overflow: hidden;
    background: #e5e7eb;
}

.ng-user-avatar-sm--img img,
.ptdash-sb-avatar--img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Fast Clicks tool cards — 4 per row on desktop */
body.pts-dashboard.ng-dashboard .ng-tools-grid--fastclicks {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
}

@media (max-width: 1200px) {
    body.pts-dashboard.ng-dashboard .ng-tools-grid--fastclicks {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    body.pts-dashboard.ng-dashboard .ng-tools-grid--fastclicks {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    body.pts-dashboard.ng-dashboard .ng-tools-grid--fastclicks {
        grid-template-columns: 1fr;
    }
}

.ng-fastclicks-tool {
    background: #fff;
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.07);
    display: flex;
    flex-direction: column;
    transition: transform 0.2s, box-shadow 0.2s;
    min-height: 260px;
}

.ng-fastclicks-tool:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(124, 58, 237, 0.1);
    border-color: var(--pts-primary, #7C3AED);
}

.ng-fastclicks-tool__media {
    position: relative;
    flex: 1;
    min-height: 120px;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    border-bottom: 1px solid #e5e7eb;
}

.ng-fastclicks-tool__pin {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 3;
    width: 28px;
    height: 28px;
    border: 1px solid #ddd6fe;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.95);
    color: #7c3aed;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform .15s ease, background .15s ease, color .15s ease;
}

.ng-fastclicks-tool__pin:hover {
    transform: translateY(-1px);
    background: #7c3aed;
    color: #fff;
}

.ng-fastclicks-tool__pin.is-active {
    background: #7c3aed;
    color: #fff;
    border-color: #7c3aed;
}

.ng-fastclicks-tool.is-pinned {
    box-shadow: 0 10px 26px rgba(124, 58, 237, .16);
    border-color: rgba(124, 58, 237, .3);
}

.ng-favorites {
    margin: 0 0 16px;
    padding: 14px;
    border-radius: 16px;
    background: linear-gradient(180deg, #f8f5ff 0%, #f4f8ff 100%);
    border: 1px solid #e9d5ff;
}

.ng-favorites__head {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 10px;
}

.ng-favorites__head h3 {
    margin: 0;
    font-size: 16px;
    color: #4c1d95;
}

.ng-favorites__head small {
    color: #6b7280;
}

.ng-fastclicks-tool__tag {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 2;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 10px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.ng-fastclicks-tool__tag--ai { background: linear-gradient(135deg, #7c3aed, #5b21b6); }
.ng-fastclicks-tool__tag--graphic { background: linear-gradient(135deg, #db2777, #9d174d); }
.ng-fastclicks-tool__tag--video { background: linear-gradient(135deg, #ea580c, #9a3412); }
.ng-fastclicks-tool__tag--seo { background: linear-gradient(135deg, #5B21B6, #4C1D95); }
.ng-fastclicks-tool__tag--learning { background: linear-gradient(135deg, #2563eb, #1d4ed8); }
.ng-fastclicks-tool__tag--stock { background: linear-gradient(135deg, #0d9488, #0f766e); }
.ng-fastclicks-tool__tag--entertainment { background: linear-gradient(135deg, #dc2626, #991b1b); }
.ng-fastclicks-tool__tag--other { background: linear-gradient(135deg, #64748b, #475569); }
.ng-fastclicks-tool__tag--bonus {
    background: linear-gradient(135deg, #fbbf24, #f59e0b);
    color: #1c1917;
    animation: ng-bonus-pulse 2.2s ease-in-out infinite;
}

@keyframes ng-bonus-pulse {
    0%, 100% { box-shadow: 0 4px 14px rgba(251, 191, 36, 0.45); }
    50% { box-shadow: 0 6px 22px rgba(245, 158, 11, 0.65); }
}

/* Letter fallback: soft tile */
.ng-fastclicks-tool__logo {
    width: 76px;
    height: 76px;
    border-radius: 16px;
    background: linear-gradient(135deg, #fff, #f1f5f9);
    border: 1px solid #e2e8f0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 800;
    color: var(--pts-primary, #7C3AED);
}

/* PNG/logo: natural size without tile box */
.ng-fastclicks-tool__logo--img {
    width: auto;
    height: auto;
    padding: 0;
    overflow: visible;
    background: transparent;
    border: none;
    border-radius: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: none;
}

.ng-fastclicks-tool__logo--img img {
    width: auto;
    height: auto;
    max-width: 168px;
    max-height: 168px;
    object-fit: contain;
    display: block;
}

.ng-fastclicks-tool__body {
    background: #1e293b;
    padding: 14px 14px 16px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    flex-shrink: 0;
}

.ng-fastclicks-tool__name {
    margin: 0;
    font-size: 15px;
    font-weight: 700;
    color: #fff;
    line-height: 1.3;
}

.ng-fastclicks-tool__name a {
    color: inherit;
    text-decoration: none;
}

.ng-fastclicks-tool__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 10px 14px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--pt-primary, #7C3AED), var(--pt-mid, #2AA7DF));
    color: #fff !important;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    border: none;
    cursor: pointer;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.2);
}

.ng-fastclicks-tool__btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(124, 58, 237, 0.3);
}

.ng-fastclicks-tool__btn i {
    font-size: 11px;
    opacity: 0.95;
}

.ng-fastclicks-tool__linkwrap a {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 10px 14px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--pt-primary, #7C3AED), var(--pt-mid, #2AA7DF));
    color: #fff !important;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.2);
}

.ng-fastclicks-tool__linkwrap a:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(124, 58, 237, 0.3);
}

.ng-fastclicks-tool__muted {
    font-size: 12px;
    color: #94a3b8;
}

/* Login / signup */
body.ng-auth-body {
    margin: 0;
    min-height: 100vh;
    font-family: 'Poppins', 'Inter', system-ui, sans-serif;
    background: #0b1120;
    color: #e2e8f0;
}

.ng-auth-page {
    position: relative;
    min-height: 100vh;
    overflow: hidden;
}

.ng-auth-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 80% 60% at 20% 20%, rgba(124, 58, 237, 0.25), transparent),
        radial-gradient(ellipse 60% 50% at 80% 80%, rgba(59, 130, 246, 0.2), transparent),
        linear-gradient(160deg, #0b1120 0%, #111827 50%, #0f172a 100%);
}

.ng-auth-grid {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(300px, 1fr) minmax(320px, 420px);
    min-height: 100vh;
    max-width: 1100px;
    margin: 0 auto;
    align-items: center;
    gap: 24px;
    padding: 32px 24px;
}

.ng-auth-showcase {
    padding: 24px 16px;
}

.ng-auth-showcase__inner {
    max-width: 420px;
}

.ng-auth-brand {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    text-decoration: none;
    color: inherit;
    margin-bottom: 20px;
}

.ng-auth-brand__mark {
    width: 52px;
    height: 52px;
    border-radius: 16px;
    background: linear-gradient(135deg, var(--ng-auth-primary, #7C3AED), #5B21B6);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 22px;
    color: #fff;
    overflow: hidden;
}

.ng-auth-brand__mark img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ng-auth-brand__text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.ng-auth-brand__text strong {
    font-size: 18px;
    color: #fff;
}

.ng-auth-brand__text small {
    font-size: 12px;
    color: #94a3b8;
}

.ng-auth-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.1);
    font-size: 12px;
    color: #cbd5e1;
    margin-bottom: 16px;
}

.ng-auth-showcase__title {
    margin: 0 0 12px;
    font-size: clamp(26px, 4vw, 34px);
    font-weight: 800;
    line-height: 1.15;
    color: #fff;
}

.ng-auth-showcase__lead {
    margin: 0 0 22px;
    font-size: 15px;
    line-height: 1.6;
    color: #94a3b8;
}

.ng-auth-features {
    list-style: none;
    margin: 0;
    padding: 0;
}

.ng-auth-features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 12px;
    font-size: 14px;
    color: #cbd5e1;
}

.ng-auth-features i {
    color: var(--ng-auth-primary, #7C3AED);
    margin-top: 3px;
}

.ng-auth-main {
    display: flex;
    justify-content: center;
    align-items: center;
}

.ng-auth-card {
    width: 100%;
    max-width: 420px;
    background: rgba(255, 255, 255, 0.98);
    border-radius: 28px;
    padding: 28px 26px 24px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.ng-auth-card__head {
    margin-bottom: 18px;
}

.ng-auth-card__eyebrow {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ng-auth-primary, #7C3AED);
    margin-bottom: 8px;
}

.ng-auth-card__head h2 {
    margin: 0 0 8px;
    font-size: 22px;
    font-weight: 800;
    color: #0f172a;
}

.ng-auth-card__sub {
    margin: 0;
    font-size: 14px;
    color: #64748b;
    line-height: 1.5;
}

.ng-auth-card__form .am-form,
.ng-auth-card__form form {
    margin-top: 8px;
}

body.ng-auth-body .am-row,
body.ng-auth-body .am-element-title {
    color: #334155;
}

body.ng-auth-body input[type="text"],
body.ng-auth-body input[type="password"],
body.ng-auth-body input[type="email"] {
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
    padding: 12px 14px !important;
}

body.ng-auth-body input[type="submit"],
body.ng-auth-body button[type="submit"],
body.ng-auth-body .am-submit {
    border-radius: 999px !important;
    background: var(--ng-auth-primary, #7C3AED) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 600 !important;
    padding: 12px 24px !important;
    margin-top: 8px;
}

.ng-auth-card__foot {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    text-align: center;
}

.ng-auth-switch {
    font-size: 14px;
    font-weight: 600;
    color: var(--ng-auth-primary, #7C3AED);
    text-decoration: none;
}

.ng-auth-forgot {
    font-size: 13px;
    color: #64748b;
    text-decoration: none;
}

.ng-auth-forgot:hover {
    color: #0f172a;
}

/* Core brick removed in Theme.php; hide widget if still registered elsewhere */
body.pts-dashboard.ng-dashboard #widget-member-main-subscriptions {
    display: none !important;
}

/* Active Subscriptions card — elevated dashboard panel */
.ng-subscriptions-card {
    position: relative;
    background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
    border: 1px solid #e2e8f0;
    border-radius: 22px;
    padding: 0;
    margin: 0 0 28px;
    overflow: hidden;
    box-shadow:
        0 4px 6px -1px rgba(15, 23, 42, 0.06),
        0 12px 32px -8px rgba(15, 23, 42, 0.12);
}

.ng-subscriptions-card::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--pts-primary, #7C3AED), var(--pts-accent, #8B5CF6));
    opacity: 0.95;
}

.ng-subscriptions-card__head {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 22px 26px 18px;
    margin: 0;
    border-bottom: 1px solid rgba(139, 92, 246, 0.1);
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.06) 0%, rgba(139, 92, 246, 0.04) 100%);
}

.ng-subscriptions-card__icon {
    font-size: 28px;
    line-height: 1;
    width: 52px;
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: #fff;
    border: 1px solid #EDE9FE;
    box-shadow: 0 4px 14px rgba(124, 58, 237, 0.15);
}

.ng-subscriptions-card__title {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.03em;
}

.ng-subscriptions-card__empty {
    text-align: center;
    padding: 28px 24px 32px;
    color: #64748b;
    font-size: 15px;
    line-height: 1.55;
}

.ng-subscriptions-card__cta {
    display: inline-flex;
    margin-top: 16px;
    padding: 12px 24px;
    border-radius: 999px;
    background: linear-gradient(135deg, var(--pt-primary, #7C3AED), var(--pt-mid, #2AA7DF));
    color: #fff !important;
    font-weight: 700;
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(124, 58, 237, 0.35);
    transition: transform 0.2s, box-shadow 0.2s;
}

.ng-subscriptions-card__cta:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 28px rgba(124, 58, 237, 0.4);
}

.ng-subscriptions-card__list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 20px 22px 24px;
}

.ng-subscriptions-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    padding: 18px 20px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid #e8ecf1;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
    transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
    border-left: 4px solid var(--pts-primary, #7C3AED);
}

.ng-subscriptions-row:hover {
    border-color: #c8f5e0;
    box-shadow: 0 8px 24px rgba(124, 58, 237, 0.12);
    transform: translateY(-1px);
}

.ng-subscriptions-row__left {
    display: flex;
    align-items: center;
    gap: 16px;
    min-width: 0;
    flex: 1;
}

.ng-subscriptions-row__badge {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: linear-gradient(145deg, #F5F3FF 0%, #EDE9FE 100%);
    border: 1px solid #C4B5FD;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.2);
}

.ng-subscriptions-row__badge i {
    color: #6d28d9;
    font-size: 20px;
}

.ng-subscriptions-row__info {
    min-width: 0;
}

.ng-subscriptions-row__plan {
    display: block;
    font-size: 15px;
    font-weight: 800;
    color: #0f172a;
    margin-bottom: 6px;
    letter-spacing: -0.02em;
}

.ng-subscriptions-row__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    font-size: 12px;
    color: #64748b;
}

.ng-subscriptions-row__meta i {
    color: var(--pts-primary, #7C3AED);
    margin-right: 4px;
    opacity: 0.9;
}

.ng-sub-pill {
    flex-shrink: 0;
    padding: 8px 18px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #fff;
    background: linear-gradient(135deg, var(--pt-primary, #7C3AED), var(--pt-mid, #2AA7DF));
    box-shadow: 0 2px 10px rgba(124, 58, 237, 0.35);
}

.ng-sub-pill--active {
    background: linear-gradient(135deg, var(--pt-primary, #7C3AED), var(--pt-mid, #2AA7DF));
    box-shadow: 0 2px 10px rgba(124, 58, 237, 0.35);
}

.ng-sub-pill--expired {
    background: #ef4444;
    box-shadow: 0 2px 8px rgba(239, 68, 68, 0.3);
}

.ng-sub-pill--upcoming {
    background: linear-gradient(135deg, var(--pt-primary, #7C3AED), var(--pt-mid, #2AA7DF));
    box-shadow: 0 2px 8px rgba(124, 58, 237, 0.3);
}

/* Premium-tools style category picker + search */
.ng-pts-categories {
    position: relative;
    background: linear-gradient(145deg, #0F0720 0%, #1A0836 45%, #2E1065 100%);
    border: 2px solid var(--pts-primary, #7C3AED);
    border-radius: 22px;
    padding: 28px 22px 26px;
    margin-bottom: 20px;
    box-shadow: 0 16px 40px rgba(15, 7, 32, 0.2);
    overflow: hidden;
}

.ng-pts-categories__head {
    text-align: center;
    margin-bottom: 22px;
}

.ng-pts-categories__title {
    margin: 0 0 8px;
    font-size: 1.35rem;
    font-weight: 800;
    color: #fff;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    letter-spacing: -0.02em;
}

.ng-pts-categories__title i {
    color: var(--pts-primary, #7C3AED);
}

.ng-pts-categories__sub {
    margin: 0;
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.85);
}

.ng-pts-categories__rows {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ng-pts-categories__row {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ng-pts-cat-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    text-align: left;
    padding: 14px 12px;
    border-radius: 16px;
    border: 2px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s, background 0.2s;
    font: inherit;
    width: 100%;
}

.ng-pts-cat-card:hover {
    transform: translateY(-3px);
    border-color: rgba(255, 255, 255, 0.24);
    background: rgba(255, 255, 255, 0.12);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.25);
}

.ng-pts-cat-card.active {
    background: rgba(255, 255, 255, 0.2);
    border-color: var(--pts-primary, #7C3AED);
    box-shadow: 0 8px 24px rgba(255, 255, 255, 0.10);
}

.ng-pts-cat-card__icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--pts-primary, #7C3AED), var(--pts-accent, #8B5CF6));
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 18px;
}

.ng-pts-cat-card__body {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ng-pts-cat-card__body strong {
    font-size: 0.88rem;
    font-weight: 800;
    line-height: 1.25;
}

.ng-pts-cat-card__body small {
    font-size: 0.72rem;
    opacity: 0.88;
    line-height: 1.3;
}

.ng-pts-cat-card__count {
    margin-top: 6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    padding: 3px 8px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 800;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

/* Tool search — compact bar */
.ng-tool-search {
    margin-bottom: 22px;
    padding: 18px 20px 20px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(15, 23, 42, 0.05);
}

.ng-tool-search__header {
    margin-bottom: 12px;
    text-align: center;
}

.ng-tool-search__kicker {
    display: block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--pts-primary, #7C3AED);
    margin-bottom: 4px;
}

.ng-tool-search__label {
    display: block;
    font-size: 16px;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.02em;
    cursor: pointer;
    text-align: center;
}

.ng-tool-search__hint {
    margin: 4px 0 0;
    font-size: 12px;
    color: #94a3b8;
    line-height: 1.4;
}

.ng-tool-search__bar {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 4px 6px 4px 16px;
    background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
    border: 2px solid #e2e8f0;
    border-radius: 14px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.ng-tool-search__bar:focus-within {
    border-color: var(--pts-primary, #7C3AED);
    box-shadow: 0 0 0 3px rgba(124, 58, 237, 0.15);
}

.ng-tool-search__bar-icon {
    color: var(--pts-primary, #7C3AED);
    font-size: 15px;
    opacity: 0.9;
}

.ng-tool-search__input {
    flex: 1;
    min-width: 0;
    border: none !important;
    background: transparent !important;
    padding: 12px 8px !important;
    font-size: 15px;
    font-weight: 500;
    color: #0f172a;
    outline: none;
    box-shadow: none !important;
}

.ng-tool-search__input::placeholder {
    color: #94a3b8;
    font-weight: 400;
}

.ng-tool-search__clear {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border: none;
    border-radius: 10px;
    background: #fff;
    color: #64748b;
    cursor: pointer;
    align-items: center;
    justify-content: center;
    transition: background 0.2s, color 0.2s;
}

.ng-tool-search__clear:hover {
    background: #fee2e2;
    color: #dc2626;
}

/* Useful Links widget */
.ng-useful-links {
    padding: 4px 0;
}

.ng-useful-links__head h3 {
    margin: 0;
    font-size: 18px;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.02em;
}

.ng-useful-links__head p {
    margin: 6px 0 14px;
    font-size: 13px;
    color: #64748b;
}

.ng-useful-links__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 10px;
}

.ng-useful-link-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 12px;
    background: #f8fafc;
    border: 1px solid #e5e7eb;
    text-decoration: none;
    color: #000;
    font-size: 13px;
    font-weight: 700;
    transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}

body.pts-dashboard.ng-dashboard .ng-useful-link-card,
body.pts-dashboard.ng-dashboard .ng-useful-link-card__label {
    color: #000 !important;
}

.ng-useful-link-card:hover {
    border-color: var(--pts-primary, #7C3AED);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.08);
}

.ng-useful-link-card__icon {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: linear-gradient(135deg, var(--pts-primary, #7C3AED), #8B5CF6);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 12px;
}

@media (max-width: 1100px) {
    .ng-pts-categories__row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .ng-pts-categories__row {
        grid-template-columns: 1fr;
    }

    .ng-pts-cat-card {
        padding: 12px;
    }
}

/* Razztools-style centered login */
body.ng-auth-body--razz {
    background: #0a0612;
    color: #e2e8f0;
}

.ng-auth-razz {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 18px 40px;
    font-family: 'Inter', 'Poppins', system-ui, sans-serif;
}

.ng-auth-razz__bg {
    position: fixed;
    inset: 0;
    z-index: 0;
    background: linear-gradient(165deg, #0a0612 0%, #1a0a2e 35%, #2d1b4e 70%, #0f172a 100%);
}

.ng-auth-razz__mesh {
    position: absolute;
    inset: 0;
    opacity: 0.4;
    background-image:
        radial-gradient(circle at 20% 30%, rgba(168, 85, 247, 0.22) 0%, transparent 45%),
        radial-gradient(circle at 80% 70%, rgba(236, 72, 153, 0.15) 0%, transparent 40%),
        linear-gradient(rgba(255, 255, 255, 0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.03) 1px, transparent 1px);
    background-size: auto, auto, 48px 48px, 48px 48px;
}

.ng-auth-razz__glow {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    pointer-events: none;
}

.ng-auth-razz__glow--1 {
    width: 320px;
    height: 320px;
    top: 10%;
    left: 15%;
    background: rgba(168, 85, 247, 0.35);
}

.ng-auth-razz__glow--2 {
    width: 280px;
    height: 280px;
    bottom: 15%;
    right: 10%;
    background: rgba(236, 72, 153, 0.22);
}

.ng-auth-razz__center {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 440px;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.ng-auth-razz__brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-decoration: none;
    color: inherit;
    margin-bottom: 14px;
}

.ng-auth-razz__logo {
    width: 64px;
    height: 64px;
    border-radius: 18px;
    background: linear-gradient(135deg, #a855f7, #7c3aed);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 800;
    color: #fff;
    overflow: hidden;
    margin-bottom: 10px;
    box-shadow: 0 12px 40px rgba(124, 58, 237, 0.45);
}

.ng-auth-razz__logo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.ng-auth-razz__brand-text {
    text-align: center;
}

.ng-auth-razz__brand-text strong {
    display: block;
    font-size: 1.25rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: -0.02em;
}

.ng-auth-razz__brand-text small {
    font-size: 12px;
    color: rgba(226, 232, 240, 0.65);
}

.ng-auth-razz__secure {
    margin: 0 0 20px;
    font-size: 12px;
    color: rgba(226, 232, 240, 0.75);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ng-auth-razz__secure i {
    color: #A78BFA;
}

.ng-auth-razz__card {
    width: 100%;
    background: rgba(255, 255, 255, 0.98);
    border-radius: 22px;
    padding: 26px 24px 22px;
    box-shadow:
        0 24px 60px rgba(0, 0, 0, 0.45),
        0 0 0 1px rgba(255, 255, 255, 0.08);
}

.ng-auth-razz__card-head {
    text-align: center;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e2e8f0;
}

.ng-auth-razz__card-title {
    margin: 0 0 8px;
    font-size: 1.35rem;
    font-weight: 800;
    color: #0f172a;
}

.ng-auth-razz__card-lead {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: #64748b;
}

.ng-auth-razz__eyebrow {
    margin: 0 0 6px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #7c3aed;
}

.ng-auth-razz__form-title {
    margin: 0 0 6px;
    font-size: 1.05rem;
    font-weight: 800;
    color: #0f172a;
}

.ng-auth-razz__form-sub {
    margin: 0 0 14px;
    font-size: 13px;
    color: #64748b;
}

.ng-auth-razz__form .am-form,
.ng-auth-razz__form form {
    margin-top: 4px;
}

body.ng-auth-body--razz .ng-auth-razz__form .am-row,
body.ng-auth-body--razz .ng-auth-razz__form .am-element-title {
    color: #334155;
}

body.ng-auth-body--razz .ng-auth-razz__form input[type="text"],
body.ng-auth-body--razz .ng-auth-razz__form input[type="password"],
body.ng-auth-body--razz .ng-auth-razz__form input[type="email"] {
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
    padding: 12px 14px !important;
    width: 100%;
}

body.ng-auth-body--razz .ng-auth-razz__form input[type="submit"],
body.ng-auth-body--razz .ng-auth-razz__form button[type="submit"],
body.ng-auth-body--razz .ng-auth-razz__form .am-submit {
    border-radius: 12px !important;
    width: 100%;
    background: linear-gradient(135deg, #7c3aed, #a855f7) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 700 !important;
    padding: 14px 20px !important;
    margin-top: 10px;
    box-shadow: 0 8px 24px rgba(124, 58, 237, 0.35);
}

.ng-auth-razz__links {
    margin-top: 18px;
    padding-top: 16px;
    border-top: 1px solid #e2e8f0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: center;
    text-align: center;
}

.ng-auth-razz__link {
    font-size: 13px;
    color: #64748b;
    text-decoration: none;
}

.ng-auth-razz__link:hover {
    color: #0f172a;
}

.ng-auth-razz__link--primary {
    font-size: 14px;
    font-weight: 700;
    color: #7c3aed;
}

.ng-auth-razz__footer-note {
    margin-top: 22px;
    font-size: 11px;
    color: rgba(226, 232, 240, 0.45);
}

/* Profile v2 (member/profile) */
.ng-profile-v2 {
    max-width: 1040px;
    margin: 0 auto;
    padding-bottom: 32px;
}

.ng-profile-v2__crumb {
    font-size: 13px;
    color: #64748b;
    margin-bottom: 18px;
}

.ng-profile-v2__crumb a {
    color: var(--pts-primary, #7C3AED);
    font-weight: 600;
    text-decoration: none;
}

.ng-profile-v2__crumb a:hover {
    text-decoration: underline;
}

.ng-profile-v2__crumb-sep {
    margin: 0 8px;
    opacity: 0.5;
}

.ng-profile-v2__crumb-here {
    color: #0f172a;
    font-weight: 600;
}

.ng-profile-v2__hero {
    display: grid;
    grid-template-columns: 1fr minmax(200px, 280px);
    gap: 24px;
    align-items: center;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    padding: 26px 28px;
    margin-bottom: 24px;
    box-shadow: 0 8px 30px rgba(15, 23, 42, 0.06);
}

.ng-profile-v2__eyebrow {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--pts-primary, #7C3AED);
    margin-bottom: 8px;
}

.ng-profile-v2__title {
    margin: 0 0 10px;
    font-size: clamp(24px, 3vw, 30px);
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.03em;
    line-height: 1.15;
}

.ng-profile-v2__lead {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #64748b;
    max-width: 520px;
}

.ng-profile-v2__hero-card {
    background: linear-gradient(145deg, #f8fafc 0%, #f1f5f9 100%);
    border: 1px solid #e2e8f0;
    border-radius: 18px;
    padding: 18px;
    text-align: center;
}

.ng-profile-v2__avatar {
    width: 88px;
    height: 88px;
    border-radius: 22px;
    overflow: hidden;
    margin: 0 auto 12px;
    border: 3px solid var(--pts-primary, #7C3AED);
    box-shadow: 0 8px 22px rgba(124, 58, 237, 0.2);
}

.ng-profile-v2__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ng-profile-v2__hero-meta strong {
    display: block;
    font-size: 16px;
    color: #0f172a;
    margin-bottom: 4px;
}

.ng-profile-v2__hero-meta span {
    display: block;
    font-size: 13px;
    color: #64748b;
    word-break: break-word;
}

.ng-profile-v2__login-id {
    margin-top: 6px;
    font-size: 12px !important;
    color: #94a3b8 !important;
}

.ng-profile-v2__grid {
    display: grid;
    grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
    gap: 22px;
    align-items: start;
}

.ng-profile-v2__panel {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 20px 20px 22px;
    box-shadow: 0 4px 18px rgba(15, 23, 42, 0.04);
}

.ng-profile-v2__panel--muted {
    background: #f8fafc;
}

.ng-profile-v2__panel-title {
    margin: 0 0 14px;
    font-size: 14px;
    font-weight: 800;
    color: #0f172a;
    letter-spacing: -0.02em;
}

.ng-profile-v2__facts {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
}

.ng-profile-v2__facts li {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 10px 0;
    border-bottom: 1px solid #f1f5f9;
}

.ng-profile-v2__facts li:last-child {
    border-bottom: 0;
}

.ng-profile-v2__facts span {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
}

.ng-profile-v2__facts strong {
    font-size: 14px;
    color: #0f172a;
    font-weight: 600;
    word-break: break-word;
}

.ng-profile-v2__panel-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 12px 16px;
    border-radius: 12px;
    background: var(--pts-primary, #7C3AED);
    color: #fff !important;
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    transition: filter 0.2s, transform 0.2s;
}

.ng-profile-v2__panel-btn:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
}

.ng-profile-v2__shortcuts {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.ng-profile-v2__shortcuts a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 600;
    color: #1e293b;
    text-decoration: none;
    background: #fff;
    border: 1px solid #e5e7eb;
    transition: border-color 0.2s, color 0.2s;
}

.ng-profile-v2__shortcuts a:hover {
    border-color: var(--pts-primary, #7C3AED);
    color: var(--pts-primary, #7C3AED);
}

.ng-profile-v2__shortcuts i {
    width: 1.2em;
    color: var(--pts-primary, #7C3AED);
    text-align: center;
}

.ng-profile-v2__main {
    display: flex;
    flex-direction: column;
    gap: 22px;
    min-width: 0;
}

.ng-profile-v2__link-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
    gap: 10px;
}

.ng-profile-v2__link-tile {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 14px 12px;
    border-radius: 14px;
    border: 1px solid #e5e7eb;
    background: #fafafa;
    text-decoration: none;
    color: #0f172a;
    font-size: 12px;
    font-weight: 700;
    transition: border-color 0.2s, background 0.2s, transform 0.2s;
}

.ng-profile-v2__link-tile i {
    font-size: 18px;
    color: var(--pts-primary, #7C3AED);
}

.ng-profile-v2__link-tile:hover {
    border-color: var(--pts-primary, #7C3AED);
    background: #fff;
    transform: translateY(-2px);
}

.ng-profile-v2__link-tile--danger {
    border-color: #fecaca;
    background: #fff5f5;
}

.ng-profile-v2__link-tile--danger i {
    color: #dc2626;
}

.ng-profile-v2__link-tile--danger:hover {
    border-color: #f87171;
}

.ng-profile-v2__form-head h2 {
    margin: 0 0 6px;
    font-size: 18px;
    font-weight: 800;
    color: #0f172a;
}

.ng-profile-v2__form-head p {
    margin: 0 0 16px;
    font-size: 13px;
    color: #64748b;
}

body.pts-dashboard.ng-dashboard .ng-profile-v2__form-body .am-row,
body.pts-dashboard.ng-dashboard .ng-profile-v2__form-body .am-element-title {
    color: #334155;
}

body.pts-dashboard.ng-dashboard .ng-profile-v2__form-body input[type="text"],
body.pts-dashboard.ng-dashboard .ng-profile-v2__form-body input[type="password"],
body.pts-dashboard.ng-dashboard .ng-profile-v2__form-body input[type="email"] {
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
}

body.pts-dashboard.ng-dashboard .ng-profile-v2__form-body input[type="submit"],
body.pts-dashboard.ng-dashboard .ng-profile-v2__form-body button[type="submit"],
body.pts-dashboard.ng-dashboard .ng-profile-v2__form-body .am-submit {
    border-radius: 12px !important;
    background: var(--pts-primary, #7C3AED) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 700 !important;
}

@media (max-width: 900px) {
    .ng-profile-v2__hero {
        grid-template-columns: 1fr;
    }

    .ng-profile-v2__grid {
        grid-template-columns: 1fr;
    }

    .ng-profile-v2__aside {
        display: contents;
    }

    .ng-profile-v2__panel--muted {
        order: 3;
    }
}

/* Profile page (legacy classes — kept for compatibility) */
.ng-profile-page {
    padding-bottom: 24px;
}

.ng-profile-hero {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
    background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 100%);
    color: #fff;
    border-radius: 26px;
    padding: 28px 26px;
    margin-bottom: 20px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    box-shadow: 0 12px 40px rgba(15, 23, 42, 0.15);
}

.ng-profile-hero__eyebrow {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6ee7b7;
    margin-bottom: 10px;
}

.ng-profile-hero__title {
    margin: 0 0 10px;
    font-size: clamp(24px, 3vw, 30px);
    font-weight: 800;
    line-height: 1.15;
}

.ng-profile-hero__lead {
    margin: 0 0 16px;
    font-size: 14px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.82);
    max-width: 520px;
}

.ng-profile-hero__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ng-profile-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 12px;
    color: #e2e8f0;
}

.ng-profile-hero__avatar-wrap {
    text-align: center;
}

.ng-profile-hero__avatar {
    width: 112px;
    height: 112px;
    border-radius: 28px;
    overflow: hidden;
    border: 3px solid var(--pts-primary, #7C3AED);
    margin: 0 auto 10px;
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.25);
}

.ng-profile-hero__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ng-profile-hero__avatar-caption strong {
    display: block;
    font-size: 15px;
}

.ng-profile-hero__avatar-caption small {
    display: block;
    font-size: 12px;
    color: rgba(255, 255, 255, 0.75);
    margin-top: 4px;
}

/* Profile: avatar upload (views/member/profile.phtml) */
.ng-profile-avatar-upload {
    margin: 0 auto 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.ng-profile-avatar-upload-btn {
    appearance: none;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    border-radius: 16px;
    padding: 10px 14px;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: transform 0.15s ease, background 0.15s ease, border-color 0.15s ease;
}

.ng-profile-avatar-upload-btn:hover {
    transform: translateY(-1px);
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.22);
}

.ng-profile-avatar-upload-field {
    /* Keep upload input out of sight; plugin still works via JS click. */
    width: 100%;
    display: flex;
    justify-content: center;
    position: relative;
}

.ng-profile-avatar-upload-field label {
    display: none;
}

.ng-profile-avatar-upload-field input[type="file"] {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
    pointer-events: none;
}

.ng-profile-avatar-upload-field .am-avatar-preview {
    margin-top: 4px;
}

.ng-profile-avatar-upload-field .am-avatar-preview img {
    width: 96px;
    height: 96px;
    border-radius: 26px;
    object-fit: cover;
    border: 2px solid var(--pts-primary, #fbbf24);
}

.ng-profile-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    margin-bottom: 22px;
}

.ng-profile-stat {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    padding: 16px 18px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.ng-profile-stat small {
    display: block;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #64748b;
    margin-bottom: 8px;
}

.ng-profile-stat strong {
    font-size: 15px;
    color: #0f172a;
    line-height: 1.35;
    word-break: break-word;
}

a.ng-profile-stat--link {
    text-decoration: none;
    color: inherit;
    transition: border-color 0.2s, transform 0.2s;
}

a.ng-profile-stat--link:hover {
    border-color: var(--pts-primary, #7C3AED);
    transform: translateY(-2px);
}

.ng-profile-links {
    margin-bottom: 24px;
}

.ng-profile-links__title {
    font-size: 16px;
    font-weight: 700;
    color: #1f2937;
    margin: 0 0 12px;
    padding-bottom: 8px;
    border-bottom: 2px solid var(--pts-primary, #7C3AED);
    display: inline-block;
}

.ng-profile-links__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
    gap: 10px;
}

.ng-profile-link-card {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 14px;
    text-decoration: none;
    color: #1e293b;
    font-size: 13px;
    font-weight: 600;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.ng-profile-link-card i {
    color: var(--pts-primary, #7C3AED);
    width: 1.2em;
    text-align: center;
}

.ng-profile-link-card:hover {
    border-color: var(--pts-primary, #7C3AED);
    box-shadow: 0 4px 14px rgba(124, 58, 237, 0.12);
}

.ng-profile-link-card--danger {
    border-color: #fecaca;
    color: #b91c1c;
}

.ng-profile-link-card--danger i {
    color: #dc2626;
}

.ng-profile-form-shell {
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 22px;
    overflow: hidden;
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.05);
    margin-bottom: 24px;
}

.ng-profile-form-shell__head {
    padding: 20px 22px 12px;
    border-bottom: 1px solid #f1f5f9;
}

.ng-profile-form-shell__head h2 {
    margin: 0 0 6px;
    font-size: 18px;
    color: #1f2937;
}

.ng-profile-form-shell__head p {
    margin: 0;
    font-size: 13px;
    color: #64748b;
}

.ng-profile-form-shell__body {
    padding: 18px 22px 22px;
}

body.pts-dashboard.ng-dashboard .ng-profile-form-shell__body .am-row {
    margin-bottom: 12px;
}

body.pts-dashboard.ng-dashboard .ng-profile-form-shell__body .am-row,
body.pts-dashboard.ng-dashboard .ng-profile-form-shell__body .am-element-title {
    color: #334155;
}

body.pts-dashboard.ng-dashboard .ng-profile-form-shell__body input[type="text"],
body.pts-dashboard.ng-dashboard .ng-profile-form-shell__body input[type="password"],
body.pts-dashboard.ng-dashboard .ng-profile-form-shell__body input[type="email"] {
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
}

body.pts-dashboard.ng-dashboard .ng-profile-form-shell__body input[type="submit"],
body.pts-dashboard.ng-dashboard .ng-profile-form-shell__body button[type="submit"],
body.pts-dashboard.ng-dashboard .ng-profile-form-shell__body .am-submit {
    border-radius: 12px !important;
    background: var(--pts-primary, #7C3AED) !important;
    border: none !important;
    color: #fff !important;
    font-weight: 700 !important;
}

/* aMember Helpdesk inside dashboard — readable body text */
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk,
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-ticket,
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-message,
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-faq-search-result,
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-ticket-fields,
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-ticket-info {
    color: #0f172a;
}

body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-ticket-subject,
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-ticket-mask,
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-ticket-category,
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-message-author,
body.pts-dashboard.ng-dashboard .ng-main-content .am-helpdesk-message-date {
    color: #0f172a !important;
}

body.pts-dashboard.ng-dashboard .ng-main-content h1:has(.am-helpdesk-ticket-subject) {
    color: #0f172a;
}

.ng-profile-footer {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 18px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.04);
}

.ng-profile-footer__avatar {
    width: 56px;
    height: 56px;
    border-radius: 16px;
    overflow: hidden;
    flex-shrink: 0;
    border: 2px solid var(--pts-primary, #7C3AED);
}

.ng-profile-footer__avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ng-profile-footer__text strong {
    display: block;
    font-size: 16px;
    color: #0f172a;
}

.ng-profile-footer__text span {
    font-size: 13px;
    color: #64748b;
}

@media (max-width: 968px) {
    .ptdash-sidebar {
        display: flex;
        left: calc(-100% - 24px);
        top: 10px;
        bottom: 10px;
        width: min(280px, 86vw);
        height: auto;
        max-height: calc(100vh - 20px);
        z-index: 950;
        box-shadow: 0 8px 40px rgba(15, 7, 32, 0.55);
    }

    .ptdash-sidebar.open {
        left: 10px;
    }

    .ptdash-mobile-close {
        display: inline-flex;
    }

    .ptdash-brand {
        padding-top: 48px;
    }

    .ng-mobile-menu-btn {
        display: flex;
    }

    .ng-main-content {
        margin-left: 0;
        max-width: 100vw;
        padding: 58px 16px 24px;
    }

    .ng-date-time-display {
        display: none;
    }

    .ng-quick-actions {
        flex-direction: column;
    }

    .ng-quick-card {
        min-width: 100%;
    }

    .ng-auth-grid {
        grid-template-columns: 1fr;
        padding: 20px 16px 32px;
    }

    .ng-auth-showcase {
        order: 2;
        padding-top: 0;
    }

    .ng-auth-main {
        order: 1;
    }

    .ng-profile-hero {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .ng-profile-hero__chips {
        justify-content: center;
    }

    .ng-profile-stats {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 768px) {
    .ng-user-menu-text {
        display: none;
    }

    .ng-subscription-row,
    .ng-subscriptions-row {
        flex-direction: column;
        align-items: flex-start;
    }

    .ng-sub-pill {
        align-self: flex-end;
    }

    .ng-active-plan-chip__label {
        display: none;
    }
}

/* ===========================
   Purple/Blue Auth + Buttons
   =========================== */
:root {
    --pt-btn-grad: linear-gradient(135deg, var(--pt-primary), var(--pt-mid));
}

.ptd-auth-signup__hero,
.ptd-auth-signup__hero--compact {
    position: relative;
    background: linear-gradient(135deg, #1A0836 0%, #2E1065 40%, #5B21B6 75%, #7C3AED 100%);
    border-radius: 22px;
    padding: 28px 30px;
    margin: 0 auto 18px auto;
    overflow: hidden;
}

.ptd-auth-signup__hero--compact {
    padding: 22px 22px;
}

.ptd-auth-signup__hero:before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse 500px 350px at 80% 20%, rgba(167,139,250,0.22), transparent),
        radial-gradient(ellipse 350px 250px at 10% 80%, rgba(124,58,237,0.18), transparent);
    pointer-events: none;
}

.ptd-auth-signup__hero-inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
}

.ptd-auth-signup__hero h1 {
    margin: 0 0 6px;
    color: #fff;
    font-size: 26px;
    font-weight: 800;
}

.ptd-auth-signup__hero p {
    margin: 0;
    color: rgba(255, 255, 255, 0.68);
    font-size: 14px;
}

.ptd-auth-signup__badges {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-left: auto;
}

.ptd-auth-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.14);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

/* Signup buttons */
body.pts-auth .am-row-buttons input[type="submit"].am-cta-signup,
body.pts-auth .am-row-buttons button[type="submit"].am-cta-signup,
body.pts-auth input[type="submit"].am-cta-signup,
body.ptlog-login-body .am-row-buttons input[type="submit"].am-cta-signup,
body.ptlog-login-body .am-row-buttons button[type="submit"].am-cta-signup,
body.ptlog-login-body input[type="submit"].am-cta-signup {
    background-image: var(--pt-btn-grad) !important;
    border: none !important;
    box-shadow: 0 10px 26px rgba(124, 58, 237, 0.25) !important;
    color: #fff !important;
}

/* Generic cta buttons */
.am-cta-signup,
.am-cta-upgrade,
.am-cta-cancel {
    background-image: var(--pt-btn-grad) !important;
    border: none !important;
    color: #fff !important;
}

/* ===========================
   Auth page: WhatsApp + Bell
   =========================== */
.ptlog-auth-top-actions {
    position: fixed;
    top: 14px;
    right: 14px;
    z-index: 10005;
    display: flex;
    align-items: center;
    gap: 10px;
    pointer-events: none;
}

.ptlog-auth-top-actions > * {
    pointer-events: auto;
}

.ptlog-auth-top-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 14px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.18);
    color: #fff;
    text-decoration: none;
    font-weight: 700;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
    backdrop-filter: blur(10px);
}

.ptlog-auth-top-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.18);
}

.ptlog-auth-top-btn--whatsapp {
    background: linear-gradient(135deg, rgba(124, 58, 237, 0.25), rgba(42, 167, 223, 0.15));
    border-color: rgba(124, 58, 237, 0.22);
}

.ptlog-auth-notif-wrap {
    position: relative;
}

.ptlog-auth-notif-btn {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.10);
    color: #fff;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    backdrop-filter: blur(10px);
}

.ptlog-auth-notif-count {
    position: absolute;
    top: 6px;
    right: 6px;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    background: linear-gradient(135deg, #ef4444, #f87171);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(255, 255, 255, 0.65);
}

.ptlog-auth-notif-dropdown {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 360px;
    background: #fff;
    border-radius: 16px;
    border: 1px solid rgba(124, 58, 237, 0.10);
    box-shadow: 0 18px 60px rgba(0, 0, 0, 0.22);
    display: none;
    overflow: hidden;
}

.ptlog-auth-notif-dropdown.show {
    display: block;
}

.ptlog-auth-notif-header {
    padding: 14px 16px;
    border-bottom: 1px solid rgba(139, 92, 246, 0.16);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.ptlog-auth-notif-header h4 {
    margin: 0;
    font-size: 14px;
    font-weight: 800;
    color: #0f172a;
    display: flex;
    align-items: center;
    gap: 8px;
}

.ptlog-auth-notif-list {
    max-height: 320px;
    overflow-y: auto;
    overflow-x: hidden;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.ptlog-auth-notif-list::-webkit-scrollbar {
    display: none;
}

.ptlog-auth-notif-item {
    display: flex;
    gap: 12px;
    padding: 14px 16px;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid rgba(237, 233, 254, 0.9);
    transition: background 0.2s ease;
}

.ptlog-auth-notif-item:hover {
    background: rgba(124, 58, 237, 0.06);
}

.ptlog-auth-notif-item:last-child {
    border-bottom: none;
}

.ptlog-auth-notif-icon {
    width: 38px;
    height: 38px;
    border-radius: 12px;
    background: rgba(124, 58, 237, 0.10);
    color: #7C3AED;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 18px;
}

.ptlog-auth-notif-title {
    color: #0f172a;
    font-size: 13px;
    font-weight: 800;
    margin-bottom: 3px;
}

.ptlog-auth-notif-desc {
    color: #6b7280;
    font-size: 12px;
    margin-bottom: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ptlog-auth-notif-time {
    color: #a78bfa;
    font-size: 11px;
}

@media (max-width: 600px) {
    .ptlog-auth-top-actions {
        top: 10px;
        right: 10px;
    }

    .ptlog-auth-top-btn span {
        display: none;
    }

    .ptlog-auth-notif-dropdown {
        width: 300px;
    }
}

/* ===========================
   Dashboard Active Subs Slider
   =========================== */
.ng-subs-marquee {
    margin-bottom: 14px;
    grid-column: 1 / -1;
}

.ng-subs-marquee__container {
    border-radius: 16px;
    border: 1px solid rgba(124, 58, 237, 0.10);
    background: linear-gradient(135deg, #1A0836 0%, #2E1065 40%, #5B21B6 75%, #7C3AED 100%);
    overflow: hidden;
}

.ng-subs-marquee__track {
    display: flex;
    overflow: hidden;
    white-space: nowrap;
}

.ng-subs-marquee__text {
    display: inline-block;
    padding: 10px 0;
    font-weight: 800;
    font-size: 16px;
    color: #000;
    animation: ng-marquee 50s linear infinite;
}

/* Ensure black text is readable over dark gradient */
.ng-subs-marquee__text span {
    background: rgba(255, 255, 255, 0.85);
    padding: 8px 18px;
    border-radius: 999px;
}

@keyframes ng-marquee {
    0% {
        transform: translateX(25%);
    }
    100% {
        transform: translateX(-100%);
    }
}

/* Custom Logo Styles */
.pts-custom-logo-link {
    display: flex;
    align-items: center;
    gap: 16px;
    cursor: pointer;
    outline: none;
    text-decoration: none;
    flex-shrink: 0;
}

.pts-custom-logo-icon {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 16px;
    background-color: #0d071a;
    border: 2px solid #8b5cf6;
    box-shadow: 0 0 15px rgba(139,92,246,0.5), inset 0 4px 10px rgba(0,0,0,0.6);
    transition: transform 0.3s, box-shadow 0.3s;
}

.pts-custom-logo-link:hover .pts-custom-logo-icon {
    transform: scale(1.05);
    box-shadow: 0 0 20px rgba(167,139,250,0.7), inset 0 4px 10px rgba(0,0,0,0.6);
}

.pts-custom-logo-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 12px;
}

.pts-custom-logo-svg {
    position: relative;
    z-index: 10;
    filter: drop-shadow(0 2px 4px rgba(167,139,250,0.4));
}

.pts-custom-logo-text-group {
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    padding-top: 4px;
}

.pts-custom-logo-text-row {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.pts-custom-logo-text-fast {
    font-size: 23px;
    font-weight: 800;
    letter-spacing: -0.025em;
    color: transparent;
    background-clip: text;
    -webkit-background-clip: text;
    background-image: linear-gradient(to right, #b388ff, #ffffff);
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.8));
    font-family: 'Outfit', sans-serif;
    line-height: 1;
}

.pts-custom-logo-text-clicks {
    font-size: 24px;
    font-weight: 800;
    letter-spacing: -0.025em;
    color: transparent;
    background-clip: text;
    -webkit-background-clip: text;
    background-image: linear-gradient(to right, #b388ff, #ffffff);
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.8));
    font-family: 'Outfit', sans-serif;
    line-height: 1;
}

@media (max-width: 600px) {
    .pts-custom-logo-text-fast {
        font-size: 23px;
    }
    .pts-custom-logo-text-clicks {
        font-size: 26px;
    }
    .pts-custom-logo-icon {
        width: 40px;
        height: 40px;
    }
}

/* Collapsed sidebar should not show compact badges */
body.ng-sidebar-collapsed .ptdash-badge {
    display: none !important;
}
body.ng-sidebar-collapsed .ptdash-nav-link .ptdash-badge,
body.ng-sidebar-collapsed .ptdash-nav-link .ptdash-badge-success {
    display: none !important;
}

/* Ensure subscription calendar/clock icons stay purple */
.ng-subscriptions-row__meta i {
    color: var(--pts-primary, #7C3AED) !important;
}

/* Category icons: keep glyph white for readability on gradient */
.ng-pts-cat-card__icon i,
.ng-pts-cat-card__icon svg {
    color: #fff !important;
    fill: #fff !important;
}


/* Payment History Page */
.ng-payment-page {
    max-width: 100%;
    margin-top: 20px;
}
.ng-history-card {
    background: #fff;
    border-radius: 24px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.05);
    padding: 20px;
    overflow: hidden;
}
.ng-history-card h1 {
    font-size: 24px;
    color: #1f2937;
    margin-bottom: 20px;
    font-weight: 700;
}
.ng-history-card .am-grid-container {
    overflow-x: auto;
}
.ng-history-card table.am-grid {
    width: 100%;
    border-collapse: collapse;
}
.ng-history-card table.am-grid th {
    background: #f8fafc;
    color: #475569;
    font-weight: 600;
    padding: 12px 16px;
    text-align: left;
    border-bottom: 2px solid #e2e8f0;
}
.ng-history-card table.am-grid td {
    padding: 16px;
    border-bottom: 1px solid #f1f5f9;
    color: #334155;
}
.ng-history-card table.am-grid tr:hover td {
    background: #f8fafc;
}
.ng-history-card table.am-grid a {
    color: var(--pts-primary, #7C3AED);
    font-weight: 700;
    text-decoration: none;
}
.ng-history-card table.am-grid a:hover {
    text-decoration: underline;
}
.ng-history-card table.am-grid .am-grid-row.odd td {
    background: #fcfbff;
}
.ng-history-card table.am-grid .am-grid-row.even td {
    background: #ffffff;
}
.ng-history-card .pts-empty-state,
.ng-history-card .am-block-nodata {
    display: none !important;
}

/* Helpdesk Styling */
.am-helpdesk {
    background: #fff;
    border-radius: 24px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 3px 14px rgba(0, 0, 0, 0.05);
    padding: 24px;
    margin-top: 20px;
}
.am-helpdesk-ticket {
    background: #f8fafc;
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 16px;
    border: 1px solid #e2e8f0;
}
.am-helpdesk-message {
    background: #fff;
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 16px;
    border: 1px solid #e2e8f0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.02);
}
.am-helpdesk-message-author {
    font-weight: 700;
    color: var(--pts-primary, #7C3AED) !important;
}

/* Thanks Page Styling */
.am-page-thanks .am-body-content {
    background: #fff;
    border-radius: 24px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    padding: 40px;
    text-align: center;
    max-width: 600px;
    margin: 40px auto;
}
.am-thanks-status-success {
    font-size: 24px;
    font-weight: 700;
    color: var(--pts-primary, #7C3AED);
    margin-bottom: 20px;
}
.am-thanks-payment-details {
    background: #f8fafc;
    border-radius: 16px;
    padding: 20px;
    margin-bottom: 24px;
    text-align: left;
    border: 1px solid #e2e8f0;
}
.am-thanks-login-offer {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid #e2e8f0;
}
.am-thanks-login-offer a {
    color: var(--pts-primary, #7C3AED);
    font-weight: 700;
    text-decoration: none;
}
.am-thanks-login-offer a:hover {
    text-decoration: underline;
}

