/* ==========================================================
   AcolheBem — Premium Design System
   ========================================================== */

:root {
    --emerald:    #2f6f64;
    --emerald-d:  #1a4d44;
    --emerald-l:  #e8f5f1;
    --gold:       #e9b384;
    --gold-l:     #fdf4eb;

    --fem:        #d6336c;
    --fem-soft:   #fff0f6;
    --fem-glow:   rgba(214,51,108,.15);
    --masc:       #1971c2;
    --masc-soft:  #e7f5ff;
    --masc-glow:  rgba(25,113,194,.15);

    --ink:        #1a1a2e;
    --ink-70:     #3d3d56;
    --ink-60:     #5c5c78;
    --ink-40:     #8888a0;
    --ink-20:     #c5c5d3;
    --ink-10:     #e8e8f0;
    --ink-05:     #f4f4f8;
    --white:      #ffffff;

    --wpp:        #25d366;
    --wpp-d:      #128c7e;

    --glass:      rgba(255,255,255,.72);
    --glass-border: rgba(255,255,255,.35);
    --shadow-1:   0 1px 2px rgba(0,0,0,.05);
    --shadow-2:   0 4px 16px rgba(0,0,0,.08);
    --shadow-3:   0 12px 40px rgba(0,0,0,.12);
    --shadow-4:   0 24px 80px rgba(0,0,0,.16);

    --r-sm: 10px;
    --r-md: 16px;
    --r-lg: 24px;
    --r-xl: 32px;
    --r-full: 50%;

    --f-display: 'Playfair Display', Georgia, serif;
    --ff-heading:'Playfair Display', Georgia, serif;
    --f-body:    'DM Sans', -apple-system, BlinkMacSystemFont, sans-serif;

    --ease-out:  cubic-bezier(.23,1,.32,1);
    --ease-spring: cubic-bezier(.34,1.56,.64,1);
    --dur-fast:  .2s;
    --dur-med:   .45s;
    --dur-slow:  .7s;
    --dur-medium: .35s;
}

/* === DARK MODE === */
[data-theme="dark"] {
    --ink:        #e8e8f0;
    --ink-70:     #c5c5d3;
    --ink-60:     #a0a0b8;
    --ink-40:     #8888a0;
    --ink-20:     #555568;
    --ink-10:     #2d2d42;
    --ink-05:     #1f1f30;
    --white:      #16162a;
    --emerald-l:  rgba(47,111,100,.15);
    --glass:      rgba(22,22,42,.72);
    --glass-border: rgba(255,255,255,.08);
    --shadow-1:   0 1px 2px rgba(0,0,0,.2);
    --shadow-2:   0 4px 16px rgba(0,0,0,.3);
    --shadow-3:   0 12px 40px rgba(0,0,0,.4);
}
[data-theme="dark"] body{background:#0d0d1a}
[data-theme="dark"] .topbar{background:rgba(22,22,42,.92);border-color:var(--ink-10)}
[data-theme="dark"] .feed-post{background:var(--white);border-color:var(--ink-10)}
[data-theme="dark"] .modal-card{background:#1a1a2e;border-color:var(--ink-10)}
[data-theme="dark"] .auth-input{background:var(--ink-05);border-color:var(--ink-10);color:var(--ink)}
[data-theme="dark"] img{opacity:.92}

/* === RESET === */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--f-body);color:var(--ink);background:#f8f8fc;overflow-x:hidden;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
button,a{touch-action:manipulation}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}
a{color:inherit;text-decoration:none}
img,svg{display:block}
#app{min-height:100vh;min-height:100dvh;position:relative}

/* === FOCUS-VISIBLE ACCESSIBILITY === */
:focus-visible{
    outline:2px solid var(--emerald);outline-offset:2px;
}
button:focus:not(:focus-visible),
a:focus:not(:focus-visible),
input:focus:not(:focus-visible),
textarea:focus:not(:focus-visible),
select:focus:not(:focus-visible){outline:none}
.skip-link{
    position:absolute;top:-100%;left:16px;z-index:10001;
    background:var(--emerald);color:white;padding:8px 16px;border-radius:4px;
    font-size:.85rem;font-weight:600;
}
.skip-link:focus{top:8px}

/* === PWA INSTALL BANNER === */
.pwa-install-banner{
    position:fixed;bottom:0;left:0;right:0;z-index:10000;
    background:var(--white);border-top:1px solid var(--ink-10);
    box-shadow:0 -4px 20px rgba(0,0,0,.1);
    padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px));
    animation:fadeUp .4s var(--ease-out);
}
.pwa-install-content{display:flex;align-items:center;gap:12px;max-width:600px;margin:0 auto}
.pwa-install-icon{width:48px;height:48px;border-radius:12px;flex-shrink:0}
.pwa-install-text{flex:1;display:flex;flex-direction:column;gap:2px}
.pwa-install-text strong{font-size:.95rem;color:var(--ink)}
.pwa-install-text span{font-size:.78rem;color:var(--ink-40)}
.pwa-install-btn{
    background:var(--emerald);color:var(--white);border:none;
    padding:10px 20px;border-radius:var(--r-sm);font-size:.85rem;font-weight:600;
    white-space:nowrap;flex-shrink:0;min-height:44px;
}
.pwa-install-btn:active{background:var(--emerald-d)}
.pwa-install-close{
    font-size:1.5rem;color:var(--ink-40);background:none;border:none;
    width:36px;height:36px;display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
}

/* === PARTICLE CANVAS === */
#particleCanvas{
    position:fixed;inset:0;z-index:0;pointer-events:none;
    width:100%;height:100%;
}

/* ==========================================================
   WELCOME MODAL
   ========================================================== */
.modal-overlay{
    position:fixed;inset:0;z-index:1000;
    display:none;justify-content:center;align-items:center;
    background:rgba(26,26,46,.55);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    padding:24px;
    opacity:0;
    transition:opacity .4s var(--ease-out);
}
.modal-overlay.active{display:flex;opacity:1}
.modal-overlay.closing{opacity:0}

.modal-card{
    max-width:440px;width:100%;
    background:var(--white);
    border-radius:var(--r-xl);
    padding:48px 36px 36px;
    text-align:center;
    box-shadow:var(--shadow-4), 0 0 120px rgba(47,111,100,.12);
    animation:modalIn .5s var(--ease-spring) both;
    position:relative;
    overflow:hidden;
}
.modal-card::before{
    content:'';position:absolute;top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg, var(--emerald), var(--gold), var(--fem), var(--masc));
}

.modal-badge{
    display:inline-block;
    padding:5px 16px;border-radius:100px;
    background:var(--emerald-l);color:var(--emerald);
    font-size:.7rem;font-weight:600;
    letter-spacing:1.5px;text-transform:uppercase;
    margin-bottom:20px;
}
.modal-title{
    font-family:var(--f-display);
    font-size:clamp(2.6rem,7vw,3.8rem);
    font-weight:800;line-height:1;
    margin-bottom:18px;
}
.modal-title-line{display:block;color:var(--ink)}
.modal-title-accent{
    color:var(--emerald);position:relative;
}
.modal-title-accent::after{
    content:'';position:absolute;bottom:2px;left:0;right:0;
    height:7px;background:var(--gold);opacity:.35;border-radius:4px;
    transform:skewX(-8deg);
}
.modal-desc{
    font-size:1rem;line-height:1.7;color:var(--ink-70);
    max-width:360px;margin:0 auto 24px;
}
.modal-question{
    font-size:.8rem;font-weight:600;color:var(--ink-40);
    text-transform:uppercase;letter-spacing:1.2px;
    margin-bottom:16px;
}
.modal-gender-btns{
    display:flex;gap:14px;justify-content:center;
}
.modal-gender-btn{
    display:flex;flex-direction:column;align-items:center;gap:8px;
    width:140px;padding:22px 16px 18px;
    border-radius:var(--r-lg);
    background:var(--ink-05);
    border:2px solid transparent;
    transition:all var(--dur-med) var(--ease-spring);
}
.modal-gender-btn svg{width:36px;height:36px;color:var(--ink-40);transition:color var(--dur-fast)}
.modal-gender-btn span{font-size:.9rem;font-weight:600;color:var(--ink-70)}
.modal-gender-btn:hover{
    transform:translateY(-4px);
    box-shadow:var(--shadow-2);
}
.modal-gender-btn[data-gender="women"]:hover,
.modal-gender-btn[data-gender="women"].selected{
    border-color:var(--fem);background:var(--fem-soft);
}
.modal-gender-btn[data-gender="women"]:hover svg,
.modal-gender-btn[data-gender="women"].selected svg{color:var(--fem)}
.modal-gender-btn[data-gender="women"]:hover span,
.modal-gender-btn[data-gender="women"].selected span{color:var(--fem)}
.modal-gender-btn[data-gender="men"]:hover,
.modal-gender-btn[data-gender="men"].selected{
    border-color:var(--masc);background:var(--masc-soft);
}
.modal-gender-btn[data-gender="men"]:hover svg,
.modal-gender-btn[data-gender="men"].selected svg{color:var(--masc)}
.modal-gender-btn[data-gender="men"]:hover span,
.modal-gender-btn[data-gender="men"].selected span{color:var(--masc)}
.modal-gender-btn:active{transform:translateY(-2px) scale(.97)}
.modal-skip-btn{
    display:block;margin:16px auto 0;
    padding:8px 20px;border-radius:100px;
    font-size:.82rem;font-weight:500;
    color:var(--ink-40);
    background:none;border:1px solid var(--ink-10);
    transition:all var(--dur-fast);
}
.modal-skip-btn:hover{
    color:var(--ink-70);border-color:var(--ink-20);
    background:var(--ink-05);
}

.modal-footer{
    margin-top:24px;
    display:flex;align-items:center;justify-content:center;gap:5px;
    font-size:.72rem;color:var(--ink-40);
}
.modal-footer svg{color:var(--ink-20)}

@keyframes modalIn{
    from{opacity:0;transform:translateY(30px) scale(.95)}
    to{opacity:1;transform:translateY(0) scale(1)}
}

/* ==========================================================
   MAIN SCREEN
   ========================================================== */
.main-screen{
    position:relative;z-index:1;
    min-height:100vh;min-height:100dvh;
    display:flex;flex-direction:column;
    background:var(--ink-05);
}
/* Theme backgrounds */
.main-screen.theme-women{background:linear-gradient(180deg,var(--fem-soft) 0%,var(--ink-05) 360px)}
.main-screen.theme-men{background:linear-gradient(180deg,var(--masc-soft) 0%,var(--ink-05) 360px)}

/* ==========================================================
   TOP BAR WITH TABS
   ========================================================== */
.topbar{
    position:sticky;top:0;z-index:100;
    display:flex;align-items:center;gap:8px;
    padding:0 16px;
    height:60px;
    background:var(--glass);
    backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    border-bottom:1px solid var(--glass-border);
}
.topbar-brand{display:flex;align-items:center}
.topbar-logo{
    font-family:var(--f-display);
    font-size:1.2rem;font-weight:800;
    color:var(--emerald);
    white-space:nowrap;
}

/* Tabs */
.topbar-tabs{
    display:flex;gap:4px;
    margin-left:auto;margin-right:auto;
    background:var(--ink-05);
    border-radius:var(--r-sm);
    padding:3px;
}
.tab-btn{
    display:flex;align-items:center;gap:7px;
    padding:8px 20px;border-radius:8px;
    font-size:.85rem;font-weight:600;
    color:var(--ink-40);
    transition:all var(--dur-fast) var(--ease-out);
    position:relative;
}
.tab-btn .tab-icon{width:18px;height:18px;flex-shrink:0}
.tab-btn:hover{color:var(--ink-70)}
.tab-btn.active{
    background:var(--white);
    color:var(--ink);
    box-shadow:var(--shadow-1);
}
.tab-btn[data-tab="principal"].active{color:var(--emerald)}

/* Tab labels: full by default, short hidden */
.tab-label-short{display:none}
.tab-label-full{display:inline}

.topbar-btn{
    width:40px;height:40px;border-radius:var(--r-sm);
    display:flex;align-items:center;justify-content:center;
    transition:background var(--dur-fast);
    flex-shrink:0;
}
.topbar-btn svg{width:22px;height:22px}
.topbar-btn:hover{background:var(--ink-10)}

/* ==========================================================
   MAIN BODY
   ========================================================== */
.main-body{
    flex:1;display:flex;flex-direction:column;
}

/* ==========================================================
   D3 HERO VISUALIZATION
   ========================================================== */
.viz-wrap{
    padding:16px 16px 0;
    display:flex;justify-content:center;
}
#heroSVG{
    width:100%;max-width:1100px;
    height:600px;
    border-radius:var(--r-lg);
    overflow:visible;
}

/* ==========================================================
   FLOATING INDEX
   ========================================================== */
.floating-index{
    position:fixed;right:-340px;top:0;bottom:0;
    width:320px;max-width:88vw;z-index:200;
    background:var(--glass);
    backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);
    border-left:1px solid var(--glass-border);
    box-shadow:var(--shadow-4);
    display:flex;flex-direction:column;
    transition:right var(--dur-med) var(--ease-out);
}
.floating-index.open{right:0}
.fi-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:20px 20px 16px;font-weight:600;font-size:1rem;
    border-bottom:1px solid var(--ink-10);
}
.fi-close{
    width:32px;height:32px;border-radius:var(--r-full);
    display:flex;align-items:center;justify-content:center;
    font-size:1.3rem;color:var(--ink-40);
    transition:background var(--dur-fast);
}
.fi-close:hover{background:var(--ink-10)}
.fi-list{list-style:none;flex:1;overflow-y:auto;padding:12px}
.fi-item{
    display:flex;align-items:center;gap:14px;
    padding:14px 16px;border-radius:var(--r-md);
    cursor:pointer;margin-bottom:4px;
    transition:all var(--dur-fast);
}
.fi-item:hover{background:var(--ink-05)}
.fi-num{
    width:36px;height:36px;border-radius:var(--r-full);
    display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:.85rem;color:var(--white);flex-shrink:0;
}
.fi-label{flex:1;min-width:0}
.fi-title{font-size:.9rem;font-weight:600;line-height:1.3}
.fi-count{font-size:.72rem;color:var(--ink-40)}
.fi-separator{padding:4px 16px}
.fi-separator hr{border:none;border-top:1px solid var(--ink-10);margin:0}
.fi-backdrop{
    position:fixed;inset:0;z-index:199;
    background:rgba(0,0,0,.25);backdrop-filter:blur(2px);
    display:none;
}
.fi-backdrop.active{display:block;animation:fadeIn .25s var(--ease-out)}

/* ==========================================================
   TOPIC CARDS
   ========================================================== */
.cards-area{
    max-width:720px;width:100%;margin:0 auto;
    padding:28px 16px 48px;
}
.section-label{
    font-family:var(--f-display);
    font-size:1.15rem;font-weight:700;
    color:var(--ink);
    margin:8px 0 16px;
    padding-bottom:8px;
    border-bottom:2px solid var(--ink-10);
}

.topic-card{
    background:var(--white);
    border-radius:var(--r-lg);
    margin-bottom:20px;
    border:1px solid var(--ink-10);
    overflow:hidden;
    opacity:0;transform:translateY(40px);
    transition:opacity .55s var(--ease-out),
               transform .55s var(--ease-out),
               box-shadow var(--dur-med) var(--ease-out),
               border-color var(--dur-med);
}
.topic-card.visible{opacity:1;transform:translateY(0)}
.topic-card:hover{box-shadow:var(--shadow-2)}

.topic-card:nth-child(1){transition-delay:.05s}
.topic-card:nth-child(2){transition-delay:.12s}
.topic-card:nth-child(3){transition-delay:.19s}
.topic-card:nth-child(4){transition-delay:.26s}
.topic-card:nth-child(5){transition-delay:.33s}

.tc-header{
    display:flex;align-items:center;gap:14px;
    padding:20px 22px;
    cursor:pointer;
    transition:background var(--dur-fast);
}
.tc-header:hover{background:var(--ink-05)}

.tc-num{
    width:46px;height:46px;border-radius:14px;
    display:flex;align-items:center;justify-content:center;
    font-weight:800;font-size:1.15rem;color:var(--white);
    flex-shrink:0;position:relative;
    box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.tc-emoji{font-size:1.6rem;flex-shrink:0}
.tc-info{flex:1;min-width:0}
.tc-title{
    font-family:var(--f-display);
    font-size:1.08rem;font-weight:700;
    line-height:1.3;margin-bottom:2px;
}
.tc-desc{font-size:.82rem;color:var(--ink-40)}
.tc-chevron{
    width:28px;height:28px;
    display:flex;align-items:center;justify-content:center;
    color:var(--ink-20);
    transition:transform var(--dur-med) var(--ease-spring),color var(--dur-fast);
    flex-shrink:0;
}
.tc-chevron svg{width:18px;height:18px}
.topic-card.open .tc-chevron{transform:rotate(180deg);color:var(--ink-70)}

.tc-body{
    max-height:0;overflow:hidden;
    transition:max-height .55s var(--ease-out);
}
.topic-card.open .tc-body{max-height:600px}
.tc-body-inner{padding:0 22px 22px}

.tc-themes-label{
    font-size:.8rem;font-weight:600;color:var(--ink-40);
    text-transform:uppercase;letter-spacing:.8px;
    margin-bottom:12px;
}

/* Subtopic Tags */
.sub-tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}
.sub-tag{
    display:inline-flex;align-items:center;gap:6px;
    padding:8px 14px;border-radius:100px;
    background:var(--ink-05);border:1px solid var(--ink-10);
    font-size:.85rem;font-weight:500;color:var(--ink-70);
    transition:all var(--dur-fast);
}
.sub-tag:hover{
    background:var(--white);border-color:var(--ink-20);
    box-shadow:var(--shadow-1);transform:translateY(-1px);
}
.sub-tag-emoji{font-size:1rem}

/* WhatsApp Button */
.wpp-btn-big{
    display:flex;align-items:center;justify-content:center;gap:10px;
    width:100%;padding:16px 24px;border-radius:var(--r-md);
    background:var(--wpp);color:var(--white);
    font-size:1rem;font-weight:700;text-decoration:none;
    transition:all var(--dur-fast);
    box-shadow:0 4px 16px rgba(37,211,102,.3);
}
.wpp-btn-big svg{width:22px;height:22px;fill:currentColor;flex-shrink:0}
.wpp-btn-big:hover{
    background:var(--wpp-d);transform:translateY(-3px);
    box-shadow:0 8px 28px rgba(37,211,102,.4);
}
.wpp-btn-big:active{transform:translateY(-1px)}

/* Community Enter Button (inside topic cards) */
.community-enter-btn{
    display:flex;align-items:center;justify-content:center;gap:10px;
    width:100%;padding:14px 24px;border-radius:var(--r-md);
    background:var(--btn-color, var(--emerald));color:var(--white);
    font-size:.95rem;font-weight:700;
    border:none;cursor:pointer;
    transition:all var(--dur-fast);
    box-shadow:0 4px 16px rgba(47,111,100,.25);
    margin-top:12px;
}
.community-enter-btn svg{width:20px;height:20px;flex-shrink:0}
.community-enter-btn:hover{
    filter:brightness(1.1);transform:translateY(-2px);
    box-shadow:0 6px 20px rgba(47,111,100,.35);
}
.community-enter-btn:active{transform:translateY(0)}

/* ==========================================================
   GENERAL GROUP CARD
   ========================================================== */
.general-card{
    background:linear-gradient(135deg,#e8f5f1 0%,#f0faf7 100%);
    border:2px solid var(--emerald);
    border-radius:var(--r-lg);
    padding:32px 24px;text-align:center;
    margin-bottom:20px;
}
.gc-badge{font-size:2.5rem;margin-bottom:12px}
.gc-card-title{
    font-family:var(--f-display);font-size:1.3rem;font-weight:700;
    color:var(--emerald-d);margin-bottom:6px;
}
.gc-card-desc{font-size:.9rem;color:var(--ink-40);margin-bottom:20px}
.wpp-btn-general{max-width:360px;margin:0 auto}
.movimentar-link{border-color:var(--ink-10)}
.movimentar-link .pc-url{color:var(--ink-40);font-size:.72rem;line-height:1.4}
.movimentar-link:hover{border-color:#1565c0}
.movimentar-link:hover .pc-arrow{background:#e3f2fd}
.movimentar-link:hover .pc-arrow svg{color:#1565c0}

/* ==========================================================
   PARTNER LINK CARD
   ========================================================== */
.partner-card{
    display:flex;align-items:center;gap:14px;
    background:var(--white);border:1.5px solid var(--ink-10);
    border-radius:var(--r-lg);padding:20px 22px;
    margin-bottom:20px;text-decoration:none;color:var(--ink);
    transition:all var(--dur-fast);
}
.partner-card:hover{
    border-color:var(--emerald);box-shadow:var(--shadow-2);
    transform:translateY(-2px);
}
.pc-icon{font-size:2rem;flex-shrink:0}
.pc-info{flex:1;min-width:0}
.pc-title{display:block;font-size:.95rem;font-weight:600;margin-bottom:2px}
.pc-url{display:block;font-size:.78rem;color:var(--emerald)}
.pc-arrow{
    width:36px;height:36px;border-radius:var(--r-full);
    background:var(--emerald-l);
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;transition:all var(--dur-med) var(--ease-spring);
}
.pc-arrow svg{width:18px;height:18px;color:var(--emerald)}
.partner-card:hover .pc-arrow{background:var(--emerald);transform:translate(2px,-2px)}
.partner-card:hover .pc-arrow svg{color:var(--white)}

/* ==========================================================
   PANEL MINI FOOTER
   ========================================================== */
.panel-footer{
    text-align:center;padding:20px 8px 8px;
    font-size:.82rem;color:var(--ink-40);
    display:flex;align-items:center;justify-content:center;gap:6px;
}

/* ==========================================================
   GROUPS FOOTER
   ========================================================== */
.groups-footer{
    margin-top:auto;padding:40px 20px;
    text-align:center;color:var(--ink-40);
    border-top:1px solid var(--ink-10);
}
.gf-inner{display:flex;flex-direction:column;align-items:center;gap:2px}
.gf-brand{
    font-family:var(--f-display);
    font-size:1.1rem;font-weight:700;
    color:var(--emerald);
    margin:0;
}
.gf-tagline{
    font-size:.85rem;font-weight:500;
    color:var(--emerald);opacity:.75;
    margin:0;
}

/* ==========================================================
   KEYFRAMES
   ========================================================== */
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.12)}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes pulseRing{0%{transform:scale(1);opacity:.5}100%{transform:scale(2.5);opacity:0}}
@keyframes shimmer{0%{background-position:-200% 0}100%{background-position:200% 0}}

/* ==========================================================
   MOBILE
   ========================================================== */
@media(max-width:600px){
    .topbar{padding:0 8px;gap:2px;height:auto;min-height:52px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
    .topbar-brand{order:0}
    .topbar-logo{font-size:.95rem}
    .topbar-tabs{order:2;width:100%;margin:4px 0 0;justify-content:center;gap:2px;padding:2px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
    .topbar-tabs::-webkit-scrollbar{display:none}
    .topbar-right{order:1;margin-left:auto}
    .tab-btn{padding:5px 10px;font-size:.62rem;gap:2px;white-space:nowrap;flex-shrink:0;flex-direction:column;align-items:center;line-height:1;min-height:44px;justify-content:center}
    .tab-btn .tab-icon{width:16px;height:16px}
    .tab-label-full{display:none !important}
    .tab-label-short{display:inline !important;font-size:.6rem;font-weight:600;letter-spacing:-.01em}
    #heroSVG{height:380px}
    .tc-header{padding:16px}
    .tc-body-inner{padding:0 16px 16px}
    .sub-tags{gap:6px}
    .sub-tag{padding:6px 10px;font-size:.8rem}
    .floating-index{width:280px}
    .modal-card{padding:40px 24px 28px}
    .modal-title{font-size:clamp(2.2rem,8vw,3rem)}
    .modal-desc{font-size:.92rem}
    .modal-enter-btn{padding:12px 28px;font-size:.92rem}
}

/* Tablet: show labels but compact */
@media(min-width:601px) and (max-width:768px){
    .topbar{padding:0 10px;gap:4px}
    .topbar-logo{font-size:1rem}
    .tab-btn{padding:7px 12px;font-size:.76rem;gap:4px}
    .tab-btn .tab-icon{width:15px;height:15px}
}

/* ==========================================================
   DESKTOP — SINGLE SCREEN, NO SCROLL
   ========================================================== */
@media(min-width:1024px){
    .main-screen{height:100vh;height:100dvh;overflow:hidden}

    .main-body{
        flex:1;
        display:grid;
        grid-template-columns:1fr 460px;
        min-height:0;
    }

    .viz-wrap{
        grid-column:1;grid-row:1;
        padding:20px;
        display:flex;align-items:center;justify-content:center;
        overflow:hidden;min-height:0;
    }
    #heroSVG{width:100%;height:100%;max-width:none}

    .cards-area{
        grid-column:2;grid-row:1;
        overflow-y:auto;
        border-left:1px solid var(--ink-10);
        padding:20px 18px;
        background:var(--white);
        max-width:none;
    }
    .topic-card{margin-bottom:14px}
    .tc-header{padding:16px 18px}
    .tc-body-inner{padding:0 18px 16px}
    .tc-num{width:40px;height:40px;border-radius:12px;font-size:1rem}
    .tc-emoji{font-size:1.3rem}
    .tc-title{font-size:1rem}
    .tc-desc{font-size:.78rem}
    .sub-tags{gap:6px}
    .sub-tag{padding:6px 12px;font-size:.82rem}
    .wpp-btn-big{padding:14px 20px;font-size:.92rem}
    .general-card{padding:24px 18px}
    .gc-badge{font-size:2rem;margin-bottom:8px}
    .gc-card-title{font-size:1.1rem}
    .gc-card-desc{font-size:.82rem;margin-bottom:14px}
    .partner-card{padding:16px 18px}

    .groups-footer{display:none}

    /* Community and Psicologos sections need to scroll inside the locked viewport */
    .community-section,.psicologos-section,.membros-section,.atividade-section{
        flex:1;overflow-y:auto;max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);
    }
}

/* Scrollbar */
::-webkit-scrollbar{width:5px}
::-webkit-scrollbar-thumb{background:var(--ink-20);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--ink-40)}

/* ==========================================================
   TOPBAR — AUTH AREA
   ========================================================== */
.topbar-right{
    display:flex;align-items:center;gap:4px;flex-shrink:0;
}
.topbar-login-btn{
    padding:6px 14px;border-radius:100px;
    background:var(--emerald);color:var(--white);
    font-size:.8rem;font-weight:600;
    display:flex;align-items:center;gap:6px;
    width:auto;height:auto;
    transition:background var(--dur-fast);
}
.topbar-login-btn svg{width:18px;height:18px}
.topbar-login-btn:hover{background:var(--emerald-d)}
.topbar-user{display:flex;align-items:center;gap:4px}
.topbar-avatar-btn{
    width:36px;height:36px;border-radius:var(--r-full);
    overflow:hidden;border:2px solid var(--emerald);
    display:flex;align-items:center;justify-content:center;
    background:var(--emerald-l);cursor:pointer;
    transition:box-shadow var(--dur-fast);
}
.topbar-avatar-btn:hover{box-shadow:0 0 0 3px var(--emerald-l)}
.topbar-avatar-img{width:100%;height:100%;object-fit:cover;display:none}
.topbar-avatar-initial{
    font-size:.9rem;font-weight:700;color:var(--emerald);
    text-transform:uppercase;
}
.topbar-logout-btn svg{width:18px;height:18px;color:var(--ink-40)}
.topbar-logout-btn:hover svg{color:var(--fem)}

/* Community tab */
.tab-btn[data-tab="community"].active{color:var(--emerald)}

/* ==========================================================
   AUTH MODAL OVERLAY
   ========================================================== */
.auth-overlay{
    position:fixed;inset:0;z-index:1000;
    display:none;justify-content:center;align-items:center;
    background:rgba(26,26,46,.55);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    padding:24px;
    animation:fadeIn .25s var(--ease-out);
}
.auth-overlay.active{display:flex}

.auth-card{
    max-width:440px;width:100%;
    background:var(--white);
    border-radius:var(--r-xl);
    padding:36px 32px 32px;
    box-shadow:var(--shadow-4);
    position:relative;
    max-height:90vh;max-height:90dvh;overflow-y:auto;overscroll-behavior:contain;
    animation:modalIn .4s var(--ease-spring) both;
}
.auth-close{
    position:absolute;top:14px;right:14px;
    width:32px;height:32px;border-radius:var(--r-full);
    display:flex;align-items:center;justify-content:center;
    font-size:1.4rem;color:var(--ink-40);
    transition:background var(--dur-fast);z-index:1;
}
.auth-close:hover{background:var(--ink-05)}

/* Auth tabs */
.auth-tabs{
    display:flex;gap:4px;margin-bottom:24px;
    background:var(--ink-05);border-radius:var(--r-sm);padding:3px;
}
.auth-tab{
    flex:1;padding:10px;border-radius:8px;
    font-size:.9rem;font-weight:600;color:var(--ink-40);
    transition:all var(--dur-fast);text-align:center;
}
.auth-tab.active{
    background:var(--white);color:var(--emerald);
    box-shadow:var(--shadow-1);
}
.auth-tab:hover:not(.active){color:var(--ink-70)}

/* Auth form */
.auth-form{display:flex;flex-direction:column;gap:16px}
.auth-field{display:flex;flex-direction:column;gap:5px}
.auth-field label{
    font-size:.8rem;font-weight:600;color:var(--ink-70);
    text-transform:uppercase;letter-spacing:.5px;
}
.auth-field input,
.auth-field select,
.auth-field textarea{
    padding:12px 14px;border-radius:var(--r-sm);
    border:1.5px solid var(--ink-10);
    font-size:.92rem;color:var(--ink);
    background:var(--white);
    transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
    font-family:var(--f-body);
}
.auth-field input:focus,
.auth-field select:focus,
.auth-field textarea:focus{
    outline:none;border-color:var(--emerald);
    box-shadow:0 0 0 3px rgba(47,111,100,.1);
}
.auth-field textarea{resize:vertical;min-height:70px}
.auth-row{display:flex;gap:12px}
.auth-field-half{flex:1}

/* Avatar upload */
.auth-avatar-upload{
    display:flex;align-items:center;gap:14px;
}
.auth-avatar-preview{
    width:56px;height:56px;border-radius:var(--r-full);
    background:var(--ink-05);border:2px solid var(--ink-10);
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;flex-shrink:0;
}
.auth-avatar-preview svg{width:28px;height:28px;color:var(--ink-20)}
.auth-avatar-preview img{width:100%;height:100%;object-fit:cover}
.auth-avatar-label{
    padding:8px 16px;border-radius:100px;
    background:var(--ink-05);border:1px solid var(--ink-10);
    font-size:.82rem;font-weight:600;color:var(--ink-70);
    cursor:pointer;transition:all var(--dur-fast);
}
.auth-avatar-label:hover{background:var(--ink-10)}
.auth-file-input{display:none}

/* Error / Success */
.auth-error{
    font-size:.82rem;color:#e53935;
    padding:8px 12px;border-radius:8px;
    background:#ffebee;display:none;
}
.auth-error.visible{display:block}
.auth-success{
    font-size:.82rem;color:var(--emerald-d);
    padding:8px 12px;border-radius:8px;
    background:var(--emerald-l);display:none;
}
.auth-success.visible{display:block}

/* Forgot password link */
.auth-forgot-btn{
    background:none;border:none;cursor:pointer;
    font-size:.82rem;color:var(--emerald);font-weight:500;
    text-align:center;padding:4px 0;
    transition:color var(--dur-fast);
}
.auth-forgot-btn:hover{color:var(--emerald-d);text-decoration:underline}
.auth-forgot-desc{
    font-size:.88rem;color:var(--ink-40);line-height:1.5;
    margin-bottom:4px;
}

/* Psychologist toggle */
.psi-toggle{
    display:flex;align-items:center;gap:10px;
    cursor:pointer;user-select:none;
    padding:10px 14px;border-radius:var(--r-sm);
    background:#f5f5f5;border:1px solid var(--ink-10);
    transition:background var(--dur-fast), border-color var(--dur-fast);
}
.psi-toggle:has(input:checked){
    background:#e8f5f1;border-color:var(--emerald);
}
.psi-toggle input{display:none}
.psi-toggle-track{
    position:relative;width:40px;height:22px;
    background:#ccc;border-radius:11px;flex-shrink:0;
    transition:background var(--dur-fast);
}
.psi-toggle:has(input:checked) .psi-toggle-track{
    background:var(--emerald);
}
.psi-toggle-thumb{
    position:absolute;top:2px;left:2px;
    width:18px;height:18px;border-radius:50%;
    background:white;
    box-shadow:0 1px 3px rgba(0,0,0,.2);
    transition:transform var(--dur-fast);
}
.psi-toggle:has(input:checked) .psi-toggle-thumb{
    transform:translateX(18px);
}
.psi-toggle-label{
    font-size:.88rem;font-weight:600;color:var(--ink);
}
.psi-toggle:has(input:checked) .psi-toggle-label{
    color:var(--emerald-d);
}

/* Psi login hint */
.auth-psi-hint{
    display:flex;align-items:center;justify-content:center;gap:8px;
    padding:10px 14px;border-radius:var(--r-sm);
    background:#e8f5f1;border:1px solid var(--emerald);
    font-size:.82rem;color:var(--emerald-d);
    line-height:1.4;text-align:center;
    animation:psiHintIn .3s ease;
}
.auth-psi-hint a{
    color:var(--emerald);font-weight:600;
    text-decoration:underline;
}
.auth-psi-hint a:hover{color:var(--emerald-d)}
@keyframes psiHintIn{
    from{opacity:0;transform:translateY(-6px)}
    to{opacity:1;transform:translateY(0)}
}

/* Psi signup panel */
.auth-psi-panel{
    text-align:center;padding:20px 16px;
    border-radius:var(--r-sm);
    background:linear-gradient(135deg, #e8f5f1, #f0faf7);
    border:1px solid var(--emerald);
    animation:psiHintIn .3s ease;
}
.auth-psi-panel-icon{font-size:2.4rem;margin-bottom:8px}
.auth-psi-panel-title{
    font-family:var(--ff-heading);font-size:1.1rem;
    color:var(--emerald-d);margin-bottom:10px;
}
.auth-psi-panel-text{
    font-size:.84rem;color:var(--ink-60);
    line-height:1.5;margin-bottom:8px;
}
.auth-psi-panel-text strong{color:var(--emerald-d)}
.auth-psi-panel-btn{
    display:inline-flex;align-items:center;gap:6px;
    margin-top:12px;padding:12px 24px;
    border-radius:var(--r-sm);
    background:var(--emerald);color:white;
    font-weight:700;font-size:.9rem;
    text-decoration:none;
    transition:background var(--dur-fast), transform var(--dur-fast);
}
.auth-psi-panel-btn:hover{
    background:var(--emerald-d);
    transform:translateY(-1px);
}
.auth-psi-panel-btn svg{width:16px;height:16px}

.auth-psi-icon{font-size:1.2rem;flex-shrink:0}

/* Submit */
.auth-submit{
    padding:14px;border-radius:var(--r-sm);
    background:var(--emerald);color:var(--white);
    font-size:1rem;font-weight:700;
    transition:all var(--dur-fast);
    border:none;cursor:pointer;
}
.auth-submit:hover{background:var(--emerald-d);transform:translateY(-1px)}
.auth-submit:disabled{opacity:.6;cursor:not-allowed;transform:none}
.auth-submit.loading{
    pointer-events:none;opacity:.7;
    background:var(--emerald);
}

.auth-cancel{
    padding:14px;border-radius:var(--r-sm);
    background:var(--ink-05);color:var(--ink-70);
    font-size:.92rem;font-weight:600;
    transition:all var(--dur-fast);
    border:1px solid var(--ink-10);cursor:pointer;
}
.auth-cancel:hover{background:var(--ink-10)}

.profile-actions{display:flex;gap:10px}
.profile-actions .auth-submit{flex:1}
.profile-actions .auth-cancel{flex:1}

/* Profile modal extras */
.profile-title{
    font-family:var(--f-display);font-size:1.4rem;font-weight:700;
    color:var(--ink);margin-bottom:20px;text-align:center;
}
.profile-avatar-wrap{display:flex;flex-direction:column;align-items:center;gap:8px}
.profile-avatar-big{width:80px;height:80px}
.profile-avatar-big svg{width:40px;height:40px}
.profile-remove-avatar{
    font-size:.78rem;color:var(--ink-40);background:none;
    border:none;cursor:pointer;text-decoration:underline;
}
.profile-remove-avatar:hover{color:#e53935}

/* ==========================================================
   PASSWORD GATE MODAL
   ========================================================== */
.gate-card{text-align:center;max-width:380px}
.gate-icon{font-size:2.5rem;margin-bottom:12px}
.gate-title{
    font-family:var(--f-display);font-size:1.3rem;font-weight:700;
    color:var(--ink);margin-bottom:8px;
}
.gate-desc{
    font-size:.88rem;color:var(--ink-40);
    line-height:1.5;margin-bottom:20px;
}
.gate-submit{width:100%}
.gate-divider{
    display:flex;align-items:center;gap:12px;
    margin:20px 0;color:var(--ink-20);font-size:.8rem;
}
.gate-divider::before,.gate-divider::after{
    content:'';flex:1;height:1px;background:var(--ink-10);
}
.gate-signup-btn{
    width:100%;padding:12px;border-radius:var(--r-sm);
    background:var(--ink-05);color:var(--emerald);
    font-size:.92rem;font-weight:600;
    border:1.5px solid var(--emerald);
    cursor:pointer;transition:all var(--dur-fast);
}
.gate-signup-btn:hover{
    background:var(--emerald);color:var(--white);
}
.gate-link{
    margin-top:16px;display:none !important;
}
.gate-link.visible{display:flex !important}

/* ==========================================================
   COMMUNITY FEED
   ========================================================== */
.community-section{
    max-width:640px;width:100%;margin:0 auto;
    padding:24px 16px 48px;
    overflow-y:auto;
    max-height:calc(100vh - 60px);max-height:calc(100dvh - 60px);
    -webkit-overflow-scrolling:touch;overscroll-behavior:contain;
}

/* Community Header */
.community-header{
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:20px;
}
.community-title{
    font-family:var(--f-display);
    font-size:1.4rem;font-weight:700;color:var(--ink);
}
.ugc-btn{
    display:inline-flex;align-items:center;gap:6px;
    padding:7px 14px;border-radius:100px;
    background:var(--emerald);color:var(--white);
    font-size:.78rem;font-weight:600;font-family:var(--f-body);
    text-decoration:none;white-space:nowrap;
    transition:all var(--dur-fast);
}
.ugc-btn:hover{
    background:var(--emerald-d);transform:translateY(-1px);
    box-shadow:0 2px 8px rgba(47,111,100,.2);
}
.ugc-btn svg{width:16px;height:16px;flex-shrink:0}

/* Community links container */
.community-links{display:flex;flex-wrap:wrap;gap:6px}

/* Social button colors */
.community-link-btn--instagram{background:#E1306C}
.community-link-btn--instagram:hover{background:#c1175e;box-shadow:0 2px 8px rgba(225,48,108,.3)}
.community-link-btn--youtube{background:#FF0000}
.community-link-btn--youtube:hover{background:#cc0000;box-shadow:0 2px 8px rgba(255,0,0,.3)}

.create-topic-btn{
    padding:8px 18px;border-radius:100px;
    background:var(--emerald);color:var(--white);
    font-size:.82rem;font-weight:700;
    transition:all var(--dur-fast);border:none;cursor:pointer;
}
.create-topic-btn:hover{background:var(--emerald-d);transform:translateY(-1px)}

/* Topics List */
.topics-list{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(140px, 1fr));
    gap:10px;
}

/* Topic Square Cards */
.topic-page{
    background:var(--white);
    border-radius:var(--r-md);
    border:1px solid var(--ink-10);
    overflow:hidden;
    cursor:pointer;
    transition:box-shadow var(--dur-fast), transform var(--dur-fast);
    display:flex;flex-direction:column;
}
.topic-page:hover{
    box-shadow:var(--shadow-2);
    transform:translateY(-2px);
}
.topic-page.tp-locked{
    opacity:.7;
}
.topic-page.tp-locked:hover{
    transform:none;box-shadow:var(--shadow-1);
}
.tp-lock{
    font-size:.7rem;margin-top:4px;
}
.tp-cta{
    font-size:.68rem;font-weight:600;color:var(--emerald);
    text-align:center;padding:0 8px 10px;
}
.tp-locked .tp-cta{color:var(--ink-40)}
.tp-header{
    padding:16px 10px 10px;
    text-align:center;
    flex:1;display:flex;flex-direction:column;
    align-items:center;justify-content:center;
}
.tp-emoji{
    font-size:2rem;
    display:block;margin-bottom:4px;
}
.tp-title{
    font-family:var(--f-display);
    font-size:.8rem;font-weight:700;color:var(--ink);
    margin:0;line-height:1.25;
}
.tp-body{
    padding:6px 10px 10px;
    text-align:center;
}
.tp-posts{
    font-size:.7rem;font-weight:500;color:var(--ink-40);
}

/* Topics Section Labels */
.topics-section-label{
    display:flex;align-items:center;gap:8px;
    grid-column:1 / -1;
    font-family:var(--f-display);
    font-size:1rem;font-weight:700;
    padding:8px 4px 2px;margin-top:4px;
    color:var(--ink-70);
}
.topics-section-label:first-child{margin-top:0}
.topics-section-icon{width:22px;height:22px;flex-shrink:0}
.topics-section-fem{color:var(--fem)}
.topics-section-masc{color:var(--masc)}

/* Topic Feed Header */
.topic-feed-header{
    display:flex;align-items:center;gap:12px;
    margin-bottom:16px;
}
.back-btn{
    display:flex;align-items:center;gap:4px;
    padding:6px 12px;border-radius:100px;
    background:var(--ink-05);border:1px solid var(--ink-10);
    font-size:.82rem;font-weight:600;color:var(--ink-70);
    cursor:pointer;transition:all var(--dur-fast);
    flex-shrink:0;
}
.back-btn svg{width:18px;height:18px}
.back-btn:hover{background:var(--ink-10);color:var(--ink)}
.topic-feed-title{
    font-family:var(--f-display);
    font-size:1.2rem;font-weight:700;color:var(--ink);
    display:flex;align-items:center;gap:8px;
}

/* Topic Summary Card */
.topic-summary{
    background:var(--white);
    border-radius:var(--r-md);
    border-left:4px solid var(--emerald);
    padding:16px 18px;
    margin-bottom:16px;
    box-shadow:var(--shadow-1);
}
.topic-summary-desc{
    font-size:.88rem;color:var(--ink-70);
    line-height:1.5;margin:0 0 12px;
}
.topic-summary-tags{
    display:flex;flex-wrap:wrap;gap:6px;
    margin-bottom:12px;
}
.topic-summary-tags:empty{margin-bottom:0}
.topic-summary-wpp{
    display:inline-flex;align-items:center;gap:8px;
    background:var(--wpp);color:var(--white);
    padding:10px 18px;border-radius:100px;
    font-size:.85rem;font-weight:600;
    text-decoration:none;
    transition:background var(--dur-fast);
    border:none;cursor:pointer;
}
.topic-summary-wpp:hover{background:var(--wpp-d)}
.topic-summary-wpp svg{
    width:18px;height:18px;fill:currentColor;
}

/* Community Filters */
/* ====== SEARCH ====== */
.search-view{
    padding:16px;
}
.search-bar{
    display:flex;align-items:center;gap:8px;
    background:var(--ink-05);border-radius:var(--r-md);
    padding:10px 14px;margin-bottom:12px;
}
.search-bar-icon{width:20px;height:20px;color:var(--ink-40);flex-shrink:0}
.search-bar-input{
    flex:1;border:none;background:transparent;
    font-size:.95rem;color:var(--ink);font-family:var(--f-body);
    outline:none;
}
.search-bar-input::placeholder{color:var(--ink-30)}
.search-bar-close{
    width:28px;height:28px;border:none;background:transparent;
    display:flex;align-items:center;justify-content:center;
    cursor:pointer;color:var(--ink-40);border-radius:50%;
    transition:background var(--dur-fast);flex-shrink:0;
}
.search-bar-close:hover{background:var(--ink-10)}
.search-bar-close svg{width:18px;height:18px}

.search-tabs{
    display:flex;gap:4px;margin-bottom:16px;
    background:var(--ink-05);border-radius:var(--r-md);padding:4px;
}
.search-tab{
    flex:1;padding:8px 12px;border:none;
    background:transparent;color:var(--ink-40);
    font-size:.82rem;font-weight:600;font-family:var(--f-body);
    border-radius:12px;cursor:pointer;text-align:center;
    transition:all .2s ease;
}
.search-tab.active{background:var(--paper);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.1)}
.search-tab:hover:not(.active){color:var(--ink-70)}

.search-results{display:flex;flex-direction:column;gap:8px}

/* Post result */
.search-result-post{
    background:var(--paper);border-radius:var(--r-md);
    padding:14px;border:1px solid var(--ink-05);
    cursor:pointer;transition:border-color var(--dur-fast);
}
.search-result-post:hover{border-color:var(--emerald-20)}
.search-result-post-header{
    display:flex;align-items:center;gap:8px;margin-bottom:6px;
    font-size:.78rem;color:var(--ink-40);
}
.search-result-post-author{font-weight:600;color:var(--ink-70)}
.search-result-post-topic{color:var(--emerald)}
.search-result-post-content{font-size:.88rem;color:var(--ink);line-height:1.5}
.search-result-post-content mark{background:var(--emerald-10);color:var(--emerald);border-radius:2px;padding:0 2px}

/* Profile result */
.search-result-profile{
    display:flex;align-items:center;gap:12px;
    background:var(--paper);border-radius:var(--r-md);
    padding:12px 14px;border:1px solid var(--ink-05);
    cursor:pointer;transition:border-color var(--dur-fast);
}
.search-result-profile:hover{border-color:var(--emerald-20)}
.search-result-profile-avatar{
    width:40px;height:40px;border-radius:50%;
    background:var(--emerald-10);color:var(--emerald);
    display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:1rem;flex-shrink:0;
    overflow:hidden;
}
.search-result-profile-avatar img{width:100%;height:100%;object-fit:cover}
.search-result-profile-info{flex:1;min-width:0}
.search-result-profile-name{font-weight:600;color:var(--ink);font-size:.9rem}
.search-result-profile-bio{font-size:.78rem;color:var(--ink-40);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.search-result-profile-bio mark{background:var(--emerald-10);color:var(--emerald);border-radius:2px;padding:0 2px}

/* Topic result */
.search-result-topic{
    display:flex;align-items:center;gap:12px;
    background:var(--paper);border-radius:var(--r-md);
    padding:12px 14px;border:1px solid var(--ink-05);
    cursor:pointer;transition:border-color var(--dur-fast);
}
.search-result-topic:hover{border-color:var(--emerald-20)}
.search-result-topic-emoji{font-size:1.4rem;flex-shrink:0}
.search-result-topic-info{flex:1;min-width:0}
.search-result-topic-name{font-weight:600;color:var(--ink);font-size:.9rem}
.search-result-topic-name mark{background:var(--emerald-10);color:var(--emerald);border-radius:2px;padding:0 2px}
.search-result-topic-desc{font-size:.78rem;color:var(--ink-40)}
.search-result-topic-count{font-size:.75rem;color:var(--ink-30);flex-shrink:0}

/* Empty & hint */
.search-empty,.search-hint{
    text-align:center;padding:40px 20px;color:var(--ink-40);
}
.search-empty-icon{font-size:2rem;display:block;margin-bottom:8px}
.search-hint p{font-size:.85rem}

/* Feed source tabs (All / Following) */
.feed-source-tabs{
    display:flex;gap:4px;margin-bottom:12px;
    background:var(--ink-05);border-radius:var(--r-md);padding:4px;
}
.feed-source-tab{
    flex:1;padding:8px 16px;border:none;
    background:transparent;color:var(--ink-40);
    font-size:.82rem;font-weight:600;font-family:var(--f-body);
    border-radius:12px;cursor:pointer;text-align:center;
    transition:all .2s ease;
}
.feed-source-tab.active{
    background:var(--paper);color:var(--ink);
    box-shadow:0 1px 3px rgba(0,0,0,.1);
}
.feed-source-tab:hover:not(.active){color:var(--ink-70)}

.community-filters{
    display:flex;gap:10px;margin-bottom:16px;
    flex-wrap:wrap;
}
.filter-select{
    padding:8px 14px;border-radius:100px;
    border:1.5px solid var(--ink-10);
    font-size:.82rem;font-weight:500;color:var(--ink-70);
    background:var(--white);
    font-family:var(--f-body);
    cursor:pointer;transition:border-color var(--dur-fast);
    appearance:auto;
}
.filter-select:focus{outline:none;border-color:var(--emerald)}

/* Hide Photos Button */
.hide-photos-btn{
    display:inline-flex;align-items:center;gap:6px;
    padding:7px 14px;border-radius:100px;
    border:1.5px solid var(--ink-10);
    font-size:.82rem;font-weight:500;color:var(--ink-40);
    background:var(--white);
    font-family:var(--f-body);
    cursor:pointer;transition:all var(--dur-fast);
}
.hide-photos-btn svg{width:16px;height:16px;flex-shrink:0}
.hide-photos-btn:hover{border-color:var(--ink-20);color:var(--ink-70)}
.hide-photos-btn.active{
    background:var(--emerald-l);border-color:var(--emerald);color:var(--emerald-d);
}

/* Hide avatars mode — community */
.feed-list.hide-avatars .feed-post-avatar,
.feed-list.hide-avatars .feed-reply-avatar{
    visibility:hidden;
}
/* Hide avatars mode — psi cards (now uses psi-compact-* classes) */

/* Anonymous Toggle */
.anon-toggle{
    display:flex;align-items:center;gap:6px;
    font-size:.78rem;color:var(--ink-40);
    cursor:pointer;user-select:none;
}
.anon-toggle input[type="checkbox"]{
    width:16px;height:16px;accent-color:var(--emerald);
    cursor:pointer;
}
.anon-label{
    font-size:.75rem;color:var(--ink-20);font-weight:400;font-style:italic;
}

/* Anonymous avatar */
.feed-post-avatar-anon{
    background:var(--ink-05);
}
.feed-post-avatar-anon svg{
    width:22px;height:22px;color:var(--ink-20);
}

/* Composer */
.feed-composer{
    background:var(--white);
    border-radius:var(--r-lg);
    border:1px solid var(--ink-10);
    padding:18px;margin-bottom:24px;
}
.feed-composer-inner{
    display:flex;gap:12px;align-items:flex-start;
}
.feed-composer-avatar{
    width:40px;height:40px;border-radius:var(--r-full);
    background:var(--emerald-l);
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;overflow:hidden;
}
.feed-composer-avatar svg{width:22px;height:22px;color:var(--emerald)}
.feed-composer-avatar img{width:100%;height:100%;object-fit:cover}
.feed-composer textarea{
    flex:1;border:none;resize:vertical;
    font-size:.92rem;color:var(--ink);
    font-family:var(--f-body);
    min-height:60px;padding:8px 0;
    background:transparent;
}
.feed-composer textarea:focus{outline:none}
.feed-composer textarea::placeholder{color:var(--ink-20)}
.feed-composer-footer{
    display:flex;justify-content:space-between;align-items:center;
    margin-top:12px;padding-top:12px;
    border-top:1px solid var(--ink-05);
}
.feed-composer-hint{font-size:.75rem;color:var(--ink-20)}
.feed-post-btn{
    padding:8px 24px;border-radius:100px;
    background:var(--emerald);color:var(--white);
    font-size:.85rem;font-weight:700;
    transition:all var(--dur-fast);border:none;cursor:pointer;
}
.feed-post-btn:hover{background:var(--emerald-d)}
.feed-post-btn:disabled{opacity:.5;cursor:not-allowed}

.feed-composer-login{
    background:var(--white);
    border-radius:var(--r-lg);
    border:1px solid var(--ink-10);
    padding:24px;margin-bottom:24px;
    text-align:center;
}
.feed-composer-login p{
    font-size:.92rem;color:var(--ink-40);margin-bottom:14px;
}

/* Post card */
.feed-list{display:flex;flex-direction:column;gap:16px}
.feed-post{
    background:var(--white);
    border-radius:var(--r-lg);
    border:1px solid var(--ink-10);
    padding:18px;
    transition:box-shadow var(--dur-fast);
}
.feed-post:hover{box-shadow:var(--shadow-1)}
.feed-post-header{
    display:flex;align-items:center;gap:10px;margin-bottom:12px;
}
.feed-post-avatar{
    width:36px;height:36px;border-radius:var(--r-full);
    background:var(--emerald-l);
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;flex-shrink:0;
}
.feed-post-avatar img{width:100%;height:100%;object-fit:cover}
.feed-post-avatar .avatar-initial{
    font-size:.8rem;font-weight:700;color:var(--emerald);
}
.feed-post-topic{
    font-size:.7rem;font-weight:600;
    color:var(--emerald);
    line-height:1.2;margin-bottom:1px;
}
.feed-post-name{font-size:.88rem;font-weight:600;color:var(--ink)}
.feed-post-date{font-size:.72rem;color:var(--ink-20)}
.feed-post-edit,.feed-post-delete{
    font-size:.72rem;color:var(--ink-20);
    background:none;border:none;cursor:pointer;padding:4px 8px;
    border-radius:6px;transition:all var(--dur-fast);
}
.feed-post-edit{margin-left:auto}
.feed-post-edit:hover{background:var(--ink-05);color:var(--emerald)}
.feed-post-delete:hover{background:var(--ink-05);color:#e53935}
.feed-edited-tag{font-size:.72rem;color:var(--ink-20);font-style:italic}
.feed-edit-textarea{
    width:100%;min-height:80px;padding:10px;font-size:.88rem;
    border:1px solid var(--ink-10);border-radius:8px;resize:vertical;
    font-family:inherit;line-height:1.5;
}
.feed-edit-actions{display:flex;gap:8px;margin-top:8px}
.feed-edit-save,.feed-edit-cancel{
    padding:6px 14px;font-size:.8rem;border-radius:6px;border:none;cursor:pointer;
}
.feed-edit-save{background:var(--emerald);color:white}
.feed-edit-save:hover{background:var(--emerald-d)}
.feed-edit-cancel{background:var(--ink-05);color:var(--ink-40)}
.feed-edit-cancel:hover{background:var(--ink-10)}
.feed-reply-edit,.feed-reply-delete{
    font-size:.68rem;color:var(--ink-20);background:none;border:none;
    cursor:pointer;padding:2px 6px;border-radius:4px;
}
.feed-reply-edit:hover{color:var(--emerald)}
.feed-reply-delete:hover{color:#e53935}
.feed-reply-edit-input{
    width:100%;padding:6px 10px;font-size:.82rem;
    border:1px solid var(--ink-10);border-radius:6px;font-family:inherit;
}
.new-posts-banner{
    display:block;width:100%;padding:10px;margin-bottom:12px;
    background:var(--emerald-l);color:var(--emerald);border:1px solid var(--emerald);
    border-radius:8px;font-size:.82rem;font-weight:600;
    cursor:pointer;text-align:center;
    animation:fadeIn var(--dur-medium) ease;
}
.new-posts-banner:hover{background:var(--emerald);color:white}
.email-verify-banner{
    display:flex;align-items:center;gap:10px;padding:10px 16px;
    background:#fff3cd;color:#856404;font-size:.82rem;
    border-bottom:1px solid #ffc107;position:sticky;top:0;z-index:1000;
    flex-wrap:wrap;
}
.email-verify-resend{
    background:#ffc107;color:#856404;border:none;padding:4px 12px;
    border-radius:4px;cursor:pointer;font-size:.78rem;font-weight:600;
}
.email-verify-close{
    margin-left:auto;background:none;border:none;font-size:1.1rem;
    color:#856404;cursor:pointer;padding:0 4px;
}
.feed-post-image{margin-bottom:12px}
.feed-post-image img{width:100%;max-height:400px;object-fit:cover;border-radius:8px}
.composer-image-preview{
    position:relative;display:inline-block;margin:8px 0 0 0;
}
.composer-image-preview img{max-height:120px;border-radius:8px;display:block}
.composer-image-remove{
    position:absolute;top:4px;right:4px;width:24px;height:24px;
    border-radius:50%;background:rgba(0,0,0,.6);color:white;
    border:none;cursor:pointer;font-size:1rem;line-height:1;
    display:flex;align-items:center;justify-content:center;
}
.composer-image-btn{
    display:flex;align-items:center;cursor:pointer;color:var(--ink-30);
    padding:4px;border-radius:6px;transition:all var(--dur-fast);
}
.composer-image-btn:hover{color:var(--emerald);background:var(--emerald-l)}
.feed-post-name-link{cursor:pointer}
.feed-post-name-link:hover{color:var(--emerald);text-decoration:underline}
.user-profile-header{
    display:flex;align-items:flex-start;gap:16px;padding:20px 16px;
    background:var(--white);border-radius:12px;border:1px solid var(--ink-05);
    margin-bottom:16px;position:relative;
}
.user-profile-avatar{
    width:64px;height:64px;border-radius:50%;object-fit:cover;flex-shrink:0;
}
.user-profile-initial{
    display:flex;align-items:center;justify-content:center;
    background:var(--ink-10);color:var(--ink-70);font-weight:700;font-size:1.4rem;
}
.user-profile-info{flex:1;min-width:0}
.user-profile-name{font-size:1.1rem;font-weight:700;margin:0 0 4px}
.user-profile-crp{font-size:.75rem;color:var(--emerald);display:block;margin-bottom:4px}
.user-profile-bio{font-size:.82rem;color:var(--ink-40);margin:4px 0 8px;line-height:1.4}
.user-profile-location{font-size:.75rem;color:var(--ink-30);display:block;margin-bottom:8px}
.user-profile-stats{display:flex;gap:16px;font-size:.78rem;color:var(--ink-40)}
.user-profile-stats strong{color:var(--ink);font-weight:700}
.user-profile-follow-btn{
    padding:8px 20px;border-radius:20px;font-size:.82rem;font-weight:600;
    border:1.5px solid var(--emerald);background:var(--emerald);color:white;
    cursor:pointer;transition:all var(--dur-fast);flex-shrink:0;
}
.user-profile-follow-btn.following{
    background:transparent;color:var(--emerald);
}
.user-profile-follow-btn.following:hover{border-color:#c0392b;color:#c0392b}
.user-profile-actions{display:flex;flex-direction:column;gap:8px;flex-shrink:0}
.user-profile-dm-btn{
    display:inline-flex;align-items:center;gap:6px;
    background:transparent;color:var(--emerald);border-color:var(--emerald);
}
.user-profile-dm-btn:hover{background:var(--emerald-l)}
.user-profile-dm-btn svg{flex-shrink:0}
.composer-char-counter{
    display:block;text-align:right;font-size:.7rem;color:var(--ink-20);
    margin-top:2px;padding-right:4px;
}
.composer-char-counter.near-limit{color:#e67700}
.composer-char-counter.at-limit{color:#e53935;font-weight:600}
.bookmark-btn.bookmarked{color:var(--emerald)}
.feed-post-content{
    font-size:.92rem;line-height:1.6;color:var(--ink-70);
    margin-bottom:14px;white-space:pre-wrap;
}
.feed-post-actions{
    display:flex;align-items:center;gap:16px;
    padding-top:10px;border-top:1px solid var(--ink-05);
}
.feed-action-btn{
    display:flex;align-items:center;gap:5px;
    background:none;border:none;cursor:pointer;
    font-size:.82rem;color:var(--ink-40);
    padding:6px 10px;border-radius:100px;
    transition:all var(--dur-fast);
}
.feed-action-btn:hover{background:var(--ink-05);color:var(--ink-70)}
.feed-action-btn svg{width:18px;height:18px}
.feed-action-btn.liked{color:#e53935}
.feed-action-btn.liked svg{fill:#e53935;stroke:#e53935}

/* Brand watermark inside post actions */
.feed-post-brand{
    margin-left:auto;
    font-size:.68rem;font-weight:600;
    color:var(--emerald);
    text-align:right;
    line-height:1.3;
}
.feed-post-brand span{
    display:block;
    font-size:.6rem;font-weight:500;
    opacity:.7;
}

/* Replies */
.feed-replies{
    margin-top:12px;padding-top:12px;
    border-top:1px solid var(--ink-05);
}
.feed-replies-toggle{
    font-size:.8rem;color:var(--emerald);
    background:none;border:none;cursor:pointer;
    font-weight:600;margin-bottom:10px;
    padding:4px 0;
}
.feed-replies-toggle:hover{text-decoration:underline}
.feed-reply{
    display:flex;gap:10px;padding:10px 0;
    border-bottom:1px solid var(--ink-05);
}
.feed-reply:last-child{border-bottom:none}
.feed-reply-avatar{
    width:28px;height:28px;border-radius:var(--r-full);
    background:var(--ink-05);
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;flex-shrink:0;
}
.feed-reply-avatar img{width:100%;height:100%;object-fit:cover}
.feed-reply-avatar .avatar-initial{font-size:.65rem;font-weight:700;color:var(--ink-40)}
.feed-reply-body{flex:1;min-width:0}
.feed-reply-meta{
    display:flex;align-items:center;gap:8px;margin-bottom:2px;
}
.feed-reply-name{font-size:.8rem;font-weight:600;color:var(--ink)}
.feed-reply-date{font-size:.68rem;color:var(--ink-20)}
.feed-reply-delete{
    margin-left:auto;font-size:.68rem;color:var(--ink-20);
    background:none;border:none;cursor:pointer;
}
.feed-reply-delete:hover{color:#e53935}
.feed-reply-text{font-size:.85rem;color:var(--ink-70);line-height:1.5}
.feed-reply-form{
    display:flex;gap:8px;margin-top:10px;
}
.feed-reply-form input{
    flex:1;padding:8px 12px;border-radius:100px;
    border:1.5px solid var(--ink-10);font-size:.85rem;
    font-family:var(--f-body);
    transition:border-color var(--dur-fast);
}
.feed-reply-form input:focus{outline:none;border-color:var(--emerald)}
.feed-reply-form button{
    padding:8px 16px;border-radius:100px;
    background:var(--emerald);color:var(--white);
    font-size:.82rem;font-weight:600;
    border:none;cursor:pointer;
    transition:background var(--dur-fast);
}
.feed-reply-form button:hover{background:var(--emerald-d)}

/* Empty state */
.feed-empty{
    text-align:center;padding:48px 24px;
    color:var(--ink-40);
}
.feed-empty-icon{font-size:3rem;display:block;margin-bottom:12px}
.feed-empty p{font-size:.95rem;margin-bottom:4px}
.feed-empty-sub{font-size:.82rem;color:var(--ink-20)}

.feed-load-more{
    display:block;width:100%;margin-top:20px;
    padding:12px;border-radius:var(--r-sm);
    background:var(--ink-05);border:1px solid var(--ink-10);
    font-size:.88rem;font-weight:600;color:var(--ink-40);
    cursor:pointer;transition:all var(--dur-fast);
}
.feed-load-more:hover{background:var(--ink-10);color:var(--ink-70)}

/* ==========================================================
   ADMIN PANEL
   ========================================================== */
.admin-section{
    padding:20px;
    max-width:800px;
    margin:0 auto;
    overflow:hidden;
}
.admin-header{
    display:flex;align-items:center;gap:12px;margin-bottom:20px;
}
.admin-title{
    font-family:var(--f-display);font-size:1.3rem;font-weight:700;color:var(--ink);
}
.admin-tabs{
    display:flex;gap:4px;margin-bottom:20px;
    background:var(--ink-05);border-radius:var(--r-md);padding:4px;
    overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;max-width:100%;
}
.admin-tabs::-webkit-scrollbar{display:none}
.admin-tab{
    padding:10px 16px;border:none;
    background:transparent;color:var(--ink-40);
    font-size:.85rem;font-weight:600;font-family:var(--f-body);
    border-radius:12px;cursor:pointer;white-space:nowrap;flex-shrink:0;
    transition:all var(--dur-fast);
}
.admin-tab.active{
    background:var(--white);color:var(--emerald);
    box-shadow:var(--shadow-1);
}

/* Admin Post Item */
.admin-post-item{
    background:var(--white);border-radius:var(--r-sm);
    padding:14px 16px;margin-bottom:8px;
    border:1px solid var(--ink-10);
}
.admin-post-item.admin-post-hidden{
    opacity:.6;border-left:3px solid var(--gold);
}
.admin-post-item.admin-post-deleted{
    opacity:.4;border-left:3px solid #e53935;
}
.admin-post-meta{
    display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;
    font-size:.8rem;color:var(--ink-40);margin-bottom:6px;
}
.admin-post-meta strong{color:var(--ink);font-size:.85rem}
.admin-post-email{color:var(--ink-20)}
.admin-post-date{color:var(--ink-20)}
.admin-post-topic{
    background:var(--ink-05);padding:2px 8px;border-radius:100px;font-size:.75rem;
}
.admin-status-visible{color:var(--emerald);font-weight:600}
.admin-status-hidden{color:#f59e0b;font-weight:600}
.admin-status-deleted{color:#e53935;font-weight:600}
.admin-post-content{
    font-size:.88rem;color:var(--ink-70);line-height:1.5;
    margin-bottom:10px;
}
.admin-post-actions{
    display:flex;gap:6px;
}
.admin-action-btn{
    padding:6px 14px;border-radius:100px;border:1.5px solid var(--ink-10);
    font-size:.78rem;font-weight:600;font-family:var(--f-body);
    cursor:pointer;background:var(--white);color:var(--ink-70);
    transition:all var(--dur-fast);
}
.admin-action-btn:hover{border-color:var(--ink-20)}
.admin-btn-show{color:var(--emerald);border-color:var(--emerald)}
.admin-btn-show:hover{background:var(--emerald-l)}
.admin-btn-hide{color:#f59e0b;border-color:#f59e0b}
.admin-btn-hide:hover{background:#fef3c7}
.admin-btn-delete{color:#e53935;border-color:#e53935}
.admin-btn-delete:hover{background:#fef2f2}
.admin-btn-save{
    color:var(--white);background:var(--emerald);border-color:var(--emerald);
    padding:8px 20px;
}
.admin-btn-save:hover{background:var(--emerald-d)}

/* Admin Members */
.admin-members-count{
    font-size:.85rem;color:var(--ink-40);font-weight:600;
    margin-bottom:12px;
}
.admin-member-item{
    display:flex;align-items:center;gap:12px;
    background:var(--white);border-radius:var(--r-sm);
    padding:12px 14px;margin-bottom:6px;
    border:1px solid var(--ink-10);
}
.admin-member-avatar{
    width:40px;height:40px;border-radius:50%;
    flex-shrink:0;object-fit:cover;
}
.admin-member-initial{
    display:flex;align-items:center;justify-content:center;
    background:var(--emerald-l);color:var(--emerald);
    font-weight:700;font-size:.9rem;
}
.admin-member-info{flex:1;min-width:0}
.admin-member-name{
    font-size:.88rem;font-weight:600;color:var(--ink);
}
.admin-badge{
    display:inline-block;padding:1px 8px;border-radius:100px;
    background:var(--emerald);color:var(--white);
    font-size:.68rem;font-weight:700;margin-left:6px;
    vertical-align:middle;
}
.admin-member-detail{
    font-size:.78rem;color:var(--ink-40);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.admin-wpp-btn{
    display:flex;align-items:center;justify-content:center;
    width:38px;height:38px;border-radius:50%;flex-shrink:0;
    background:var(--wpp);color:var(--white);
    transition:background var(--dur-fast);
}
.admin-wpp-btn:hover{background:var(--wpp-d)}
.admin-wpp-btn svg{width:20px;height:20px}

/* Admin Topics Editor */
.admin-topic-item{
    background:var(--white);border-radius:var(--r-sm);
    padding:14px 16px;margin-bottom:10px;
    border:1px solid var(--ink-10);
}
.admin-topic-header{
    display:flex;align-items:center;gap:8px;margin-bottom:12px;
}
.admin-topic-emoji{font-size:1.3rem}
.admin-topic-name{font-weight:600;color:var(--ink);font-size:.95rem;flex:1}
.admin-topic-posts{font-size:.78rem;color:var(--ink-40)}
.admin-topic-fields{
    display:flex;flex-direction:column;gap:10px;
}
.admin-topic-fields .auth-field{margin-bottom:0}
.admin-topic-input{
    width:100%;padding:8px 12px;border-radius:8px;
    border:1.5px solid var(--ink-10);font-size:.85rem;
    font-family:var(--f-body);
    transition:border-color var(--dur-fast);
}
.admin-topic-input:focus{outline:none;border-color:var(--emerald)}
.admin-topic-saved{
    color:var(--emerald);font-size:.82rem;font-weight:600;
}

/* Admin delete in feed */
.admin-delete{color:#e53935;opacity:.7}
.admin-delete:hover{opacity:1}

/* Admin gear button */
.topbar-admin-btn{color:var(--emerald)}

/* ==========================================================
   MOBILE OVERRIDES — AUTH & FEED
   ========================================================== */
@media(max-width:600px){
    .auth-card{padding:28px 20px 24px;border-radius:var(--r-lg)}
    .auth-row{flex-direction:column;gap:12px}
    .auth-field-half{flex:none;width:100%}
    .community-section{padding:16px 10px 40px}
    .topbar-login-btn span{display:none}
    .topbar-login-btn{padding:8px}
    .community-header{flex-wrap:wrap;gap:10px}
    .community-header-actions{gap:6px}
    .community-title{font-size:1.2rem}
    .ugc-btn{font-size:.72rem;padding:6px 10px}
    .admin-link-item{flex-direction:column;align-items:stretch}
    .admin-link-actions{flex-direction:row;justify-content:space-between}
    .following-header-btn{font-size:.72rem;padding:6px 10px}
    .following-tab{padding:8px 12px;font-size:.78rem}
    .following-user-card{padding:10px 12px;gap:10px}
    .following-user-avatar{width:34px;height:34px}
    .following-view-title,.user-posts-title{font-size:1.05rem}
    .topics-list{grid-template-columns:repeat(auto-fill, minmax(100px, 1fr));gap:8px}
    .tp-header{padding:12px 8px 8px}
    .tp-emoji{font-size:1.5rem}
    .tp-title{font-size:.72rem}
    .tp-body{padding:4px 8px 8px}
    .tp-posts{font-size:.62rem}
    .topic-feed-header{flex-wrap:wrap;gap:8px}
    .community-filters{gap:8px}
    .filter-select{padding:6px 10px;font-size:.78rem}
    .admin-section{padding:14px 10px}
    .admin-tab{padding:8px 12px;font-size:.78rem}
    .admin-post-meta{font-size:.75rem}
    .admin-post-actions{flex-wrap:wrap}
    .admin-member-item{padding:10px 12px;gap:10px}
    .admin-topic-fields{gap:8px}

    /* Psicologos mobile — already has its own @media but reinforce here */
    .psicologos-section{padding:12px 10px 32px}
    .psicologos-header{margin-bottom:16px}
    .psicologos-title{font-size:1.15rem}
    .psicologos-subtitle{font-size:.82rem}
}

/* ============================================================
   PSI BADGE — Psychologist verification badge
   ============================================================ */
.psi-badge{
    display:inline-block;padding:1px 7px;border-radius:100px;
    background:linear-gradient(135deg, #2f6f64, #3d8b7a);
    color:#fff;font-size:.65rem;font-weight:700;
    margin-left:4px;vertical-align:middle;
    letter-spacing:.3px;
    box-shadow:0 1px 3px rgba(47,111,100,.25);
}

/* ============================================================
   FOLLOW FEATURE
   ============================================================ */

/* Follow button — standalone (following list, etc.) */
.follow-btn{
    display:inline-flex;align-items:center;justify-content:center;
    width:28px;height:28px;padding:0;
    border:1.5px solid var(--ink-20);border-radius:50%;
    background:transparent;color:var(--ink-40);
    cursor:pointer;transition:all var(--dur-fast);
    flex-shrink:0;
}
.follow-btn:hover{
    border-color:var(--emerald);color:var(--emerald);
    background:var(--emerald-l);
}
.follow-btn.following{
    border-color:var(--emerald);color:var(--white);
    background:var(--emerald);
}
.follow-btn.following:hover{
    background:#c0392b;border-color:#c0392b;color:var(--white);
}
.follow-btn:disabled{opacity:.5;cursor:default}
.follow-btn svg{width:14px;height:14px;flex-shrink:0}

/* Follow button inside post actions bar — override to pill style */
.feed-post-actions .follow-btn{
    width:auto;height:auto;padding:6px 10px;
    border:none;border-radius:100px;
    background:none;color:var(--ink-40);
}
.feed-post-actions .follow-btn:hover{
    border:none;color:var(--emerald);background:var(--emerald-l);
}
.feed-post-actions .follow-btn.following{
    border:none;color:var(--emerald);background:none;
}
.feed-post-actions .follow-btn.following:hover{
    border:none;color:#c0392b;background:rgba(197,60,43,.08);
}
.feed-post-actions .follow-btn svg{width:18px;height:18px}

/* Community header actions group */
.community-header-actions{
    display:flex;align-items:center;gap:8px;
}

/* "Seguindo" pill button in community header */
.following-header-btn{
    display:inline-flex;align-items:center;gap:5px;
    padding:7px 14px;border-radius:100px;
    background:transparent;color:var(--emerald);
    border:1.5px solid var(--emerald);
    font-size:.78rem;font-weight:600;font-family:var(--f-body);
    cursor:pointer;white-space:nowrap;
    transition:all var(--dur-fast);
}
.following-header-btn:hover{
    background:var(--emerald);color:var(--white);
    transform:translateY(-1px);
    box-shadow:0 2px 8px rgba(47,111,100,.2);
}
.following-header-btn svg{flex-shrink:0}

/* Following view */
.following-view{max-width:640px;width:100%;margin:0 auto}
.following-view-header{
    display:flex;align-items:center;gap:12px;margin-bottom:16px;
}
.following-view-title{
    font-family:var(--f-display);
    font-size:1.2rem;font-weight:700;color:var(--ink);
}

/* Follow counts */
.follow-counts{
    display:flex;align-items:center;gap:8px;
    margin-bottom:12px;padding:0 4px;
    font-size:.85rem;color:var(--ink-60);
}
.follow-counts strong{color:var(--ink);font-weight:700}
.follow-count-sep{color:var(--ink-20)}

/* Following tabs (pill style like admin-tabs) */
.following-tabs{
    display:flex;gap:4px;margin-bottom:16px;
    background:var(--ink-05);border-radius:var(--r-md);padding:4px;
}
.following-tab{
    flex:1;padding:10px 16px;border:none;
    background:transparent;color:var(--ink-40);
    font-size:.85rem;font-weight:600;font-family:var(--f-body);
    border-radius:12px;cursor:pointer;text-align:center;
    transition:all var(--dur-fast);
}
.following-tab.active{
    background:var(--white);color:var(--emerald);
    box-shadow:var(--shadow-1);
}

/* Following list grid */
.following-list{
    display:flex;flex-direction:column;gap:8px;
}

/* Following user card */
.following-user-card{
    display:flex;align-items:center;gap:12px;
    padding:12px 16px;background:var(--white);
    border-radius:var(--r-sm);border:1px solid var(--ink-10);
    cursor:pointer;transition:all var(--dur-fast);
}
.following-user-card:hover{
    box-shadow:var(--shadow-2);transform:translateY(-1px);
}
.following-user-avatar{
    width:40px;height:40px;border-radius:50%;
    object-fit:cover;flex-shrink:0;
}
.following-user-avatar-initial{
    display:flex;align-items:center;justify-content:center;
    background:var(--emerald-l);color:var(--emerald);
    font-weight:700;font-size:.95rem;
}
.following-user-info{flex:1;min-width:0}
.following-user-name{
    font-size:.9rem;font-weight:600;color:var(--ink);
}
.following-user-card .follow-btn{
    width:28px;height:28px;
}

/* Following empty state */
.following-empty{
    text-align:center;padding:40px 20px;color:var(--ink-40);
}
.following-empty-icon{font-size:2.5rem;display:block;margin-bottom:12px}
.following-empty p{margin:4px 0;font-size:.9rem}
.following-empty-sub{font-size:.8rem;color:var(--ink-20)}

/* User posts view */
.user-posts-view{max-width:640px;width:100%;margin:0 auto}
.user-posts-header{
    display:flex;align-items:center;gap:12px;margin-bottom:16px;
}
.user-posts-title{
    font-family:var(--f-display);
    font-size:1.2rem;font-weight:700;color:var(--ink);
}

/* Feed loading placeholder */
.feed-loading{
    text-align:center;padding:30px;color:var(--ink-40);font-size:.9rem;
}

/* ============================================================
   PSICOLOGOS SECTION — Available psychologists tab
   ============================================================ */
.psicologos-section{
    max-width:720px;width:100%;margin:0 auto;
    padding:24px 16px 48px;
    overflow-y:auto;
}

.psicologos-header{
    margin-bottom:24px;
}
.psicologos-title{
    font-family:var(--f-display);
    font-size:1.4rem;font-weight:700;color:var(--ink);
    margin-bottom:4px;
}
.psicologos-subtitle{
    font-size:.88rem;color:var(--ink-40);line-height:1.5;
}

/* Tab active color */
.tab-btn[data-tab="psicologos"].active{color:var(--emerald)}

/* States: loading, error, empty */
.psi-state{
    display:flex;flex-direction:column;align-items:center;
    justify-content:center;gap:12px;
    padding:48px 16px;text-align:center;
    color:var(--ink-40);
}
.psi-state p{font-size:.92rem;line-height:1.5;margin:0}
.psi-state-icon{font-size:2rem}
.psi-state-sub{font-size:.82rem;color:var(--ink-20)}

.psi-spinner{
    width:32px;height:32px;
    border:3px solid var(--ink-10);
    border-top-color:var(--emerald);
    border-radius:50%;
    animation:psiSpin .8s linear infinite;
}
@keyframes psiSpin{to{transform:rotate(360deg)}}

.psi-retry-btn{
    margin-top:8px;
    padding:8px 20px;border-radius:100px;
    font-size:.84rem;font-weight:600;
    color:var(--emerald);
    background:var(--emerald-l);
    border:1px solid var(--emerald);
    transition:all var(--dur-fast);
}
.psi-retry-btn:hover{
    background:var(--emerald);color:var(--white);
}

.psi-cta-link{
    display:inline-block;margin-top:8px;
    font-size:.86rem;font-weight:600;
    color:var(--emerald);
    transition:color var(--dur-fast);
}
.psi-cta-link:hover{color:var(--emerald-d)}

/* Psi Section Titles */
.psi-section-title{
    font-family:var(--f-display);
    font-size:1.1rem;font-weight:700;
    color:var(--ink);
    margin:24px 0 12px;
    padding-bottom:8px;
    border-bottom:2px solid var(--ink-10);
}
.psi-section-title-urgent{
    color:var(--emerald-d);
    border-color:var(--emerald);
}

/* ---- Compact Psi Cards (unified for both grids) ---- */
.psi-featured-grid,
.psi-available-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
}
@media(min-width:601px){
    .psi-featured-grid,
    .psi-available-grid{
        grid-template-columns:repeat(4,1fr);
        gap:16px;
    }
}
@media(min-width:601px) and (max-width:900px){
    .psi-featured-grid,
    .psi-available-grid{
        grid-template-columns:repeat(2,1fr);
    }
}

/* Single compact card */
.psi-compact-card{
    background:var(--white);
    border:1px solid var(--ink-10);
    border-radius:var(--r-lg);
    padding:16px;
    display:flex;
    align-items:center;
    gap:12px;
    animation:psiCardIn .4s var(--ease-out) both;
    transition:border-color var(--dur-fast),box-shadow var(--dur-fast);
}
.psi-compact-card:hover{
    border-color:var(--ink-20);
    box-shadow:0 2px 8px rgba(0,0,0,.06);
}
.psi-compact-card--available{
    border-color:var(--emerald);
    box-shadow:0 2px 12px rgba(47,111,100,.08);
}

/* Desktop: vertical card layout */
@media(min-width:601px){
    .psi-compact-card{
        flex-direction:column;
        align-items:center;
        text-align:center;
        padding:20px 16px;
        gap:10px;
    }
}

/* Avatar */
.psi-compact-photo{
    width:64px;height:64px;border-radius:50%;
    object-fit:cover;flex-shrink:0;
    background:var(--ink-05);
    border:2px solid var(--emerald-l);
}
.psi-compact-photo-fallback{
    width:64px;height:64px;border-radius:50%;flex-shrink:0;
    background:var(--ink-05);border:2px solid var(--emerald-l);
    display:flex;align-items:center;justify-content:center;
    color:var(--ink-20);
}
.psi-compact-photo-fallback svg{width:28px;height:28px}
@media(min-width:601px){
    .psi-compact-photo,
    .psi-compact-photo-fallback{width:72px;height:72px}
    .psi-compact-photo-fallback svg{width:32px;height:32px}
}

/* Info block */
.psi-compact-info{flex:1;min-width:0}
.psi-compact-name{
    font-family:var(--f-display);
    font-size:.95rem;font-weight:700;color:var(--ink);
    line-height:1.3;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.psi-compact-crp{
    font-size:.72rem;font-weight:600;
    color:var(--ink-40);margin-top:1px;
}
.psi-compact-status{
    display:flex;align-items:center;gap:5px;
    font-size:.72rem;font-weight:600;
    color:#16a34a;margin-top:4px;
}
@media(min-width:601px){
    .psi-compact-status{justify-content:center}
}
.psi-compact-status--active{color:var(--ink-40)}
.psi-compact-status-dot{
    width:7px;height:7px;border-radius:50%;
    background:#16a34a;
    animation:breathe 2s ease-in-out infinite;
}
.psi-compact-status--active .psi-compact-status-dot{background:var(--ink-40)}

/* Tags */
.psi-compact-tags{margin-top:4px}
.psi-compact-tag{
    display:inline-block;
    padding:2px 10px;border-radius:100px;
    background:var(--emerald-l);color:var(--emerald-d);
    font-size:.7rem;font-weight:600;
}

/* WhatsApp button */
.psi-compact-wpp{
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:9px 14px;
    border-radius:var(--r-md);
    background:var(--wpp);color:var(--white);
    font-size:.8rem;font-weight:700;
    text-decoration:none;
    flex-shrink:0;
    box-shadow:0 2px 8px rgba(37,211,102,.25);
    transition:all var(--dur-fast) var(--ease-out);
    cursor:pointer;line-height:1;
}
.psi-compact-wpp svg{width:18px;height:18px;flex-shrink:0}
.psi-compact-wpp:hover{
    background:var(--wpp-d);
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(37,211,102,.35);
}
.psi-compact-wpp:active{transform:translateY(0)}
@media(min-width:601px){
    .psi-compact-wpp{width:100%;justify-content:center;padding:10px 12px}
}
@media(max-width:600px){
    .psi-compact-wpp-label{display:none}
}

/* Hide avatars mode */
.psi-available-grid.hide-avatars .psi-compact-photo,
.psi-available-grid.hide-avatars .psi-compact-photo-fallback,
.psi-featured-grid.hide-avatars .psi-compact-photo,
.psi-featured-grid.hide-avatars .psi-compact-photo-fallback{
    visibility:hidden;
}

@keyframes psiCardIn{
    from{opacity:0;transform:translateY(16px)}
    to{opacity:1;transform:translateY(0)}
}
@keyframes breathe{
    0%,100%{opacity:1;transform:scale(1)}
    50%{opacity:.5;transform:scale(.85)}
}

/* Footer CTA */
.psi-available-footer{
    margin-top:24px;text-align:center;
}
.psi-cta-btn{
    display:inline-flex;align-items:center;gap:8px;
    padding:12px 24px;border-radius:100px;
    font-size:.88rem;font-weight:600;
    color:var(--white);
    background:var(--emerald);
    transition:all var(--dur-fast);
    box-shadow:0 4px 16px rgba(47,111,100,.25);
}
.psi-cta-btn svg{width:18px;height:18px}
.psi-cta-btn:hover{
    background:var(--emerald-d);
    transform:translateY(-2px);
    box-shadow:0 6px 20px rgba(47,111,100,.35);
}
.psi-cta-btn:active{transform:translateY(0)}

/* Responsive — Psicologos */
@media(max-width:600px){
    .psicologos-section{padding:12px 10px 32px}
    .psicologos-header{margin-bottom:14px}
    .psicologos-title{font-size:1.1rem}
    .psicologos-subtitle{font-size:.8rem}
    .psi-state{padding:32px 12px}
    .psi-state p{font-size:.85rem}
    .psi-state-icon{font-size:1.6rem}
    .psi-available-footer{margin-top:16px}
    .psi-cta-btn{padding:10px 18px;font-size:.82rem;width:100%;justify-content:center}
    .psi-retry-btn{font-size:.8rem;padding:7px 16px}
    .psi-compact-card{padding:12px;gap:10px}
    .psi-compact-photo,.psi-compact-photo-fallback{width:48px;height:48px}
    .psi-compact-photo-fallback svg{width:22px;height:22px}
    .psi-compact-name{font-size:.88rem}
    .psi-compact-crp{font-size:.68rem}
    .psi-compact-status{font-size:.68rem}
    .psi-compact-tag{font-size:.66rem}
    .psi-section-title{font-size:1rem;margin:18px 0 10px}
}

/* Tablet landscape (769px - 1023px) */
@media(min-width:769px) and (max-width:1023px){
    .topbar{padding:0 16px;gap:6px}
    .tab-btn{padding:8px 14px;font-size:.82rem}
}

/* Very small screens (< 380px) — icon-only tabs */
@media(max-width:380px){
    .tab-btn{padding:7px 10px;min-height:44px}
    .tab-btn .tab-icon{width:18px;height:18px}
    .tab-label-short{display:none !important}
    .topbar-logo{font-size:.88rem}
    .topbar-btn{width:44px;height:44px}
    .topbar-btn svg{width:18px;height:18px}
    .psi-compact-card{padding:10px;gap:8px}
    .psi-compact-photo,.psi-compact-photo-fallback{width:40px;height:40px}
    .psi-compact-photo-fallback svg{width:18px;height:18px}
    .psi-compact-name{font-size:.82rem}
    .psi-compact-wpp{padding:8px 10px;font-size:.75rem}
    .psi-cta-btn{font-size:.78rem;padding:9px 14px;min-height:44px}
    #heroSVG{height:320px}
}

/* ==========================================================
   NOTIFICATIONS — Bell, Badge, Dropdown, Subscribe Toggle
   ========================================================== */

/* Bell button */
.topbar-notif-btn{
    position:relative;
    width:36px;height:36px;border-radius:var(--r-full);
    display:flex;align-items:center;justify-content:center;
    transition:background var(--dur-fast);
}
.topbar-notif-btn svg{width:20px;height:20px}
.topbar-notif-btn:hover{background:var(--ink-10)}

/* Badge */
.notif-badge{
    position:absolute;top:2px;right:2px;
    min-width:16px;height:16px;padding:0 4px;
    background:var(--fem);color:var(--white);border-radius:100px;
    font-size:.6rem;font-weight:700;line-height:1;
    display:flex;align-items:center;justify-content:center;
    pointer-events:none;
    animation:notifPop .3s var(--ease-spring);
}
@keyframes notifPop{
    0%{transform:scale(0)}
    100%{transform:scale(1)}
}

/* Notification Panel */
.notif-panel{
    position:absolute;top:56px;right:8px;
    width:360px;max-height:440px;
    background:var(--white);border-radius:var(--r-md);
    box-shadow:var(--shadow-3);z-index:200;
    display:flex;flex-direction:column;
    animation:notifSlideDown .2s var(--ease-out);
}
@keyframes notifSlideDown{
    0%{opacity:0;transform:translateY(-8px)}
    100%{opacity:1;transform:translateY(0)}
}
.notif-panel-header{
    padding:14px 16px;
    border-bottom:1px solid var(--ink-10);
    display:flex;align-items:center;justify-content:space-between;
    flex-shrink:0;
}
.notif-panel-header span{
    font-size:.95rem;font-weight:600;color:var(--ink);
}
.notif-mark-read-btn{
    font-size:.75rem;color:var(--emerald);font-weight:600;
    background:none;border:none;cursor:pointer;
    padding:4px 8px;border-radius:var(--r-sm);
    transition:background var(--dur-fast);
}
.notif-mark-read-btn:hover{background:var(--emerald-l)}

/* Notification list */
.notif-list{
    flex:1;overflow-y:auto;overscroll-behavior:contain;
}
.notif-item{
    padding:12px 16px;
    border-bottom:1px solid var(--ink-05);
    display:flex;gap:10px;
    cursor:pointer;
    transition:background var(--dur-fast);
}
.notif-item:hover{background:var(--ink-05)}
.notif-item.unread{background:var(--emerald-l)}
.notif-item.unread:hover{background:#d5ede6}
.notif-item-icon{
    flex-shrink:0;width:32px;height:32px;
    border-radius:var(--r-full);
    background:var(--ink-05);
    display:flex;align-items:center;justify-content:center;
}
.notif-item-icon svg{width:16px;height:16px;color:var(--ink-40)}
.notif-item.unread .notif-item-icon{
    background:var(--emerald);
}
.notif-item.unread .notif-item-icon svg{color:var(--white)}
.notif-item-content{flex:1;min-width:0}
.notif-item-title{
    font-size:.85rem;font-weight:600;color:var(--ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.notif-item-body{
    font-size:.78rem;color:var(--ink-40);margin-top:2px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.notif-item-time{
    font-size:.7rem;color:var(--ink-20);margin-top:4px;
}

/* Empty state */
.notif-empty{
    padding:32px 16px;text-align:center;
    font-size:.85rem;color:var(--ink-40);
}

/* Bell icon on topic cards (community listing) */
.tp-bell{
    position:absolute;top:8px;right:8px;
    width:30px;height:30px;border-radius:var(--r-full);
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.85);
    border:1.5px solid var(--ink-10);
    color:var(--ink-40);
    cursor:pointer;z-index:2;
    transition:all var(--dur-fast);
    backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
}
.tp-bell svg{width:15px;height:15px}
.tp-bell:hover{
    border-color:var(--emerald);color:var(--emerald);
    background:var(--white);
}
.tp-bell.active{
    background:var(--emerald);color:var(--white);
    border-color:var(--emerald);
}
.tp-bell.active:hover{
    background:var(--emerald-d);border-color:var(--emerald-d);
}
.tp-bell:disabled{opacity:.5;cursor:default}

/* Subscribe toggle button in topic feed */
.topic-subscribe-btn{
    display:inline-flex;align-items:center;gap:6px;
    padding:6px 14px;border-radius:100px;
    font-size:.78rem;font-weight:600;
    border:1.5px solid var(--ink-20);
    color:var(--ink-40);background:var(--white);
    cursor:pointer;margin-left:10px;
    transition:all var(--dur-fast);
    vertical-align:middle;
}
.topic-subscribe-btn svg{width:16px;height:16px}
.topic-subscribe-btn:hover{border-color:var(--emerald);color:var(--emerald)}
.topic-subscribe-btn.subscribed{
    border-color:var(--emerald);
    background:var(--emerald);
    color:var(--white);
}
.topic-subscribe-btn.subscribed:hover{
    background:var(--emerald-d);
    border-color:var(--emerald-d);
}
.topic-subscribe-btn:disabled{opacity:.5;cursor:default}

/* Mobile ≤600px */
@media(max-width:600px){
    .notif-panel{
        width:100%;right:0;left:0;top:52px;
        border-radius:0 0 var(--r-md) var(--r-md);
        max-height:60vh;
    }
    .topic-subscribe-btn{
        padding:5px 10px;font-size:.72rem;
    }
}

/* ==========================================================
   ADMIN FILTERS
   ========================================================== */
.admin-filters-desc{
    font-size:.85rem;color:var(--ink-40);margin-bottom:16px;line-height:1.5;
}
.admin-filters-list{
    display:flex;flex-direction:column;gap:8px;
}
.admin-filter-item{
    display:flex;align-items:center;justify-content:space-between;
    background:var(--white);border-radius:var(--r-sm);
    padding:14px 16px;border:1px solid var(--ink-10);
    transition:border-color var(--dur-fast);
}
.admin-filter-item:has(input:checked){
    border-color:var(--emerald);
}
.admin-filter-info{
    display:flex;flex-direction:column;gap:2px;
}
.admin-filter-label{
    font-size:.9rem;font-weight:600;color:var(--ink);
}
.admin-filter-type{
    font-size:.75rem;color:var(--ink-40);
}
.admin-filter-toggle{
    display:flex;align-items:center;gap:10px;cursor:pointer;user-select:none;
}
.admin-filter-toggle input{display:none}
.admin-filter-track{
    position:relative;width:40px;height:22px;
    background:#ccc;border-radius:11px;flex-shrink:0;
    transition:background var(--dur-fast);
}
.admin-filter-toggle:has(input:checked) .admin-filter-track{
    background:var(--emerald);
}
.admin-filter-thumb{
    position:absolute;top:2px;left:2px;
    width:18px;height:18px;border-radius:50%;
    background:white;box-shadow:0 1px 3px rgba(0,0,0,.2);
    transition:transform var(--dur-fast);
}
.admin-filter-toggle:has(input:checked) .admin-filter-thumb{
    transform:translateX(18px);
}
.admin-filter-status{
    font-size:.78rem;font-weight:600;color:var(--ink-40);min-width:42px;
}
.admin-filter-toggle:has(input:checked) .admin-filter-status{
    color:var(--emerald-d);
}

/* === SAFE AREA (iPhone notch/home bar) === */
@supports(padding: env(safe-area-inset-bottom)){
    .topbar{padding-top:env(safe-area-inset-top)}
    .community-section,.psicologos-section,.membros-section,.atividade-section{padding-bottom:env(safe-area-inset-bottom)}
    .modal-overlay{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
}

/* ==========================================================
   Toast Notifications (ErrorHandler)
   ========================================================== */
.ab-toast-container{
    position:fixed; top:16px; right:16px; z-index:100000;
    display:flex; flex-direction:column; gap:8px;
    pointer-events:none; max-width:min(400px, calc(100vw - 32px));
}
.ab-toast{
    display:flex; align-items:center; gap:10px;
    padding:12px 16px; border-radius:12px;
    background:#1a1a2e; color:#fff;
    font-family:'DM Sans',sans-serif; font-size:.875rem; line-height:1.4;
    box-shadow:0 8px 24px rgba(0,0,0,.25);
    pointer-events:auto;
    opacity:0; transform:translateX(40px);
    transition:opacity .3s ease, transform .3s ease;
}
.ab-toast-enter{ opacity:1; transform:translateX(0); }
.ab-toast-exit{ opacity:0; transform:translateX(40px); }
.ab-toast-error{ border-left:4px solid #e74c3c; }
.ab-toast-warning{ border-left:4px solid #f39c12; }
.ab-toast-success{ border-left:4px solid #2ecc71; }
.ab-toast-info{ border-left:4px solid #3498db; }
.ab-toast-icon{ flex-shrink:0; width:20px; height:20px; }
.ab-toast-icon svg{ width:100%; height:100%; }
.ab-toast-error .ab-toast-icon{ color:#e74c3c; }
.ab-toast-warning .ab-toast-icon{ color:#f39c12; }
.ab-toast-success .ab-toast-icon{ color:#2ecc71; }
.ab-toast-info .ab-toast-icon{ color:#3498db; }
.ab-toast-msg{ flex:1; word-break:break-word; }
.ab-toast-close{
    flex-shrink:0; background:none; border:none; color:rgba(255,255,255,.6);
    font-size:1.2rem; cursor:pointer; padding:0 0 0 8px; line-height:1;
}
.ab-toast-close:hover{ color:#fff; }
@media(max-width:480px){
    .ab-toast-container{ top:auto; bottom:16px; right:8px; left:8px; max-width:100%; }
    .ab-toast{ transform:translateY(40px); }
    .ab-toast-enter{ transform:translateY(0); }
    .ab-toast-exit{ transform:translateY(40px); }
}

/* --- Validation Feedback --- */
.field-invalid{
    border-color:#e53935 !important;
    box-shadow:0 0 0 2px rgba(229,57,53,.15) !important;
}
.field-valid{
    border-color:#43a047 !important;
}
.field-error-msg{
    color:#e53935;
    font-size:.78rem;
    margin-top:4px;
    margin-bottom:2px;
    line-height:1.3;
}

/* ==========================================================
   DIRECT MESSAGES — DM Button, Badge, List, Chat
   ========================================================== */

/* DM Button in topbar */
.topbar-dm-btn{
    position:relative;
    width:36px;height:36px;border-radius:var(--r-full);
    display:flex;align-items:center;justify-content:center;
    transition:background var(--dur-fast);
}
.topbar-dm-btn svg{width:20px;height:20px}
.topbar-dm-btn:hover{background:var(--ink-10)}

/* DM Badge */
.dm-badge{
    position:absolute;top:2px;right:2px;
    min-width:16px;height:16px;padding:0 4px;
    background:var(--emerald);color:var(--white);border-radius:100px;
    font-size:.6rem;font-weight:700;line-height:1;
    display:flex;align-items:center;justify-content:center;
    pointer-events:none;
    animation:notifPop .3s var(--ease-spring);
}

/* DM Message button in post actions bar */
.feed-post-actions .dm-post-btn{
    color:var(--ink-40);
}
.feed-post-actions .dm-post-btn:hover{color:var(--emerald);background:var(--emerald-l)}

/* ===== DM LIST VIEW ===== */
.dm-list-view{
    max-width:640px;margin:0 auto;padding:0 16px;
}
.dm-list-header{
    display:flex;align-items:center;gap:12px;
    padding:16px 0;border-bottom:1px solid var(--ink-10);
}
.dm-list-title{
    font-family:var(--f-body);font-size:1.1rem;
    font-weight:600;color:var(--ink);
}
.dm-conv-list{
    display:flex;flex-direction:column;
}

/* Conversation card */
.dm-conv-card{
    display:flex;align-items:center;gap:12px;
    padding:14px 8px;border-bottom:1px solid var(--ink-05);
    cursor:pointer;transition:background var(--dur-fast);
    border-radius:var(--r-sm);
}
.dm-conv-card:hover{background:var(--ink-05)}
.dm-conv-card.unread{background:var(--emerald-l)}
.dm-conv-card.unread:hover{background:#d5ede6}

.dm-conv-avatar{
    flex-shrink:0;width:44px;height:44px;
    border-radius:var(--r-full);
    background:var(--ink-10);
    display:flex;align-items:center;justify-content:center;
    overflow:hidden;
}
.dm-conv-avatar img{width:100%;height:100%;object-fit:cover}
.dm-conv-avatar .avatar-initial{
    font-size:.9rem;font-weight:600;color:var(--ink-60);
}

.dm-conv-info{
    flex:1;min-width:0;
}
.dm-conv-name{
    font-size:.9rem;font-weight:600;color:var(--ink);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dm-conv-preview{
    font-size:.8rem;color:var(--ink-40);margin-top:2px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.dm-conv-card.unread .dm-conv-name{color:var(--emerald-d)}
.dm-conv-card.unread .dm-conv-preview{color:var(--ink-60);font-weight:500}

.dm-conv-meta{
    flex-shrink:0;display:flex;flex-direction:column;
    align-items:flex-end;gap:4px;
}
.dm-conv-time{
    font-size:.7rem;color:var(--ink-20);white-space:nowrap;
}
.dm-conv-unread-dot{
    width:10px;height:10px;border-radius:var(--r-full);
    background:var(--emerald);
}

/* Empty state */
.dm-list-empty{
    padding:48px 16px;text-align:center;color:var(--ink-40);
}
.dm-list-empty svg{color:var(--ink-20);margin-bottom:12px}
.dm-list-empty p{font-size:.9rem;margin:0}
.dm-list-empty-sub{font-size:.8rem;color:var(--ink-20);margin-top:6px}

/* ===== DM CHAT VIEW ===== */
.dm-chat-view{
    max-width:640px;margin:0 auto;
    display:flex;flex-direction:column;
    height:calc(100vh - 56px);
}
.dm-chat-header{
    display:flex;align-items:center;gap:12px;
    padding:12px 16px;border-bottom:1px solid var(--ink-10);
    flex-shrink:0;background:var(--white);
}
.dm-chat-header-user{
    display:flex;align-items:center;gap:10px;
}
.dm-chat-avatar{
    width:36px;height:36px;border-radius:var(--r-full);
    background:var(--ink-10);overflow:hidden;
    display:flex;align-items:center;justify-content:center;
}
.dm-chat-avatar img{width:100%;height:100%;object-fit:cover}
.dm-chat-avatar .avatar-initial{
    font-size:.8rem;font-weight:600;color:var(--ink-60);
}
.dm-chat-name{
    font-size:.95rem;font-weight:600;color:var(--ink);
}

/* Messages list */
.dm-messages-list{
    flex:1;overflow-y:auto;overscroll-behavior:contain;
    padding:16px;display:flex;flex-direction:column;gap:6px;
}

/* Message bubbles */
.dm-message{
    max-width:78%;padding:10px 14px;
    border-radius:var(--r-md);
    font-size:.88rem;line-height:1.45;
    word-wrap:break-word;
    position:relative;
}
.dm-message-received{
    align-self:flex-start;
    background:var(--ink-05);color:var(--ink);
    border-bottom-left-radius:4px;
}
.dm-message-sent{
    align-self:flex-end;
    background:var(--emerald);color:var(--white);
    border-bottom-right-radius:4px;
}

.dm-message-time{
    font-size:.65rem;margin-top:4px;
    opacity:.6;
}
.dm-message-sent .dm-message-time{text-align:right}

.dm-read-indicator{
    font-size:.6rem;color:rgba(255,255,255,.7);
    display:inline-block;margin-left:4px;
}
.dm-read-indicator.read{color:rgba(255,255,255,.95)}

/* Composer */
.dm-composer{
    display:flex;align-items:flex-end;gap:8px;
    padding:12px 16px;border-top:1px solid var(--ink-10);
    background:var(--white);flex-shrink:0;
}
.dm-composer textarea{
    flex:1;resize:none;border:1px solid var(--ink-10);
    border-radius:var(--r-md);padding:10px 14px;
    font-family:var(--f-body);font-size:.88rem;
    background:var(--ink-05);color:var(--ink);
    outline:none;transition:border-color var(--dur-fast);
    max-height:120px;min-height:40px;
    line-height:1.4;
}
.dm-composer textarea:focus{border-color:var(--emerald)}
.dm-composer textarea::placeholder{color:var(--ink-20)}

.dm-send-btn{
    width:40px;height:40px;border-radius:var(--r-full);
    background:var(--emerald);color:var(--white);
    border:none;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    transition:background var(--dur-fast),opacity var(--dur-fast);
    flex-shrink:0;
}
.dm-send-btn:hover{background:var(--emerald-d)}
.dm-send-btn:disabled{opacity:.4;cursor:default}
.dm-send-btn svg{width:18px;height:18px}

/* Date separator */
.dm-date-sep{
    text-align:center;font-size:.7rem;color:var(--ink-20);
    padding:8px 0;
}

/* Mobile adjustments */
@media(max-width:600px){
    .dm-chat-view{height:calc(100vh - 52px)}
    .dm-message{max-width:85%}
    .dm-list-view{padding:0 8px}
}

/* ==========================================================
   BLOCKS — Block Modal & Blocked Users View
   ========================================================== */
.modal-block{max-width:380px;text-align:center}
.modal-block h3{margin:0 0 12px;font-size:1.1rem}
.block-warning{font-size:.8rem;color:#999;margin:8px 0 16px}
.block-actions{display:flex;gap:10px;justify-content:center;margin-top:8px}
.btn-danger{background:#e53935;color:white;border:none;border-radius:8px;padding:10px 20px;font-size:.85rem;cursor:pointer}
.btn-danger:hover{background:#c62828}

.user-profile-block-btn{
    background:none;border:1px solid #e53935;color:#e53935;
    border-radius:20px;padding:6px 14px;font-size:.8rem;cursor:pointer;
    margin-top:4px;
}
.user-profile-block-btn:hover{background:#ffebee}

.blocked-users-view{max-width:640px;margin:0 auto;padding:0 16px}
.blocked-users-header{display:flex;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid #eee}
.blocked-users-title{font-size:1rem;font-weight:600;color:var(--ink-80)}
.blocked-users-list{padding:8px 0}
.blocked-empty{text-align:center;color:#999;padding:40px 0;font-size:.9rem}
.blocked-user-card{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid #f5f5f5}
.blocked-user-avatar{width:40px;height:40px;border-radius:50%;background:var(--cream-15);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}
.blocked-user-avatar img{width:100%;height:100%;object-fit:cover}
.blocked-user-initial{font-size:.9rem;font-weight:600;color:var(--ink-40)}
.blocked-user-info{flex:1;min-width:0}
.blocked-user-name{font-weight:600;font-size:.9rem;color:var(--ink-80);display:block}
.blocked-user-date{font-size:.75rem;color:#999}
.blocked-user-unblock{
    background:none;border:1px solid var(--emerald);color:var(--emerald);
    border-radius:20px;padding:5px 14px;font-size:.78rem;cursor:pointer;flex-shrink:0;
}
.blocked-user-unblock:hover{background:#e8f5e9}

/* Saved posts view */
.saved-posts-view{max-width:640px;margin:0 auto;padding:0 16px}
.saved-posts-header{display:flex;align-items:center;gap:8px;padding:12px 0;border-bottom:1px solid #eee}
.saved-posts-title{font-size:1rem;font-weight:600;color:var(--ink-80)}
.saved-posts-list{padding:8px 0}
.saved-empty{text-align:center;color:#999;padding:40px 0;font-size:.9rem}

/* ==========================================================
   ANNOUNCEMENT BANNER
   ========================================================== */
.announcement-banner{
    background:linear-gradient(135deg,#e3f2fd,#bbdefb);
    border-bottom:1px solid #90caf9;padding:0;
}
.announcement-banner[data-type="warning"]{background:linear-gradient(135deg,#fff3e0,#ffe0b2);border-color:#ffb74d}
.announcement-banner[data-type="event"]{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-color:#81c784}
.announcement-banner[data-type="celebration"]{background:linear-gradient(135deg,#fce4ec,#f8bbd0);border-color:#f48fb1}
.announcement-banner-inner{
    max-width:800px;margin:0 auto;display:flex;align-items:center;gap:10px;
    padding:10px 16px;position:relative;
}
.announcement-icon{font-size:1.2rem;flex-shrink:0}
.announcement-text{flex:1;font-size:.85rem;line-height:1.4;color:#333}
.announcement-text strong{display:block;font-size:.9rem;margin-bottom:2px}
.announcement-link-btn{
    display:inline-block;margin-top:6px;padding:4px 14px;
    font-size:.8rem;font-weight:600;color:#fff;background:#1971c2;
    border-radius:6px;text-decoration:none;transition:background .2s;
}
.announcement-link-btn:hover{background:#1560a5}
.announcement-close{
    background:none;border:none;font-size:1.3rem;cursor:pointer;
    color:#666;padding:4px 8px;line-height:1;flex-shrink:0;
}

/* ==========================================================
   STREAK BAR
   ========================================================== */
.streak-bar{
    display:flex;align-items:center;justify-content:center;gap:6px;
    padding:6px 12px;font-size:.8rem;color:#555;
    background:linear-gradient(90deg,#fff8e1,#ffecb3);
    border-bottom:1px solid #ffe082;
}
.streak-flame{font-size:1rem}
.streak-text b{color:#e65100}

/* ==========================================================
   ONBOARDING OVERLAY
   ========================================================== */
.onboarding-overlay{
    position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:2000;
    display:flex;align-items:center;justify-content:center;padding:20px;
}
.onboarding-card{
    background:white;border-radius:16px;padding:28px 24px;max-width:380px;width:100%;
    box-shadow:0 16px 48px rgba(0,0,0,.2);text-align:center;
}
.onboarding-card h3{margin:0 0 8px;font-size:1.2rem}
.onboarding-card p{margin:0 0 20px;font-size:.85rem;color:#666}
.onboarding-steps{display:flex;flex-direction:column;gap:10px;text-align:left;margin-bottom:20px}
.onboarding-step{
    display:flex;align-items:center;gap:10px;padding:10px 14px;
    background:#f8f9fa;border-radius:10px;font-size:.88rem;color:#333;
    border:1px solid #eee;transition:all .2s;
}
.onboarding-step.done{background:#e8f5e9;border-color:#a5d6a7}
.onboarding-step.done .onboarding-check{color:#43a047}
.onboarding-check{font-size:1.1rem;flex-shrink:0}
.onboarding-dismiss{
    background:none;border:none;color:#888;font-size:.82rem;
    cursor:pointer;text-decoration:underline;
}

/* ==========================================================
   REPORT MODAL
   ========================================================== */
.modal-report{max-width:420px}
.modal-report h3{margin:0 0 8px;font-size:1.1rem}
.report-target-info{font-size:.8rem;color:#888;margin:0 0 16px}
.report-reasons{display:flex;flex-direction:column;gap:8px;margin-bottom:16px;text-align:left}
.report-reasons label{
    display:flex;align-items:center;gap:8px;font-size:.85rem;color:#444;
    cursor:pointer;padding:8px 12px;border-radius:8px;border:1px solid #eee;
    transition:background .15s;
}
.report-reasons label:has(input:checked){background:#e3f2fd;border-color:#90caf9}
.report-reasons input[type="radio"]{accent-color:var(--emerald)}
.report-details{
    width:100%;min-height:60px;border:1px solid #ddd;border-radius:8px;
    padding:10px;font-size:.85rem;resize:vertical;font-family:inherit;
}
.report-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:12px}
.report-error{color:#e53935;font-size:.8rem;margin-top:8px}

/* ==========================================================
   REFERRAL MODAL
   ========================================================== */
.modal-referral{max-width:400px;text-align:center}
.modal-referral h3{margin:0 0 8px;font-size:1.1rem}
.modal-referral p{font-size:.85rem;color:#666;margin:0 0 16px}
.referral-link-box{
    display:flex;gap:8px;margin-bottom:16px;
}
.referral-link-box input{
    flex:1;padding:10px 12px;border:1px solid #ddd;border-radius:8px;
    font-size:.82rem;background:#f8f9fa;color:#333;
}
.referral-copy-btn{
    padding:10px 16px;background:var(--emerald);color:white;border:none;
    border-radius:8px;font-weight:600;cursor:pointer;font-size:.82rem;
    white-space:nowrap;
}
.referral-whatsapp-btn{
    display:flex;align-items:center;justify-content:center;gap:8px;
    width:100%;padding:12px;background:#25D366;color:white;border:none;
    border-radius:10px;font-size:.9rem;font-weight:600;cursor:pointer;
    margin-bottom:12px;
}
.referral-whatsapp-btn svg{width:20px;height:20px}
.referral-close-btn{width:100%}

/* ==========================================================
   WEEKLY DIGEST
   ========================================================== */
.digest-panel{
    position:fixed;top:52px;right:0;width:340px;max-height:80vh;
    background:white;border-radius:0 0 0 16px;box-shadow:0 8px 32px rgba(0,0,0,.15);
    z-index:1100;overflow-y:auto;
}
.digest-header{
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 18px 12px;border-bottom:1px solid #eee;
}
.digest-header h3{margin:0;font-size:1rem}
.digest-close{background:none;border:none;font-size:1.3rem;cursor:pointer;color:#888}
.digest-content{padding:16px 18px}
.digest-stat{
    display:flex;align-items:center;gap:12px;padding:10px 0;
    border-bottom:1px solid #f5f5f5;
}
.digest-stat-icon{font-size:1.3rem;flex-shrink:0}
.digest-stat-info{flex:1}
.digest-stat-value{font-size:1.1rem;font-weight:700;color:var(--ink)}
.digest-stat-label{font-size:.75rem;color:#888}
.digest-badge{
    position:absolute;top:4px;right:2px;
    background:#ff6b6b;color:white;font-size:.6rem;font-weight:700;
    min-width:16px;height:16px;border-radius:8px;
    display:flex;align-items:center;justify-content:center;padding:0 4px;
}
.topbar-digest-btn{position:relative}

/* ==========================================================
   FEATURED POST
   ========================================================== */
.featured-post-wrap{
    margin:12px 0;padding:0 12px;
}
.featured-post-card{
    background:linear-gradient(135deg,#fff9c4,#fff176);
    border:2px solid #ffd54f;border-radius:16px;padding:16px 18px;
    position:relative;overflow:hidden;
}
.featured-post-label{
    display:inline-flex;align-items:center;gap:6px;
    background:#ff8f00;color:white;font-size:.72rem;font-weight:700;
    padding:3px 10px;border-radius:20px;margin-bottom:10px;
    text-transform:uppercase;letter-spacing:.5px;
}
.featured-post-content{font-size:.9rem;color:#333;line-height:1.5;margin-bottom:8px}
.featured-post-author{font-size:.78rem;color:#888}
.featured-post-reactions{font-size:.78rem;color:#666;margin-top:4px}

/* ==========================================================
   DIVERSE REACTIONS
   ========================================================== */
.reaction-wrap{position:relative;display:inline-flex}
.reaction-wrap .reaction-icon{display:inline-flex;align-items:center;font-size:1.1rem;line-height:1}
.reaction-picker{
    display:none;position:absolute;bottom:100%;left:0;
    background:white;border-radius:24px;padding:6px 10px;
    box-shadow:0 4px 20px rgba(0,0,0,.15);gap:4px;
    z-index:50;white-space:nowrap;margin-bottom:4px;
}
.reaction-wrap:hover .reaction-picker,.reaction-picker.show{display:flex}
.reaction-pick-btn{
    background:none;border:none;font-size:1.3rem;cursor:pointer;
    padding:4px 6px;border-radius:8px;transition:transform .15s,background .15s;
    line-height:1;
}
.reaction-pick-btn:hover{transform:scale(1.3);background:#f0f0f0}
.reaction-counts{display:flex;gap:4px;flex-wrap:wrap}
.reaction-count-chip{
    display:inline-flex;align-items:center;gap:3px;
    padding:2px 8px;border-radius:12px;font-size:.75rem;
    background:#f5f5f5;color:#555;cursor:pointer;border:1px solid transparent;
    transition:all .15s;
}
.reaction-count-chip.active{border-color:var(--emerald);background:#e8f5e9;color:#2e7d32}

/* ==========================================================
   BADGES
   ========================================================== */
.profile-badges{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.badge-chip{
    display:inline-flex;align-items:center;gap:4px;
    padding:3px 10px;border-radius:12px;font-size:.72rem;
    background:#f3e5f5;color:#7b1fa2;font-weight:500;
    border:1px solid #ce93d8;
}
.badge-chip[data-cat="streak"]{background:#fff3e0;color:#e65100;border-color:#ffb74d}
.badge-chip[data-cat="social"]{background:#e3f2fd;color:#1565c0;border-color:#64b5f6}
.badge-chip[data-cat="referral"]{background:#e8f5e9;color:#2e7d32;border-color:#81c784}
.badge-chip[data-cat="onboarding"]{background:#f1f8e9;color:#558b2f;border-color:#aed581}
.badge-chip-sm{font-size:.62rem;padding:1px 6px;vertical-align:middle;margin-left:2px}
.badge-date{font-size:.6rem;opacity:.7;margin-left:2px}
.profile-badges-grid{gap:8px}

/* Trending section */
.trending-section{padding:12px 16px;margin-bottom:8px}
.trending-title{font-size:.85rem;font-weight:700;color:var(--ink-80);margin-bottom:8px;display:flex;align-items:center;gap:6px}
.trending-title::before{content:'';display:inline-block;width:3px;height:14px;background:var(--emerald);border-radius:2px}
.trending-chips{display:flex;flex-wrap:wrap;gap:8px}
.trending-chip{
    display:inline-flex;align-items:center;gap:4px;
    padding:6px 14px;border-radius:20px;font-size:.8rem;
    background:white;border:1px solid #e0e0e0;color:var(--ink-80);
    cursor:pointer;transition:all .15s;
}
.trending-chip:hover{border-color:var(--emerald);background:#f0fdf4}
.trending-count{font-size:.7rem;color:#999;margin-left:2px}

/* ==========================================================
   ADMIN DASHBOARD
   ========================================================== */
.admin-dashboard{padding:4px 0}
.admin-stats-grid{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
    gap:10px;margin-bottom:20px;
}
.admin-stat-card{
    background:white;border-radius:12px;padding:14px;
    border:1px solid #eee;text-align:center;
}
.admin-stat-value{font-size:1.5rem;font-weight:800;color:var(--ink)}
.admin-stat-label{font-size:.72rem;color:#888;margin-top:2px}
.admin-stat-card.highlight{border-color:var(--emerald);background:#f0fdf4}
.admin-stat-card.warning{border-color:#ff9800;background:#fff8e1}
.admin-section-title{
    font-size:.85rem;font-weight:700;color:var(--ink);margin:20px 0 10px;
    padding-bottom:6px;border-bottom:1px solid #eee;
}
.admin-top-topics{display:flex;flex-direction:column;gap:6px}
.admin-top-topic{
    display:flex;align-items:center;gap:10px;padding:8px 12px;
    background:#f8f9fa;border-radius:8px;font-size:.82rem;
}
.admin-top-topic-bar{
    height:6px;border-radius:3px;background:var(--emerald);
    transition:width .5s ease;
}
.admin-top-referrers{display:flex;flex-direction:column;gap:6px}
.admin-referrer-item{
    display:flex;align-items:center;justify-content:space-between;
    padding:8px 12px;background:#f8f9fa;border-radius:8px;font-size:.82rem;
}

/* ==========================================================
   ADMIN REPORTS
   ========================================================== */
.admin-reports-count{
    font-size:.82rem;color:#888;margin-bottom:12px;
}
.admin-report-item{
    background:white;border:1px solid #eee;border-radius:10px;
    padding:14px 16px;margin-bottom:8px;
}
.admin-report-item.pending{border-left:3px solid #ff9800}
.admin-report-item.reviewed{border-left:3px solid var(--emerald);opacity:.7}
.admin-report-item.dismissed{border-left:3px solid #ccc;opacity:.5}
.admin-report-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.admin-report-type{
    font-size:.7rem;font-weight:600;text-transform:uppercase;
    padding:2px 8px;border-radius:4px;background:#eee;color:#666;
}
.admin-report-date{font-size:.72rem;color:#aaa}
.admin-report-reason{font-size:.85rem;color:#333;margin-bottom:8px}
.admin-report-actions{display:flex;gap:8px}
.admin-report-actions button{
    padding:5px 12px;border:none;border-radius:6px;font-size:.75rem;
    font-weight:600;cursor:pointer;
}
.admin-report-actions .btn-hide{background:#fff3e0;color:#e65100}
.admin-report-actions .btn-ban{background:#ffebee;color:#c62828}
.admin-report-actions .btn-dismiss{background:#f5f5f5;color:#888}

/* ==========================================================
   ADMIN ANNOUNCEMENTS
   ========================================================== */
.admin-announcement-form{
    background:#f8f9fa;border-radius:10px;padding:16px;margin-bottom:16px;
    border:1px solid #eee;
}
.admin-announcement-form input,
.admin-announcement-form textarea,
.admin-announcement-form select{
    width:100%;padding:8px 12px;border:1px solid #ddd;border-radius:8px;
    font-size:.85rem;font-family:inherit;margin-bottom:8px;box-sizing:border-box;
}
.admin-announcement-form textarea{min-height:60px;resize:vertical}
.admin-announcement-form .form-row{display:flex;gap:8px}
.admin-announcement-form .form-row>*{flex:1}
.admin-announcement-item{
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 14px;background:white;border:1px solid #eee;
    border-radius:8px;margin-bottom:6px;font-size:.82rem;
}
.admin-announcement-item.inactive{opacity:.5}

/* ==========================================================
   ADMIN SITE LINKS
   ========================================================== */
.admin-link-item{
    display:flex;align-items:center;justify-content:space-between;
    background:var(--white);border-radius:var(--r-sm);
    padding:14px 16px;border:1px solid var(--ink-10);gap:12px;
    transition:opacity var(--dur-fast);
}
.admin-link-disabled{opacity:.5}
.admin-link-fields{flex:1;display:flex;flex-direction:column;gap:6px}
.admin-link-row{display:flex;align-items:center;gap:8px}
.admin-link-row label{font-size:.75rem;font-weight:600;color:var(--ink-40);min-width:38px}
.admin-link-input{
    flex:1;padding:6px 10px;border:1px solid var(--ink-10);border-radius:6px;
    font-size:.82rem;font-family:var(--f-body);color:var(--ink);
}
.admin-link-input:focus{outline:none;border-color:var(--emerald)}
.admin-link-actions{display:flex;flex-direction:column;align-items:center;gap:8px}
.admin-link-save-btn{
    padding:5px 14px;border:none;border-radius:6px;
    background:var(--emerald);color:var(--white);
    font-size:.78rem;font-weight:600;cursor:pointer;
    transition:background var(--dur-fast);
}
.admin-link-save-btn:hover{background:var(--emerald-d)}

/* ==========================================================
   ADMIN BAN
   ========================================================== */
.admin-member-ban-btn{
    padding:3px 10px;font-size:.7rem;border:none;border-radius:6px;
    cursor:pointer;font-weight:600;
}
.admin-member-ban-btn.ban{background:#ffebee;color:#c62828}
.admin-member-ban-btn.unban{background:#e8f5e9;color:#2e7d32}
.admin-member-banned-tag{
    font-size:.65rem;background:#e53935;color:white;padding:1px 6px;
    border-radius:4px;font-weight:600;margin-left:6px;
}

/* ==========================================================
   ADMIN FEATURED POST MANAGER
   ========================================================== */
.admin-featured-current{
    background:#fff9c4;border:1px solid #ffd54f;border-radius:10px;
    padding:14px 16px;margin-bottom:16px;
}
.admin-featured-none{
    text-align:center;padding:20px;color:#888;font-size:.85rem;
}

/* Report button on posts */
.feed-post-report{
    background:none;border:none;color:#bbb;font-size:.72rem;
    cursor:pointer;padding:2px 6px;margin-left:auto;
}
.feed-post-report:hover{color:#e53935}

/* ============================================================
   MEMBROS SECTION — Members listing tab
   ============================================================ */
.membros-section{
    max-width:600px;width:100%;margin:0 auto;
    padding:24px 16px 48px;overflow-y:auto;
}
.membros-header{margin-bottom:16px}
.membros-title{
    font-family:var(--f-display);
    font-size:1.1rem;font-weight:700;color:var(--ink);margin-bottom:12px;
}
.membros-search{
    width:100%;padding:10px 14px;border-radius:8px;
    border:1px solid var(--ink-10);font-size:.85rem;
    font-family:var(--f-body);background:var(--white);
    outline:none;transition:border-color var(--dur-fast);
}
.membros-search:focus{border-color:var(--emerald)}
.membros-tabs{display:flex;gap:8px;margin-bottom:16px}
.membros-tab{
    padding:8px 16px;border-radius:20px;
    border:1px solid var(--ink-10);background:var(--white);
    font-size:.85rem;cursor:pointer;font-family:var(--f-body);
    transition:all var(--dur-fast);
}
.membros-tab:hover{border-color:var(--emerald);color:var(--emerald)}
.membros-tab.active{background:var(--emerald);color:white;border-color:var(--emerald)}
.membros-list{display:flex;flex-direction:column;gap:8px}
.membro-card{
    display:flex;align-items:center;gap:12px;
    padding:12px 16px;background:var(--white);
    border-radius:8px;border:1px solid var(--ink-10);
    transition:box-shadow var(--dur-fast);
}
.membro-card:hover{box-shadow:var(--shadow-2)}
.membro-avatar{
    width:44px;height:44px;border-radius:50%;
    object-fit:cover;flex-shrink:0;overflow:hidden;
}
.membro-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.membro-avatar-initial{
    width:44px;height:44px;border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:var(--ink-10);color:var(--ink-70);
    font-weight:600;font-size:1rem;flex-shrink:0;
}
.membro-info{flex:1;min-width:0}
.membro-name{font-size:.9rem;font-weight:600;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.membro-name .psi-badge{
    display:inline-block;font-size:.65rem;background:var(--emerald);
    color:white;padding:1px 6px;border-radius:4px;
    margin-left:6px;vertical-align:middle;font-weight:600;
}
.membro-meta{font-size:.75rem;color:var(--ink-40);display:block}
.membro-no-follow{
    font-size:.7rem;color:var(--ink-40);text-align:center;
    max-width:90px;line-height:1.2;flex-shrink:0;
}
.membro-follow-btn{
    display:inline-flex;align-items:center;gap:4px;
    padding:6px 14px;border-radius:20px;
    border:1.5px solid var(--emerald);background:transparent;
    color:var(--emerald);font-size:.78rem;font-weight:600;
    cursor:pointer;transition:all var(--dur-fast);
    white-space:nowrap;flex-shrink:0;font-family:var(--f-body);
}
.membro-follow-btn:hover{background:var(--emerald-l)}
.membro-follow-btn.following{
    background:var(--emerald);color:white;border-color:var(--emerald);
}
.membro-follow-btn.following:hover{
    background:#c0392b;border-color:#c0392b;
}
.membro-follow-btn:disabled{opacity:.5;cursor:default}
.membro-actions{display:flex;flex-direction:column;gap:4px;align-items:flex-end;flex-shrink:0}
.membro-ver-post-btn{
    display:inline-flex;align-items:center;gap:4px;
    padding:5px 12px;border-radius:20px;
    border:1.5px solid var(--ink-20);background:transparent;
    color:var(--ink-60);font-size:.72rem;font-weight:600;
    cursor:pointer;transition:all var(--dur-fast);
    white-space:nowrap;font-family:var(--f-body);
}
.membro-ver-post-btn:hover{border-color:var(--emerald);color:var(--emerald);background:var(--emerald-l)}

@media(max-width:600px){
    .membros-section{padding:12px 10px 32px}
    .membro-card{padding:10px 12px;gap:10px}
}

/* ============================================================
   ATIVIDADE FISICA SECTION
   ============================================================ */
.atividade-section{
    max-width:600px;width:100%;margin:0 auto;
    padding:24px 16px 48px;overflow-y:auto;
}
.atividade-header{margin-bottom:20px}
.atividade-title{
    font-family:var(--f-display);
    font-size:1.1rem;font-weight:700;color:var(--ink);margin-bottom:4px;
}
.atividade-subtitle{font-size:.82rem;color:var(--ink-40)}
.tab-btn[data-tab="atividade"].active{color:var(--emerald)}

/* Streak Widget */
.atv-streak-widget{
    display:flex;align-items:center;justify-content:space-between;
    background:linear-gradient(135deg,var(--emerald-l),var(--white));
    border:1px solid var(--ink-10);border-radius:var(--r-md);
    padding:16px 20px;margin-bottom:16px;
}
.atv-streak-main{display:flex;align-items:center;gap:12px}
.atv-streak-emoji{font-size:2rem}
.atv-streak-info{display:flex;flex-direction:column}
.atv-streak-count{font-size:1.6rem;font-weight:800;color:var(--emerald);line-height:1}
.atv-streak-label{font-size:.75rem;color:var(--ink-40);margin-top:2px}
.atv-streak-best{
    display:flex;flex-direction:column;align-items:flex-end;
    font-size:.78rem;color:var(--ink-40);
}
.atv-streak-best-val{font-weight:700;color:var(--ink-70);font-size:.95rem}

/* Cards */
.atv-card{
    background:var(--white);border:1px solid var(--ink-10);
    border-radius:var(--r-md);padding:20px;margin-bottom:16px;
}
.atv-card-title{
    font-family:var(--f-display);font-size:.95rem;font-weight:700;
    color:var(--ink);margin-bottom:14px;
}

/* Gate */
.atv-gate-text{font-size:.85rem;color:var(--ink-40);margin-bottom:12px}

/* Checked-in State */
.atv-checked-in{text-align:center;padding:16px 0}
.atv-checked-icon{font-size:2rem;display:block;margin-bottom:8px}
.atv-checked-text{font-size:.9rem;font-weight:600;color:var(--emerald);margin-bottom:4px}
.atv-checked-detail{font-size:.8rem;color:var(--ink-40)}

/* Type Pills */
.atv-field-label{
    display:block;font-size:.8rem;font-weight:600;
    color:var(--ink-70);margin-bottom:8px;margin-top:14px;
}
.atv-field-label:first-child{margin-top:0}
.atv-type-pills{display:flex;flex-wrap:wrap;gap:8px}
.atv-type-pill{
    display:inline-flex;align-items:center;gap:4px;
    padding:8px 14px;border-radius:100px;
    border:1.5px solid var(--ink-10);background:var(--white);
    font-size:.82rem;cursor:pointer;font-family:var(--f-body);
    transition:all var(--dur-fast);color:var(--ink-70);
}
.atv-type-pill:hover{border-color:var(--emerald);color:var(--emerald)}
.atv-type-pill.selected{
    background:var(--emerald);color:white;border-color:var(--emerald);
}

/* Form Inputs */
.atv-input{
    width:100%;padding:10px 14px;border-radius:8px;
    border:1px solid var(--ink-10);font-size:.85rem;
    font-family:var(--f-body);background:var(--white);
    outline:none;transition:border-color var(--dur-fast);
}
.atv-input:focus{border-color:var(--emerald)}
.atv-textarea{
    width:100%;padding:10px 14px;border-radius:8px;
    border:1px solid var(--ink-10);font-size:.85rem;
    font-family:var(--f-body);background:var(--white);
    outline:none;transition:border-color var(--dur-fast);
    resize:vertical;
}
.atv-textarea:focus{border-color:var(--emerald)}

/* Submit Button */
.atv-submit-btn{
    width:100%;padding:12px;margin-top:18px;
    border-radius:8px;border:none;
    background:var(--emerald);color:white;
    font-size:.9rem;font-weight:600;font-family:var(--f-body);
    cursor:pointer;transition:all var(--dur-fast);
}
.atv-submit-btn:hover{background:var(--emerald-d)}
.atv-submit-btn:disabled{opacity:.5;cursor:default}

/* Period Tabs */
.atv-period-tabs{display:flex;gap:8px;margin-bottom:14px}
.atv-period-tab{
    padding:6px 14px;border-radius:20px;
    border:1px solid var(--ink-10);background:var(--white);
    font-size:.82rem;cursor:pointer;font-family:var(--f-body);
    transition:all var(--dur-fast);
}
.atv-period-tab:hover{border-color:var(--emerald);color:var(--emerald)}
.atv-period-tab.active{background:var(--emerald);color:white;border-color:var(--emerald)}

/* Stats Summary */
.atv-stats-summary{
    display:flex;gap:24px;margin-bottom:16px;
}
.atv-stat-item{display:flex;flex-direction:column;align-items:center}
.atv-stat-val{font-size:1.4rem;font-weight:800;color:var(--emerald);line-height:1}
.atv-stat-label{font-size:.72rem;color:var(--ink-40);margin-top:2px}

/* Bar Chart */
.atv-chart{
    display:flex;align-items:flex-end;gap:6px;
    height:120px;padding-top:8px;
}
.atv-bar-col{
    flex:1;display:flex;flex-direction:column;
    align-items:center;gap:4px;height:100%;
}
.atv-bar-track{
    flex:1;width:100%;border-radius:4px;
    background:var(--ink-05);position:relative;
    min-height:0;
}
.atv-bar-fill{
    position:absolute;bottom:0;left:0;right:0;
    border-radius:4px;background:var(--emerald);
    transition:height .3s var(--ease-out);
}
.atv-bar-label{
    font-size:.6rem;color:var(--ink-40);
    white-space:nowrap;
}
.atv-bar-val{
    font-size:.6rem;color:var(--ink-70);font-weight:600;
}
.atv-chart-empty{
    text-align:center;padding:24px 0;
    font-size:.82rem;color:var(--ink-40);
}

/* Community Feed */
.atv-feed{display:flex;flex-direction:column;gap:12px}
.atv-feed-item{
    display:flex;gap:10px;padding:10px 0;
    border-bottom:1px solid var(--ink-05);
}
.atv-feed-item:last-child{border-bottom:none}
.atv-feed-avatar{
    width:36px;height:36px;border-radius:50%;
    flex-shrink:0;overflow:hidden;
    display:flex;align-items:center;justify-content:center;
    background:var(--ink-10);color:var(--ink-70);
    font-weight:600;font-size:.8rem;
}
.atv-feed-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.atv-feed-body{flex:1;min-width:0}
.atv-feed-name{font-size:.82rem;font-weight:600;color:var(--ink)}
.atv-feed-badge{
    display:inline-block;font-size:.68rem;
    background:var(--emerald-l);color:var(--emerald);
    padding:2px 8px;border-radius:10px;
    margin-left:6px;font-weight:600;
}
.atv-feed-msg{
    font-size:.82rem;color:var(--ink-70);
    margin-top:4px;line-height:1.4;
}
.atv-feed-time{font-size:.68rem;color:var(--ink-40);margin-top:4px}
.atv-feed-empty{
    text-align:center;padding:20px 0;
    font-size:.82rem;color:var(--ink-40);
}

/* Enhanced Feed: Header row (name + city) */
.atv-feed-header-row{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.atv-feed-city{font-size:.72rem;color:var(--ink-40);font-weight:400}
.atv-feed-city::before{content:'·';margin-right:4px}

/* Enhanced Feed: Activity type row */
.atv-feed-activity-row{display:flex;align-items:center;gap:6px;margin-top:2px}
.atv-feed-type{font-size:.72rem;font-weight:600;color:var(--emerald);text-transform:uppercase;letter-spacing:.02em}

/* Enhanced Feed: Branding */
.atv-feed-brand{
    font-size:.62rem;color:#047857;margin-top:6px;
    font-weight:600;letter-spacing:.01em;
}

/* Enhanced Feed: Actions bar */
.atv-feed-actions{
    display:flex;align-items:center;gap:12px;
    margin-top:8px;padding-top:8px;
    border-top:1px solid var(--ink-05);
}
.atv-feed-actions .feed-action-btn{
    display:flex;align-items:center;gap:4px;
    background:none;border:none;cursor:pointer;
    font-size:.78rem;color:var(--ink-40);
    padding:4px 8px;border-radius:100px;
    transition:all var(--dur-fast);
    min-height:32px;min-width:32px;
    justify-content:center;
}
.atv-feed-actions .feed-action-btn:hover{background:var(--ink-05);color:var(--ink-70)}
.atv-feed-actions .feed-action-btn svg{width:16px;height:16px}
.atv-feed-actions .feed-action-btn.liked{color:var(--emerald)}
.atv-feed-actions .feed-action-btn.liked svg{fill:var(--emerald);stroke:var(--emerald)}

/* Enhanced Feed: Reaction wrap */
.atv-reaction-wrap{position:relative;display:inline-flex}
.atv-reaction-wrap .reaction-icon{display:inline-flex;align-items:center;font-size:1rem;line-height:1}
.atv-reaction-picker{
    display:none;position:absolute;bottom:100%;left:0;
    background:white;border-radius:24px;padding:6px 10px;
    box-shadow:0 4px 20px rgba(0,0,0,.15);gap:4px;
    z-index:50;white-space:nowrap;margin-bottom:4px;
}
.atv-reaction-wrap:hover .atv-reaction-picker,
.atv-reaction-picker.show{display:flex}
.atv-reaction-picker .reaction-pick-btn{
    background:none;border:none;font-size:1.3rem;cursor:pointer;
    padding:4px 6px;border-radius:8px;transition:transform .15s,background .15s;
    line-height:1;
}
.atv-reaction-picker::before{
    content:'';position:absolute;bottom:-10px;left:0;right:0;height:10px;
}
.atv-reaction-picker .reaction-pick-btn:hover{transform:scale(1.3);background:#f0f0f0}

/* Enhanced Feed: Replies section */
.atv-feed-replies{
    margin-top:10px;padding-top:10px;
    border-top:1px solid var(--ink-05);
    display:none;
}
.atv-feed-replies.open{display:block}
.atv-feed-replies-list{display:flex;flex-direction:column;gap:8px}
.atv-reply-item{
    display:flex;gap:8px;align-items:flex-start;
    font-size:.78rem;color:var(--ink-70);
}
.atv-reply-avatar{
    width:24px;height:24px;border-radius:50%;flex-shrink:0;
    overflow:hidden;display:flex;align-items:center;justify-content:center;
    background:var(--ink-10);color:var(--ink-70);font-weight:600;font-size:.6rem;
}
.atv-reply-avatar img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.atv-reply-body{flex:1;min-width:0}
.atv-reply-name{font-weight:600;color:var(--ink);font-size:.75rem}
.atv-reply-text{margin-top:1px}
.atv-reply-time{font-size:.62rem;color:var(--ink-40);margin-top:2px}
.atv-reply-form{display:flex;gap:8px;margin-top:8px;align-items:center}
.atv-reply-form input{
    flex:1;border:1px solid var(--ink-10);border-radius:100px;
    padding:6px 14px;font-size:.78rem;outline:none;
    transition:border-color var(--dur-fast);
    background:var(--white);color:var(--ink);
}
.atv-reply-form input:focus{border-color:var(--emerald)}
.atv-reply-form button{
    background:var(--emerald);color:white;border:none;
    border-radius:100px;padding:6px 14px;font-size:.75rem;
    font-weight:600;cursor:pointer;white-space:nowrap;
    transition:opacity var(--dur-fast);
    min-height:32px;
}
.atv-reply-form button:hover{opacity:.9}
.atv-reply-form button:disabled{opacity:.5;cursor:not-allowed}

/* Dark mode overrides */
[data-theme="dark"] .atv-streak-widget{
    background:linear-gradient(135deg,rgba(47,111,100,.12),var(--white));
}
[data-theme="dark"] .atv-card{background:var(--white);border-color:var(--ink-10)}
[data-theme="dark"] .atv-type-pill{background:var(--ink-05);border-color:var(--ink-10)}
[data-theme="dark"] .atv-type-pill.selected{background:var(--emerald);border-color:var(--emerald)}
[data-theme="dark"] .atv-input,[data-theme="dark"] .atv-textarea{
    background:var(--ink-05);border-color:var(--ink-10);color:var(--ink);
}
[data-theme="dark"] .atv-reaction-picker{background:var(--ink-05);box-shadow:0 4px 20px rgba(0,0,0,.4)}
[data-theme="dark"] .atv-reaction-picker .reaction-pick-btn:hover{background:var(--ink-10)}
[data-theme="dark"] .atv-reply-form input{background:var(--ink-05);border-color:var(--ink-10);color:var(--ink)}

/* Mobile */
@media(max-width:600px){
    .atividade-section{padding:12px 10px 32px}
    .atv-streak-widget{padding:12px 14px}
    .atv-streak-emoji{font-size:1.5rem}
    .atv-streak-count{font-size:1.3rem}
    .atv-card{padding:14px}
    .atv-chart{height:90px;gap:4px}
    .atv-bar-label{font-size:.55rem}
}

@media(max-width:600px){
    .admin-stats-grid{grid-template-columns:repeat(2,1fr)}
    .digest-panel{width:100%;border-radius:0}
    .announcement-banner-inner{padding:8px 12px}
}

/* ============================================================
   GENDER PICKER (inside Principal tab)
   ============================================================ */
.gender-picker{
    display:flex;justify-content:center;gap:6px;
    padding:12px 16px 4px;
}
.gender-btn{
    padding:7px 20px;border-radius:100px;
    border:1.5px solid var(--ink-20);background:transparent;
    color:var(--ink-60);font-size:.82rem;font-weight:600;
    cursor:pointer;transition:all var(--dur-fast) var(--ease-out);
    font-family:var(--f-body);
}
.gender-btn:hover{border-color:var(--ink-40);color:var(--ink-70)}
.gender-btn.active[data-gender="women"]{
    background:var(--fem-soft);border-color:var(--fem);color:var(--fem);
}
.gender-btn.active[data-gender="men"]{
    background:var(--masc-soft);border-color:var(--masc);color:var(--masc);
}
[data-theme="dark"] .gender-btn{border-color:var(--ink-20);color:var(--ink-40)}
[data-theme="dark"] .gender-btn:hover{border-color:var(--ink-40);color:var(--ink-60)}
[data-theme="dark"] .gender-btn.active[data-gender="women"]{
    background:rgba(214,51,108,.15);border-color:var(--fem);color:var(--fem);
}
[data-theme="dark"] .gender-btn.active[data-gender="men"]{
    background:rgba(25,113,194,.15);border-color:var(--masc);color:var(--masc);
}

/* ============================================================
   WHATSAPP MEMOVIMENTAR BANNER (inside Atividade tab)
   ============================================================ */
.atv-whatsapp-banner{
    margin-bottom:16px;
}
.atv-whatsapp-link{
    display:flex;align-items:center;gap:10px;
    padding:14px 18px;border-radius:var(--r-md);
    background:var(--wpp);color:#fff;
    font-size:.9rem;font-weight:600;
    text-decoration:none;
    transition:background var(--dur-fast) var(--ease-out);
    box-shadow:0 2px 8px rgba(37,211,102,.3);
}
.atv-whatsapp-link:hover{background:var(--wpp-d)}
.atv-whatsapp-link svg{flex-shrink:0}
[data-theme="dark"] .atv-whatsapp-link{
    background:rgba(37,211,102,.85);
}
[data-theme="dark"] .atv-whatsapp-link:hover{
    background:var(--wpp);
}

/* ============================================================
   SHARE PREVIEW MODAL
   ============================================================ */
.share-preview-card{
    max-width:480px;width:100%;background:var(--white);border-radius:var(--r-xl);
    padding:0;position:relative;max-height:90vh;overflow-y:auto;
    animation:modalIn var(--dur-med) var(--ease-out);
    box-shadow:var(--shadow-4);
}
.share-preview-card .auth-close{
    position:absolute;top:12px;right:12px;z-index:2;
    width:32px;height:32px;border-radius:var(--r-full);
    background:rgba(0,0,0,.06);display:flex;align-items:center;justify-content:center;
    font-size:1.2rem;color:var(--ink-40);transition:all var(--dur-fast);
}
.share-preview-card .auth-close:hover{background:rgba(0,0,0,.12);color:var(--ink)}
.share-preview-header{
    background:linear-gradient(135deg, var(--emerald-l) 0%, #d1fae5 100%);
    padding:28px 24px 20px;border-radius:var(--r-xl) var(--r-xl) 0 0;text-align:center;
}
.share-preview-emojis{
    font-size:1.6rem;letter-spacing:6px;margin-bottom:8px;
    animation:emojiBounce 2s ease-in-out infinite;
}
@keyframes emojiBounce{
    0%,100%{transform:translateY(0)}
    50%{transform:translateY(-4px)}
}
.share-preview-card h3{
    font-family:var(--f-display);font-size:1.25rem;font-weight:700;
    color:var(--emerald-d);margin:0;
}
.share-preview-subtitle{
    font-size:.82rem;color:var(--emerald);margin-top:4px;font-weight:500;
}
.share-format-tabs{display:flex;gap:8px;margin:0;padding:16px 24px 0}
.share-format-btn{
    flex:1;padding:10px 8px;border:2px solid var(--ink-10);border-radius:var(--r-md);
    background:none;cursor:pointer;font-weight:600;font-size:.82rem;color:var(--ink-40);
    transition:all var(--dur-fast);
    display:flex;align-items:center;justify-content:center;gap:6px;
}
.share-format-btn svg{flex-shrink:0}
.share-format-btn.active{
    border-color:var(--emerald);color:var(--emerald);background:var(--emerald-l);
    box-shadow:0 2px 8px rgba(47,111,100,.15);
}
.share-preview-container{
    display:flex;justify-content:center;background:var(--ink-05);
    border-radius:var(--r-md);padding:16px;margin:16px 24px;
}
.share-preview-container canvas{max-width:100%;max-height:55vh;border-radius:8px;box-shadow:var(--shadow-2)}
.share-preview-actions{display:flex;gap:10px;padding:0 24px 24px}
.share-action-primary{
    flex:1;padding:14px;background:var(--emerald);color:white;border:none;
    border-radius:var(--r-md);font-weight:600;cursor:pointer;font-size:.9rem;
    transition:all var(--dur-fast);
    display:flex;align-items:center;justify-content:center;gap:8px;
    box-shadow:0 2px 8px rgba(47,111,100,.25);
}
.share-action-primary:hover{background:var(--emerald-d);transform:translateY(-1px);box-shadow:0 4px 12px rgba(47,111,100,.3)}
.share-action-secondary{
    flex:1;padding:14px;background:var(--ink-05);color:var(--ink);border:none;
    border-radius:var(--r-md);font-weight:600;cursor:pointer;font-size:.9rem;
    transition:all var(--dur-fast);
    display:flex;align-items:center;justify-content:center;gap:8px;
}
.share-action-secondary:hover{background:var(--ink-10);transform:translateY(-1px)}
.share-action-primary svg,.share-action-secondary svg{flex-shrink:0}

/* ==========  Mentions  ========== */
.mention-link{color:var(--emerald);font-weight:600;cursor:pointer;transition:color var(--dur-fast)}
.mention-link:hover{color:var(--emerald-d);text-decoration:underline}
.mention-dropdown{
    position:fixed;background:var(--white);border:1px solid var(--ink-10);
    border-radius:var(--r-md);box-shadow:var(--shadow-2);z-index:1100;
    max-height:220px;overflow-y:auto;min-width:200px;
}
.mention-item{
    display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;
    transition:background var(--dur-fast);
}
.mention-item:hover,.mention-item.active{background:var(--emerald-l)}
.mention-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;background:var(--ink-05)}
.mention-initial{
    width:28px;height:28px;border-radius:50%;background:var(--emerald-l);color:var(--emerald);
    display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.75rem;
}
.mention-name{font-size:.88rem;color:var(--ink);font-weight:500}

/* ==========  Explore Page  ========== */
.explore-section{padding:0 16px 80px}
.explore-header{display:flex;align-items:center;justify-content:space-between;padding:16px 0 8px}
.explore-title{font-size:1.15rem;font-weight:700;color:var(--ink)}
.explore-block{margin-bottom:24px}
.explore-block-title{
    font-size:.95rem;font-weight:700;color:var(--ink-70);margin-bottom:12px;
    display:flex;align-items:center;gap:8px;
}
.explore-post-card{
    background:var(--white);border:1px solid var(--ink-10);border-radius:var(--r-md);
    padding:14px;margin-bottom:10px;cursor:pointer;transition:all var(--dur-fast);
}
.explore-post-card:hover{border-color:var(--emerald);box-shadow:0 2px 8px rgba(47,111,100,.1)}
.explore-post-author{font-size:.8rem;color:var(--ink-40);margin-bottom:4px;display:flex;align-items:center;gap:6px}
.explore-post-text{font-size:.9rem;color:var(--ink);line-height:1.4;margin-bottom:6px;
    display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.explore-post-meta{font-size:.78rem;color:var(--ink-40);display:flex;gap:12px}
.explore-profile-card{
    display:flex;align-items:center;gap:12px;background:var(--white);
    border:1px solid var(--ink-10);border-radius:var(--r-md);padding:12px;
    margin-bottom:8px;cursor:pointer;transition:all var(--dur-fast);
}
.explore-profile-card:hover{border-color:var(--emerald);box-shadow:0 2px 8px rgba(47,111,100,.1)}
.explore-profile-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:var(--ink-05);flex-shrink:0}
.explore-profile-initial{
    width:42px;height:42px;border-radius:50%;background:var(--emerald-l);color:var(--emerald);
    display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0;
}
.explore-profile-info{flex:1;min-width:0}
.explore-profile-name{font-weight:600;font-size:.9rem;color:var(--ink);display:flex;align-items:center;gap:6px}
.explore-profile-bio{font-size:.8rem;color:var(--ink-60);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.explore-profile-stats{font-size:.75rem;color:var(--ink-40)}
.explore-empty{text-align:center;color:var(--ink-40);padding:24px;font-size:.88rem}

/* ==========  Avatar Lazy Loading / Blur Placeholder  ========== */
.avatar-lazy{
    background:var(--ink-05);filter:blur(8px);transition:filter .3s ease;
}
.avatar-lazy.loaded{filter:none}
