/*
Theme Name:  ReVo Portal
Theme URI:   https://roleplayevolutions.com
Description: Official theme for Roleplay Evolutions member portal
Author:      ReVo Staff
Version:     1.6.1
Text Domain: revo-theme
*/

/* =============================================================================
   DESIGN TOKENS — single source of truth for all colours, sizes, spacing
   ============================================================================= */
:root {
    /* Palette */
    --revo-black:       #08080d;
    --revo-dark:        #10101a;
    --revo-surface:     #16161f;
    --revo-card:        #1c1c28;
    --revo-border:      #2a2a3d;
    --revo-border-lit:  #3a3a55;

    --revo-purple:      #7c4dff;
    --revo-purple-dim:  #5c35cc;
    --revo-purple-glow: rgba(124, 77, 255, 0.18);
    --revo-gold:        #c8943a;
    --revo-gold-dim:    #a07020;
    --revo-crimson:     #8b1a2e;

    --revo-text:        #ddd8f0;
    --revo-text-dim:    #9990bb;
    --revo-text-muted:  #5a5580;
    --revo-text-link:   #a07cff;
    --revo-text-link-h: #c4a8ff;

    /* Tier colours */
    --tier-free:        #5a5580;
    --tier-member:      #7c4dff;
    --tier-patron:      #c8943a;

    /* Status */
    --revo-green:       #3dba6e;
    --revo-red:         #cc3333;
    --revo-orange:      #d4882a;

    /* Typography */
    --font-body:   'Georgia', 'Times New Roman', serif;
    --font-ui:     'Segoe UI', system-ui, -apple-system, sans-serif;
    --font-mono:   'Courier New', monospace;

    /* Sizing */
    --radius:      6px;
    --radius-lg:   12px;
    --nav-h:       64px;
    --max-w:       1160px;
    --col-gap:     28px;

    /* Shadows */
    --shadow-card: 0 2px 18px rgba(0,0,0,0.55);
    --shadow-glow: 0 0 28px var(--revo-purple-glow);
}

/* =============================================================================
   RESET & BASE
   ============================================================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { scroll-behavior: smooth; }

body {
    background:  var(--revo-black);
    color:       var(--revo-text);
    font-family: var(--font-body);
    font-size:   16px;
    line-height: 1.7;
    min-height:  100vh;
}

img { max-width: 100%; height: auto; display: block; }

a {
    color:           var(--revo-text-link);
    text-decoration: none;
    transition:      color 0.2s;
}
a:hover { color: var(--revo-text-link-h); }

h1, h2, h3, h4, h5, h6 {
    font-family:    var(--font-ui);
    font-weight:    600;
    line-height:    1.25;
    color:          var(--revo-text);
    letter-spacing: 0.01em;
}

p { margin-bottom: 1em; }
p:last-child { margin-bottom: 0; }

/* =============================================================================
   LAYOUT
   ============================================================================= */
.revo-wrap {
    max-width: var(--max-w);
    margin:    0 auto;
    padding:   0 20px;
}

.revo-main {
    min-height: calc(100vh - var(--nav-h) - 220px);
    padding:    48px 0 64px;
}

/* Grid helpers */
.revo-grid-2 { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--col-gap); }
.revo-grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--col-gap); }
.revo-grid-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--col-gap); }

@media (max-width: 900px) {
    .revo-grid-3, .revo-grid-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .revo-grid-2, .revo-grid-3, .revo-grid-4 { grid-template-columns: 1fr; }
}

/* =============================================================================
   NAVIGATION
   ============================================================================= */
.revo-nav {
    position:   sticky;
    top:        0;
    z-index:    200;
    height:     var(--nav-h);
    background: linear-gradient(180deg, rgba(8,8,13,0.98) 0%, rgba(16,16,26,0.95) 100%);
    border-bottom: 1px solid var(--revo-border);
    backdrop-filter: blur(8px);
}

.revo-nav__inner {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    height:          100%;
    max-width:       var(--max-w);
    margin:          0 auto;
    padding:         0 20px;
}

/* Wordmark / logo */
.revo-nav__brand {
    display:     flex;
    align-items: center;
    gap:         10px;
    text-decoration: none;
}
.revo-nav__wordmark {
    font-family:    var(--font-ui);
    font-size:      1.2rem;
    font-weight:    700;
    letter-spacing: 0.08em;
    color:          var(--revo-text);
    text-transform: uppercase;
}
.revo-nav__wordmark span { color: var(--revo-purple); }

/* Primary nav links */
.revo-nav__links {
    display:    flex;
    align-items: center;
    gap:         4px;
    list-style:  none;
}

.revo-nav__links a {
    display:        block;
    padding:        8px 14px;
    font-family:    var(--font-ui);
    font-size:      0.88rem;
    font-weight:    500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color:          var(--revo-text-dim);
    border-radius:  var(--radius);
    transition:     color 0.2s, background 0.2s;
}
.revo-nav__links a:hover,
.revo-nav__links .current-menu-item > a {
    color:      var(--revo-text);
    background: rgba(255,255,255,0.06);
}

/* Auth buttons (right side of nav) */
.revo-nav__auth {
    display:    flex;
    align-items: center;
    gap:        10px;
}

.revo-nav__auth .btn-ghost {
    font-family:    var(--font-ui);
    font-size:      0.85rem;
    font-weight:    500;
    letter-spacing: 0.04em;
    padding:        7px 16px;
    border:         1px solid var(--revo-border-lit);
    border-radius:  var(--radius);
    color:          var(--revo-text-dim);
    transition:     all 0.2s;
}
.revo-nav__auth .btn-ghost:hover {
    border-color: var(--revo-purple);
    color:        var(--revo-text);
}

.revo-nav__auth .btn-join {
    font-family:    var(--font-ui);
    font-size:      0.85rem;
    font-weight:    600;
    letter-spacing: 0.04em;
    padding:        7px 18px;
    background:     var(--revo-purple);
    border:         1px solid transparent;
    border-radius:  var(--radius);
    color:          #fff;
    transition:     background 0.2s, transform 0.1s;
}
.revo-nav__auth .btn-join:hover {
    background:  var(--revo-purple-dim);
    color:       #fff;
    transform:   translateY(-1px);
}

/* Mobile hamburger */
.revo-nav__toggle {
    display:    none;
    flex-direction: column;
    gap:        5px;
    cursor:     pointer;
    padding:    8px;
    background: none;
    border:     none;
}
.revo-nav__toggle span {
    display:       block;
    width:         22px;
    height:        2px;
    background:    var(--revo-text-dim);
    border-radius: 2px;
    transition:    all 0.25s;
}

@media (max-width: 820px) {
    .revo-nav__links,
    .revo-nav__auth  { display: none; }
    .revo-nav__toggle { display: flex; }

    .revo-nav.is-open .revo-nav__links,
    .revo-nav.is-open .revo-nav__auth {
        display:    flex;
        position:   absolute;
        top:        var(--nav-h);
        left:       0; right: 0;
        background: var(--revo-dark);
        border-bottom: 1px solid var(--revo-border);
        padding:    12px 20px 20px;
        z-index:    199;
    }
    .revo-nav.is-open .revo-nav__links {
        flex-direction: column;
        align-items:    flex-start;
        gap:            2px;
    }
    .revo-nav.is-open .revo-nav__auth {
        top: calc(var(--nav-h) + 220px);
        padding-top: 12px;
        border-top: 1px solid var(--revo-border);
    }
}

/* =============================================================================
   BUTTONS
   ============================================================================= */
.btn {
    display:        inline-flex;
    align-items:    center;
    gap:            8px;
    padding:        10px 22px;
    font-family:    var(--font-ui);
    font-size:      0.9rem;
    font-weight:    600;
    letter-spacing: 0.04em;
    border-radius:  var(--radius);
    border:         1px solid transparent;
    cursor:         pointer;
    transition:     all 0.2s;
    text-decoration: none;
    line-height:    1;
}
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }

.btn-primary {
    background: var(--revo-purple);
    color:      #fff;
}
.btn-primary:hover {
    background: var(--revo-purple-dim);
    color:      #fff;
}

.btn-outline {
    border-color: var(--revo-border-lit);
    color:        var(--revo-text-dim);
    background:   transparent;
}
.btn-outline:hover {
    border-color: var(--revo-purple);
    color:        var(--revo-text);
}

.btn-gold {
    background: var(--revo-gold);
    color:      #0a0a0a;
}
.btn-gold:hover { background: var(--revo-gold-dim); }

.btn-lg { padding: 14px 32px; font-size: 1rem; }
.btn-sm { padding: 7px 14px; font-size: 0.82rem; }

/* =============================================================================
   CARDS
   ============================================================================= */
.revo-card {
    background:    var(--revo-card);
    border:        1px solid var(--revo-border);
    border-radius: var(--radius-lg);
    padding:       24px;
    box-shadow:    var(--shadow-card);
}

.revo-card--hover {
    transition: border-color 0.2s, transform 0.2s, box-shadow 0.2s;
}
.revo-card--hover:hover {
    border-color: var(--revo-purple);
    transform:    translateY(-2px);
    box-shadow:   var(--shadow-glow);
}

/* =============================================================================
   SECTION HEADINGS
   ============================================================================= */
.revo-section-head {
    text-align:    center;
    margin-bottom: 40px;
}
.revo-section-head h2 {
    font-size:   1.9rem;
    margin-bottom: 10px;
}
.revo-section-head p {
    color:     var(--revo-text-dim);
    font-size: 1.05rem;
    max-width: 560px;
    margin:    0 auto;
}
.revo-rule {
    display:      block;
    width:        48px;
    height:       2px;
    background:   var(--revo-purple);
    margin:       14px auto 0;
    border-radius: 2px;
}

/* =============================================================================
   FOOTER
   ============================================================================= */
.revo-footer {
    background:    var(--revo-dark);
    border-top:    1px solid var(--revo-border);
    padding:       48px 0 24px;
    margin-top:    64px;
}

.revo-footer__grid {
    display:               grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap:                   var(--col-gap);
    margin-bottom:         40px;
}

/* When Footer Column 3 is enabled — 5 columns total */
.revo-footer__grid--5col {
    grid-template-columns: 2fr 1fr 1fr 1fr 1fr;
}

.revo-footer__brand p {
    color:       var(--revo-text-muted);
    font-size:   0.9rem;
    line-height: 1.6;
    margin-top:  10px;
}

.revo-footer__col h4 {
    font-family:    var(--font-ui);
    font-size:      0.78rem;
    font-weight:    700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color:          var(--revo-text-muted);
    margin-bottom:  14px;
}

.revo-footer__col ul {
    list-style: none;
    display:    flex;
    flex-direction: column;
    gap:        8px;
}

.revo-footer__col a {
    font-size: 0.9rem;
    color:     var(--revo-text-dim);
    transition: color 0.2s;
}
.revo-footer__col a:hover { color: var(--revo-text); }

.revo-footer__bottom {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    padding-top:     20px;
    border-top:      1px solid var(--revo-border);
    font-family:     var(--font-ui);
    font-size:       0.8rem;
    color:           var(--revo-text-muted);
}

@media (max-width: 820px) {
    .revo-footer__grid,
    .revo-footer__grid--5col { grid-template-columns: 1fr 1fr; }
    .revo-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 500px) {
    .revo-footer__grid,
    .revo-footer__grid--5col { grid-template-columns: 1fr; }
    .revo-footer__bottom { flex-direction: column; gap: 6px; text-align: center; }
}

/* =============================================================================
   HERO — front-page
   ============================================================================= */
.revo-hero {
    position:   relative;
    overflow:   hidden;
    padding:    100px 0 90px;
    text-align: center;
    background: linear-gradient(180deg,
        rgba(124,77,255,0.09) 0%,
        transparent 100%);
}

.revo-hero::before {
    content:    '';
    position:   absolute;
    inset:      0;
    background: radial-gradient(ellipse 80% 60% at 50% 0%,
        rgba(124,77,255,0.12) 0%,
        transparent 70%);
    pointer-events: none;
}

.revo-hero__tag {
    display:        inline-block;
    font-family:    var(--font-ui);
    font-size:      0.75rem;
    font-weight:    700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color:          var(--revo-purple);
    background:     var(--revo-purple-glow);
    border:         1px solid rgba(124,77,255,0.3);
    padding:        5px 14px;
    border-radius:  20px;
    margin-bottom:  24px;
}

.revo-hero h1 {
    font-size:     3.2rem;
    font-weight:   700;
    line-height:   1.1;
    margin-bottom: 20px;
    background:    linear-gradient(135deg, #fff 30%, var(--revo-text-dim) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.revo-hero__sub {
    font-size:    1.15rem;
    color:        var(--revo-text-dim);
    max-width:    540px;
    margin:       0 auto 36px;
    line-height:  1.65;
}

.revo-hero__cta {
    display:        flex;
    align-items:    center;
    justify-content: center;
    gap:            14px;
    flex-wrap:      wrap;
}

/* =============================================================================
   TIER CARD GRID — flex, max 3 per row, overflow row centred
   ============================================================================= */
.revo-tier-grid {
    display:         flex;
    flex-wrap:       wrap;
    justify-content: center;
    gap:             var(--col-gap);
}
.revo-tier-grid > .tier-card {
    flex:      1 1 260px;
    max-width: 320px;
}

/* =============================================================================
   FEATURE STRIP — stats below hero (2-col default, 3-col with event cell)
   ============================================================================= */
.revo-strip {
    display:       grid;
    grid-template-columns: repeat(2, 1fr);
    gap:           1px;
    background:    var(--revo-border);
    border-top:    1px solid var(--revo-border);
    border-bottom: 1px solid var(--revo-border);
    margin:        0 auto 72px;
    max-width:     640px;
}

/* 3-column layout when event cell is enabled */
.revo-strip--3col {
    grid-template-columns: repeat(3, 1fr);
    max-width: 960px;
}

.revo-strip__item {
    background:     var(--revo-surface);
    padding:        28px 24px;
    text-align:     center;
    display:        flex;
    flex-direction: column;
    align-items:    center;
    justify-content: center;
    gap:            4px;
}

/* Event cell uses a slightly highlighted style */
.revo-strip__item--event {
    background: rgba(200,148,58,0.07);
    border-left:  1px solid var(--revo-border);
    border-right: 1px solid var(--revo-border);
}

/* Event label — large, bold, gold */
.revo-strip__event-label {
    display:        block;
    font-family:    var(--font-ui);
    font-size:      1.15rem;
    font-weight:    800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color:          var(--revo-gold);
    margin-bottom:  12px;
    line-height:    1.2;
}

/* Flash animation */
@keyframes revo-flash {
    0%, 100% { opacity: 1; }
    50%       { opacity: 0.2; }
}
.revo-strip__item--flash .revo-strip__event-label {
    animation: revo-flash 1s ease-in-out infinite;
}

.revo-strip__num {
    display:     block;
    font-family: var(--font-ui);
    font-size:   2rem;
    font-weight: 700;
    color:       var(--revo-purple);
    line-height: 1;
    margin-bottom: 6px;
}

.revo-strip__label {
    display:        block;
    font-family:    var(--font-ui);
    font-size:      0.82rem;
    font-weight:    600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color:          var(--revo-text-muted);
}

@media (max-width: 600px) {
    .revo-hero h1 { font-size: 2.2rem; }
    .revo-strip,
    .revo-strip--3col { grid-template-columns: 1fr; }
}

/* =============================================================================
   ROOM CARDS — directory and preview
   ============================================================================= */
.room-card {
    display:        flex;
    flex-direction: column;
}

.room-card__cat {
    font-family:    var(--font-ui);
    font-size:      0.7rem;
    font-weight:    700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color:          var(--revo-purple);
    margin-bottom:  6px;
}

.room-card__name {
    font-size:     1.05rem;
    font-weight:   600;
    margin-bottom: 8px;
    font-family:   var(--font-ui);
    color:         var(--revo-text);
}

.room-card__tag {
    font-family:    var(--font-mono);
    font-size:      0.78rem;
    color:          var(--revo-text-muted);
    letter-spacing: 0.15em;
    margin-bottom:  12px;
}

.room-card__footer {
    margin-top:  auto;
    padding-top: 14px;
    border-top:  1px solid var(--revo-border);
    display:     flex;
    align-items: center;
    justify-content: space-between;
}

.room-card__status {
    display:     flex;
    align-items: center;
    gap:         6px;
    font-family: var(--font-ui);
    font-size:   0.78rem;
    color:       var(--revo-text-muted);
}

.room-card__dot {
    width:         7px;
    height:        7px;
    border-radius: 50%;
    background:    var(--revo-green);
    box-shadow:    0 0 6px var(--revo-green);
}

/* =============================================================================
   MEMBERSHIP TIER CARDS
   ============================================================================= */
.tier-card {
    position: relative;
}

.tier-card--featured {
    border-color: var(--revo-purple);
    box-shadow:   var(--shadow-glow);
}

.tier-card--featured::before {
    content:        'Most Popular';
    position:       absolute;
    top:            -12px;
    left:           50%;
    transform:      translateX(-50%);
    font-family:    var(--font-ui);
    font-size:      0.7rem;
    font-weight:    700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    background:     var(--revo-purple);
    color:          #fff;
    padding:        3px 12px;
    border-radius:  12px;
    white-space:    nowrap;
}

.tier-card__name {
    font-family:    var(--font-ui);
    font-size:      0.78rem;
    font-weight:    700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color:          var(--revo-text-muted);
    margin-bottom:  10px;
}

.tier-card__price {
    font-family:   var(--font-ui);
    font-size:     2.4rem;
    font-weight:   700;
    line-height:   1;
    color:         var(--revo-text);
    margin-bottom: 4px;
}

.tier-card__price sup {
    font-size:      1.2rem;
    vertical-align: top;
    margin-top:     6px;
}

.tier-card__per {
    font-family:   var(--font-ui);
    font-size:     0.82rem;
    color:         var(--revo-text-muted);
    margin-bottom: 24px;
}

.tier-card__features {
    list-style:    none;
    margin-bottom: 28px;
    display:       flex;
    flex-direction: column;
    gap:           10px;
}

.tier-card__features li {
    display:     flex;
    align-items: flex-start;
    gap:         10px;
    font-size:   0.92rem;
    color:       var(--revo-text-dim);
    font-family: var(--font-ui);
}

.tier-card__features li::before {
    content:     '✦';
    color:       var(--revo-purple);
    font-size:   0.7rem;
    flex-shrink: 0;
    margin-top:  4px;
}

/* =============================================================================
   AUTH FORMS (login / register)
   ============================================================================= */
.revo-auth {
    max-width:  440px;
    margin:     0 auto;
    padding:    48px 0;
}

.revo-auth__head {
    text-align:    center;
    margin-bottom: 32px;
}

.revo-auth__head h1 {
    font-size:     1.9rem;
    margin-bottom: 8px;
}

.revo-auth__head p {
    color:     var(--revo-text-dim);
    font-size: 0.95rem;
}

.revo-form-group {
    margin-bottom: 18px;
}

.revo-form-group label {
    display:       block;
    font-family:   var(--font-ui);
    font-size:     0.82rem;
    font-weight:   600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color:         var(--revo-text-dim);
    margin-bottom: 7px;
}

.revo-form-group input,
.revo-form-group select,
.revo-form-group textarea {
    width:         100%;
    padding:       10px 14px;
    background:    var(--revo-surface);
    border:        1px solid var(--revo-border);
    border-radius: var(--radius);
    color:         var(--revo-text);
    font-family:   var(--font-body);
    font-size:     0.95rem;
    transition:    border-color 0.2s;
    outline:       none;
}

.revo-form-group input:focus,
.revo-form-group select:focus,
.revo-form-group textarea:focus {
    border-color: var(--revo-purple);
    box-shadow:   0 0 0 3px rgba(124,77,255,0.15);
}

.revo-form-group input::placeholder { color: var(--revo-text-muted); }

.revo-auth__footer {
    text-align:  center;
    margin-top:  24px;
    font-family: var(--font-ui);
    font-size:   0.88rem;
    color:       var(--revo-text-muted);
}

/* =============================================================================
   NOTICES
   ============================================================================= */
.revo-notice {
    display:       flex;
    align-items:   flex-start;
    gap:           12px;
    padding:       14px 18px;
    border-radius: var(--radius);
    margin-bottom: 20px;
    font-family:   var(--font-ui);
    font-size:     0.9rem;
    border:        1px solid;
}

.revo-notice--info    { background: rgba(124,77,255,0.1);  border-color: rgba(124,77,255,0.3);  color: var(--revo-text); }
.revo-notice--success { background: rgba(61,186,110,0.1);  border-color: rgba(61,186,110,0.3);  color: var(--revo-text); }
.revo-notice--warning { background: rgba(212,136,42,0.12); border-color: rgba(212,136,42,0.35); color: var(--revo-text); }
.revo-notice--error   { background: rgba(204,51,51,0.12);  border-color: rgba(204,51,51,0.35);  color: var(--revo-text); }

/* =============================================================================
   UTILITY
   ============================================================================= */
.u-text-center { text-align: center; }
.u-text-muted  { color: var(--revo-text-muted); }
.u-font-ui     { font-family: var(--font-ui); }
.u-mt-sm       { margin-top: 16px; }
.u-mt-md       { margin-top: 32px; }
.u-mt-lg       { margin-top: 56px; }
.u-mb-sm       { margin-bottom: 16px; }
.u-mb-md       { margin-bottom: 32px; }
.u-mb-lg       { margin-bottom: 56px; }

/* WordPress alignment */
.alignleft   { float: left;  margin-right: 20px; }
.alignright  { float: right; margin-left:  20px; }
.aligncenter { display: block; margin: 0 auto; }
.wp-caption  { max-width: 100%; }

/* Screen-reader only */
.screen-reader-text {
    clip: rect(1px,1px,1px,1px);
    position: absolute !important;
    height: 1px; width: 1px;
    overflow: hidden;
}

/* =============================================================================
   ADMIN TOOLS DASHBOARD PANEL
   ============================================================================= */
.revo-dashboard__admin-tools {
    margin-bottom: 36px;
    border: 1px solid rgba(0,180,180,0.18);
    border-radius: 6px;
    padding: 20px 22px;
    background: rgba(0,180,180,0.04);
}
.revo-dashboard__section-heading--admin {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 0;
    margin-bottom: 16px;
    color: var(--revo-accent, #00cccc);
    font-size: 13px;
    letter-spacing: 2px;
    text-transform: uppercase;
}
.revo-admin-badge {
    background: var(--revo-accent, #00cccc);
    color: #000;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: 2px;
    padding: 2px 7px;
    border-radius: 2px;
}
.revo-admin-tools-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 12px;
}
.revo-admin-tool-card {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    background: rgba(0,0,0,0.3);
    border: 1px solid rgba(0,180,180,0.15);
    border-radius: 4px;
    text-decoration: none;
    transition: border-color .15s, background .15s;
}
.revo-admin-tool-card:hover {
    border-color: var(--revo-accent, #00cccc);
    background: rgba(0,180,180,0.08);
}
.revo-admin-tool-icon {
    font-size: 20px;
    color: var(--revo-accent, #00cccc);
    line-height: 1;
}
.revo-admin-tool-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--revo-text, #ccc);
    letter-spacing: 0.5px;
}
.revo-admin-tool-desc {
    font-size: 10px;
    color: var(--revo-text-muted, #666);
    line-height: 1.4;
}

/* Form table shared by AdminRooms / AdminRealms shortcodes */
.revo-admin-rooms .revo-form-table th,
.revo-admin-section .revo-form-table th {
    width: 160px;
    vertical-align: top;
    padding: 8px 12px 8px 0;
    font-size: 12px;
    color: var(--revo-text-muted, #888);
    font-weight: normal;
}
.revo-admin-rooms .revo-form-table td,
.revo-admin-section .revo-form-table td {
    padding: 6px 0;
}
.revo-admin-section {
    margin-bottom: 28px;
}
.revo-admin-section h2 {
    font-size: 14px;
    letter-spacing: 1px;
    margin-bottom: 12px;
    border-bottom: 1px solid rgba(255,255,255,0.07);
    padding-bottom: 8px;
}
.revo-admin-section--collapsible h2 {
    cursor: pointer;
    user-select: none;
}
.revo-admin-section--collapsible h2:hover { color: var(--revo-accent, #00cccc); }
.revo-admin-table th { font-size: 11px; letter-spacing:1px; text-transform:uppercase; }
.revo-admin-table .revo-actions-cell { white-space: nowrap; }
.revo-count { font-size:11px; color:var(--revo-text-muted,#666); font-weight:normal; margin-left:6px; }
.revo-badge { font-size:9px; letter-spacing:1px; padding:2px 6px; border-radius:2px; text-transform:uppercase; }
.revo-badge--green  { background:rgba(61,186,110,0.15); color:#3dba6e; border:1px solid rgba(61,186,110,0.3); }
.revo-badge--grey   { background:rgba(100,100,100,0.15); color:#888; border:1px solid #333; }
.revo-badge--amber  { background:rgba(212,136,42,0.15); color:#d4882a; border:1px solid rgba(212,136,42,0.3); }

/* ─────────────────────────────────────────────────────────────────────────────
   MEMBER DASHBOARD  (/portal/my-portal/)  — injected patch
   ───────────────────────────────────────────────────────────────────────────── */
.revo-dashboard {
    padding-top: 32px;
}
.revo-dashboard__wrap {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 20px 80px;
}

/* Welcome bar */
.revo-dashboard__welcome {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 32px;
    flex-wrap: wrap;
}
.revo-dashboard__welcome h1 {
    font-size: 1.75rem;
    margin-bottom: 4px;
}
.revo-dashboard__welcome h1 span { color: #7c6af7; }
.revo-dashboard__joined { color: #7a82a0; font-size: 0.875rem; }

/* Tier badge */
.revo-tier-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 4px;
    white-space: nowrap;
}
.revo-tier-badge--free   { background: rgba(100,100,100,0.2); color: #999; border: 1px solid #444; }
.revo-tier-badge--patron { background: rgba(240,180,41,0.15); color: #f0b429; border: 1px solid rgba(240,180,41,0.4); }
.revo-tier-badge--member { background: rgba(46,204,113,0.12); color: #2ecc71; border: 1px solid rgba(46,204,113,0.35); }

/* Card grid — 2 columns, membership card full width */
.revo-dashboard__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 24px;
}
.revo-dashboard__card--membership { grid-column: 1 / -1; }

@media (max-width: 600px) {
    .revo-dashboard__grid { grid-template-columns: 1fr; }
    .revo-dashboard__card--membership { grid-column: auto; }
}

.revo-dashboard__card-title {
    font-size: 0.85rem;
    font-weight: 700;
    color: #7a82a0;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    margin-bottom: 14px;
}

/* Tier status */
.revo-dashboard__tier-status { font-size: 1.1rem; font-weight: 700; margin-bottom: 8px; }
.revo-dashboard__tier-status--member { color: #2ecc71; }
.revo-dashboard__tier-status--patron { color: #f0b429; }
.revo-dashboard__tier-status--free   { color: #7a82a0; }
.revo-dashboard__tier-perks { font-size: 0.875rem; color: #7a82a0; line-height: 1.6; margin-bottom: 18px; }
.revo-dashboard__upgrade-btn { font-size: 0.875rem; }

/* Link lists (Quick Access, Account) */
.revo-dashboard__links { display: flex; flex-direction: column; gap: 4px; }
.revo-dashboard__link {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 11px 12px;
    border-radius: 6px;
    color: #ccc;
    text-decoration: none;
    transition: background 0.18s, color 0.18s;
    border: 1px solid transparent;
}
.revo-dashboard__link:hover {
    background: rgba(255,255,255,0.06);
    border-color: #2a2f42;
    color: #fff;
    text-decoration: none;
}
.revo-dashboard__link--danger:hover {
    background: rgba(231,76,60,0.1);
    border-color: rgba(231,76,60,0.3);
}
.revo-dashboard__link-icon { font-size: 1.2rem; flex-shrink: 0; width: 26px; text-align: center; }
.revo-dashboard__link strong { display: block; font-size: 0.88rem; font-weight: 600; color: #ddd; line-height: 1.3; }
.revo-dashboard__link small  { display: block; font-size: 0.76rem; color: #7a82a0; line-height: 1.3; margin-top: 1px; }
