/* SEN2gether — member area (auth + dashboard) design system.
   Shares the marketing restyle tokens: Fraunces display + Inter, brand purple,
   warm off-white, pastel accent chips. Self-contained (no marketing site.css). */

:root{
  --ink:#1F2A44; --ink-soft:#4A546D; --muted:#63697F;
  --brand:#887AC0; --brand-deep:#6D63A1; --brand-soft:#F2EFFB;
  --c-mint:#E3F2E8; --c-blush:#FAE1E3; --c-peach:#FBEBD7;
  --c-sky:#DFEBF6; --c-sunshine:#FBF2CB; --c-lilac:#EBE3F3;
  --cream:#FBFAF7; --paper:#FFFFFF; --surface-2:#F7F4FB; --line:#E6E4F0;
  --radius-lg:24px; --radius-md:16px; --radius-sm:10px;
  --shadow-sm:0 1px 2px rgba(31,42,68,.04),0 4px 12px rgba(31,42,68,.04);
  --shadow-md:0 4px 16px rgba(31,42,68,.06),0 16px 40px rgba(31,42,68,.08);
  --shadow-lg:0 12px 32px rgba(31,42,68,.10),0 24px 64px rgba(31,42,68,.12);
  --danger:#C0475A; --danger-soft:#FBE7EA;
  --ok:#2A8A56; --ok-soft:#E3F2E8;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:'Inter',-apple-system,BlinkMacSystemFont,system-ui,sans-serif;color:var(--ink);background:var(--cream);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
img{display:block;max-width:100%;}

/* ---- smooth image loading: shimmer skeleton -> fade-in, graceful fallback ---- */
@keyframes ph-sh{0%{background-position:200% 0}100%{background-position:-200% 0}}
.ph{position:relative;overflow:hidden;background:var(--surface-2);isolation:isolate;}
.ph::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,0,0,0) 0,rgba(255,255,255,.55) 50%,rgba(0,0,0,0) 100%);background-size:200% 100%;animation:ph-sh 1.4s ease-in-out infinite;pointer-events:none;transition:opacity .4s ease;}
.ph.is-loaded::after,.ph.is-error::after{opacity:0;animation:none;}
.ph-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;opacity:0;transition:opacity .5s ease;}
.ph.is-loaded .ph-img{opacity:1;}
.ph.is-error .ph-img{opacity:0;}
.ph.is-error{background:var(--brand-soft) url(/2025/assets/logo.png) center/38px no-repeat;}
@media (prefers-reduced-motion:reduce){.ph::after{animation:none}.ph-img{transition:none}}
/* Site-wide smooth image loading for every non-.ph image (avatars, logo, GIFs).
   Start transparent, fade in once decoded (or on error, so nothing stays hidden). */
img.img-smooth{opacity:0;transition:opacity .45s ease;}
img.img-smooth.is-in{opacity:1;}
@media (prefers-reduced-motion:reduce){img.img-smooth{transition:none;}}
.pod-thumb .pod-play,.pod-thumb .pod-dur,.pod-thumb .topic-soon,.topic-thumb .topic-soon{z-index:3;}
a{color:var(--brand-deep);text-decoration:none;}
h1,h2,h3{font-family:'Fraunces',Georgia,serif;font-weight:500;letter-spacing:-.02em;color:var(--ink);margin:0;}
.skip-link{position:absolute;left:-9999px;}
.skip-link:focus{left:12px;top:12px;position:fixed;background:var(--ink);color:#fff;padding:10px 18px;border-radius:10px;z-index:200;}

/* ---------------- shared controls ---------------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:'Inter',sans-serif;font-weight:600;font-size:15px;letter-spacing:-.005em;padding:15px 24px;border-radius:14px;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:transform .15s ease,background .2s,box-shadow .2s,border-color .2s;width:100%;}
.btn svg{width:18px;height:18px;}
.btn-primary{background:var(--brand-deep);color:#fff;box-shadow:0 6px 20px rgba(108,91,177,.28);}
.btn-primary:hover{background:#5b5290;transform:translateY(-2px);box-shadow:0 12px 28px rgba(108,91,177,.34);}
.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none;}
.btn-ghost{background:var(--paper);color:var(--ink);border-color:var(--line);}
.btn-ghost:hover{border-color:var(--brand);color:var(--brand);}

.field{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;}
.field label{font-size:13px;font-weight:600;color:var(--ink-soft);}
.field .hint{font-size:12px;color:var(--muted);}
.input-wrap{position:relative;}
.field input[type=text],.field input[type=email],.field input[type=password],
.field input[type=date],.field input[type=number],.field input[type=tel]{
  width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;
  font-family:inherit;font-size:15px;color:var(--ink);background:var(--cream);
  transition:border-color .2s,box-shadow .2s,background .2s;}
.field input:focus{outline:none;border-color:var(--brand);background:var(--paper);box-shadow:0 0 0 3px var(--brand-soft);}
/* Native date input: strip the platform chrome so it matches text fields, keep a
   tidy calendar affordance, and pin the height so it lines up with the others. */
.field input[type=date]{-webkit-appearance:none;appearance:none;min-height:52px;line-height:1.3;}
.field input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0;}
.field input[type=date]::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer;padding:2px;border-radius:6px;transition:opacity .2s,background .2s;}
.field input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.9;background:var(--brand-soft);}
.field input[type=date]:required:invalid{color:var(--muted);}
/* White input fields on the auth / onboarding cards (matches the focus state). */
.auth-form .field input[type=text],.auth-form .field input[type=email],.auth-form .field input[type=password],
.auth-form .field input[type=date],.auth-form .field input[type=number],.auth-form .field input[type=tel]{
  background:var(--paper);}
.input-wrap .toggle{position:absolute;right:10px;top:50%;transform:translateY(-50%);background:none;border:0;cursor:pointer;color:var(--muted);display:grid;place-items:center;padding:6px;border-radius:8px;}
.input-wrap .toggle:hover{color:var(--brand);background:var(--brand-soft);}
.input-wrap .toggle svg{width:20px;height:20px;}
.input-wrap.has-toggle input{padding-right:46px;}

.row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
@media (max-width:420px){.row-2{grid-template-columns:1fr;}}

.check{display:flex;align-items:flex-start;gap:10px;font-size:13.5px;color:var(--ink-soft);line-height:1.5;cursor:pointer;}
.check input{margin-top:2px;width:16px;height:16px;accent-color:var(--brand);flex-shrink:0;}
.check a{font-weight:600;}

/* region segmented control */
.segment{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.segment label{position:relative;cursor:pointer;}
.segment input{position:absolute;opacity:0;inset:0;cursor:pointer;}
.segment .seg{display:flex;flex-direction:column;gap:2px;padding:13px 16px;border:1px solid var(--line);border-radius:12px;background:var(--cream);transition:border-color .2s,background .2s,box-shadow .2s;}
.segment .seg b{font-size:14px;font-weight:600;color:var(--ink);}
.segment .seg span{font-size:12px;color:var(--muted);}
.segment input:focus-visible + .seg{box-shadow:0 0 0 3px var(--brand-soft);border-color:var(--brand);}
.segment input:checked + .seg{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand) inset;}

.alert{display:flex;align-items:flex-start;gap:10px;padding:13px 16px;border-radius:12px;font-size:14px;margin-bottom:20px;line-height:1.5;}
.alert svg{width:18px;height:18px;flex-shrink:0;margin-top:1px;}
.alert-error{background:var(--danger-soft);color:var(--danger);border:1px solid rgba(192,71,90,.2);}
.alert-ok{background:var(--ok-soft);color:var(--ok);border:1px solid rgba(42,138,86,.2);}
.alert-info{background:var(--brand-soft);color:var(--brand-deep);border:1px solid rgba(108,91,177,.2);}

/* ---------------- auth split layout ---------------- */
.auth{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;}
.auth-aside{position:relative;overflow:hidden;background:var(--ink);background-image:linear-gradient(150deg,rgba(136,122,192,.55) 0%,rgba(93,82,151,.25) 45%,rgba(31,42,68,0) 80%);color:#fff;padding:56px 56px 48px;display:flex;flex-direction:column;justify-content:space-between;}
.auth-aside .brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:18px;color:#fff;}
.auth-aside .brand img{height:46px;width:46px;object-fit:contain;}
.auth-aside .brand b{color:#fff;font-weight:700;}
.aside-body{max-width:440px;}
.aside-body h2{color:#fff;font-size:clamp(28px,3vw,40px);line-height:1.1;margin-bottom:16px;}
.aside-body h2 em{font-style:italic;font-weight:400;color:#DCD3F0;}
.aside-body p{color:rgba(255,255,255,.82);font-size:16px;margin:0 0 28px;}
.aside-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:14px;}
.aside-list li{display:flex;align-items:center;gap:12px;font-size:15px;color:rgba(255,255,255,.92);}
.aside-list .chip{width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.1);display:grid;place-items:center;flex-shrink:0;}
.aside-list .chip svg{width:20px;height:20px;color:#fff;}
.aside-foot{font-size:13px;color:rgba(255,255,255,.6);}
.aside-foot a{color:rgba(255,255,255,.85);font-weight:600;}

.auth-main{display:flex;align-items:center;justify-content:center;padding:48px 28px;background:var(--cream);}
.auth-card{width:100%;max-width:430px;}
.auth-card .m-logo{display:none;align-items:center;gap:10px;justify-content:center;font-weight:600;font-size:17px;color:var(--ink);margin-bottom:24px;}
.auth-card .m-logo img{height:42px;width:42px;}
.auth-card .m-logo b{color:var(--brand);font-weight:700;}
.auth-head{margin-bottom:26px;}
.auth-head .eyebrow{display:inline-block;font-size:13px;font-weight:600;color:var(--brand);margin-bottom:8px;}
.auth-head h1{font-size:clamp(28px,3.4vw,36px);line-height:1.08;margin-bottom:8px;}
.auth-head p{color:var(--ink-soft);font-size:15px;margin:0;}
.auth-form{margin-top:4px;}
.form-foot{margin-top:8px;text-align:center;font-size:14px;color:var(--ink-soft);}
.form-foot a{font-weight:600;}
.gsi{display:flex;justify-content:center;min-height:44px;margin-bottom:2px;}
.gsi > div{max-width:100%;}
.auth-divider{display:flex;align-items:center;gap:14px;margin:18px 0 6px;color:var(--muted);font-size:13px;}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--line);}
.forgot-row{display:flex;justify-content:flex-end;margin:-6px 0 16px;}
.forgot-row a{font-size:13px;font-weight:600;}
.mini-foot{margin-top:26px;text-align:center;}
.mini-foot a{font-size:13px;color:var(--muted);}
.mini-foot a:hover{color:var(--brand);}
.linkish{background:none;border:0;padding:0;font:inherit;font-size:13px;color:var(--muted);cursor:pointer;}
.linkish:hover{color:var(--brand);}
.linkish:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px;}

@media (max-width:900px){
  .auth{grid-template-columns:1fr;}
  .auth-aside{display:none;}
  .auth-card .m-logo{display:flex;}
}

/* ---------------- dashboard ---------------- */
.m-topbar{position:sticky;top:0;z-index:40;background:rgba(251,250,247,.85);backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);}
.m-topbar .inner{max-width:1080px;margin:0 auto;padding:0 24px;height:72px;display:flex;align-items:center;gap:16px;}
.m-topbar .brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:17px;color:var(--ink);}
.m-topbar .brand img{height:40px;width:40px;object-fit:contain;}
.m-topbar .brand b{color:var(--brand);font-weight:700;}
.m-topbar .spacer{flex:1;}
.m-user{display:flex;align-items:center;gap:10px;}
.m-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:var(--brand-soft);color:var(--brand-deep);display:grid;place-items:center;font-weight:600;font-size:14px;border:1px solid var(--line);}
.m-logout-form{display:inline;margin:0;}
.m-logout{display:inline-flex;align-items:center;gap:7px;font-family:inherit;font-size:14px;font-weight:600;color:var(--ink-soft);border:1px solid var(--line);background:var(--paper);border-radius:999px;padding:8px 16px;cursor:pointer;transition:all .18s;}
.m-logout:hover{border-color:var(--brand);color:var(--brand);}
.m-logout svg{width:16px;height:16px;}
.linkform{display:inline;margin:0;}
.linkbtn{background:none;border:0;padding:0;font-family:inherit;font-size:13px;color:var(--muted);cursor:pointer;}
.linkbtn:hover{color:var(--brand);}

.m-nav{display:flex;align-items:center;gap:4px;margin-left:8px;}
.m-nav a{font-size:14px;font-weight:500;color:var(--ink-soft);padding:8px 12px;border-radius:9px;transition:color .15s,background .15s;}
.m-nav a:hover{color:var(--brand-deep);background:var(--brand-soft);}
.m-nav a.on{color:var(--brand-deep);background:var(--brand-soft);}
@media (max-width:620px){.m-nav{display:none;}}

.m-wrap{max-width:1080px;margin:0 auto;padding:44px 24px 80px;}
.empty{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:28px;color:var(--ink-soft);text-align:center;}

/* ---- list search ---- */
.list-search{position:relative;max-width:540px;margin:0 0 30px;}
.list-search .ls-ic{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none;}
.list-search input{width:100%;padding:13px 44px 13px 44px;border:1px solid var(--line);border-radius:999px;font-family:inherit;font-size:15px;color:var(--ink);background:var(--paper);transition:border-color .2s,box-shadow .2s;box-shadow:var(--shadow-sm);}
.list-search input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);}
.list-search input::-webkit-search-cancel-button{cursor:pointer;}
.list-search .ls-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;border:0;background:none;color:var(--muted);cursor:pointer;display:none;place-items:center;border-radius:50%;}
.list-search .ls-clear:hover{background:var(--surface-2);color:var(--ink);}
.list-search.has-value .ls-clear{display:grid;}
.list-search .ls-clear svg{width:16px;height:16px;}
.is-hidden{display:none!important;}
.search-empty{display:none;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:32px;color:var(--ink-soft);text-align:center;}
.search-empty.show{display:block;}
.search-empty strong{color:var(--ink);}

/* ---- topics list ---- */
.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media (max-width:820px){.topic-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.topic-grid{grid-template-columns:1fr;}}
.topic-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .2s;}
.topic-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(108,91,177,.25);}
.topic-thumb{position:relative;aspect-ratio:16/10;background:var(--brand-soft);display:grid;place-items:center;overflow:hidden;}
.topic-thumb img{width:100%;height:100%;object-fit:cover;}
.topic-thumb-fallback{font-family:'Fraunces',serif;font-size:44px;color:var(--brand-deep);opacity:.5;}
.topic-soon{position:absolute;top:10px;left:10px;font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--brand-deep);background:rgba(255,255,255,.92);border:1px solid var(--line);padding:3px 9px;border-radius:999px;}
.topic-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1;}
.topic-body h3{font-family:'Inter',sans-serif;font-weight:600;font-size:17px;letter-spacing:-.01em;margin:0 0 6px;}
.topic-body p{color:var(--ink-soft);font-size:14px;line-height:1.55;margin:0 0 14px;}
.topic-meta{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13px;color:var(--muted);}
.topic-rx{display:inline-flex;align-items:center;gap:3px;}
.rx-mini{display:inline-flex;}
.rx-mini svg{width:15px;height:15px;}

/* ---- topic detail ---- */
.topic-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;}
.crumb{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--brand-deep);}
.crumb svg{width:16px;height:16px;}
.crumb:hover{color:var(--brand);}
.topic-share{display:inline-flex;align-items:center;gap:7px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-family:inherit;font-size:14px;font-weight:600;color:var(--ink-soft);cursor:pointer;transition:border-color .15s,color .15s,background .15s;}
.topic-share:hover{border-color:var(--brand);color:var(--brand);background:var(--brand-soft);}
.topic-share svg{width:16px;height:16px;}
.topic-article{max-width:760px;margin:0 auto;}
.topic-head{margin-bottom:14px;}
.topic-hero{height:200px;border-radius:var(--radius-lg);background:var(--brand-soft) center/cover no-repeat;border:1px solid var(--line);margin-bottom:22px;}
.topic-head h1{font-size:clamp(28px,3.6vw,40px);line-height:1.08;margin:0;}
.slide{padding:22px 0;border-bottom:1px solid var(--line);}
.slide:last-of-type{border-bottom:none;}
.slide h2{font-family:'Fraunces',serif;font-weight:500;font-size:22px;line-height:1.2;margin:0 0 12px;color:var(--ink);}
.slide-body p{color:var(--ink-soft);font-size:16px;line-height:1.7;margin:0 0 14px;}
.slide-body p:last-child{margin-bottom:0;}
.slide-body ul,.slide-body ol{margin:0 0 14px;padding-left:24px;}
.slide-body li{color:var(--ink-soft);font-size:16px;line-height:1.6;margin:7px 0;}
.slide-body li::marker{color:var(--brand);}
.slide-body a{color:var(--brand-deep);font-weight:600;text-decoration:underline;text-underline-offset:2px;}
.slide-body strong,.slide-body b{color:var(--ink);font-weight:600;}
.slide-body em,.slide-body i{font-style:italic;}
.slide-body h3,.slide-body h4,.slide-body h5{font-family:'Inter',sans-serif;color:var(--ink);font-weight:600;margin:18px 0 8px;line-height:1.3;}
.slide-body blockquote{margin:0 0 14px;padding:10px 16px;border-left:3px solid var(--brand);background:var(--surface-2);border-radius:0 10px 10px 0;color:var(--ink-soft);}

/* ---- podcasts ---- */
.pod-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media (max-width:820px){.pod-grid{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.pod-grid{grid-template-columns:1fr;}}
.pod-card{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .2s;}
.pod-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(108,91,177,.25);}
.pod-thumb{position:relative;aspect-ratio:16/9;background:var(--ink) center/cover no-repeat;display:grid;place-items:center;overflow:hidden;}
.pod-play{width:52px;height:52px;border-radius:50%;background:rgba(255,255,255,.92);color:var(--brand-deep);display:grid;place-items:center;box-shadow:0 6px 18px rgba(0,0,0,.25);transition:transform .18s,background .18s;}
.pod-play svg{width:22px;height:22px;margin-left:3px;}
.pod-card:hover .pod-play{transform:scale(1.08);background:#fff;}
.pod-dur{position:absolute;bottom:10px;right:10px;background:rgba(15,22,38,.82);color:#fff;font-size:12px;font-weight:600;padding:3px 9px;border-radius:7px;}
.pod-thumb .topic-soon{position:absolute;top:10px;left:10px;}
.pod-body{padding:16px 18px 18px;display:flex;flex-direction:column;flex:1;}
.pod-body h2{font-family:'Inter',sans-serif;font-weight:600;font-size:16.5px;letter-spacing:-.01em;line-height:1.3;margin:0 0 4px;}
.pod-by{font-size:13px;color:var(--brand-deep);font-weight:500;margin-bottom:8px;}
.pod-body p{color:var(--ink-soft);font-size:14px;line-height:1.55;margin:0 0 12px;}
.pod-body .topic-rx{margin-top:auto;}

.pod-article{max-width:820px;margin:0 auto;}
.pod-player{border-radius:var(--radius-lg);overflow:hidden;background:#000;box-shadow:var(--shadow);margin-bottom:22px;border:1px solid var(--line);}
.pod-player video{width:100%;display:block;aspect-ratio:16/9;background:#000;}
.pod-player-empty{aspect-ratio:16/9;background:var(--brand-soft) center/cover no-repeat;}
.pod-article h1{font-size:clamp(26px,3.4vw,38px);line-height:1.1;margin:0 0 8px;}
.pod-meta{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:14.5px;margin-bottom:22px;}
.pod-meta .tzr-dot{opacity:.5;}
.pod-about{margin-bottom:24px;}
.pod-about p{font-size:16px;line-height:1.7;}
.pod-sponsor{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:10px 16px;font-size:14px;color:var(--ink);margin-bottom:8px;}
.pod-sponsor span{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em;font-weight:600;}
.pod-more{margin-top:40px;}
.pod-more h3{font-family:'Inter',sans-serif;font-weight:600;font-size:17px;margin:0 0 16px;}
.well-badge{background:rgba(108,91,177,.9)!important;}

/* ---- wellness player ---- */
.well-article{max-width:820px;margin:0 auto;}
.well-kind{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brand);margin-bottom:6px;}
.well-player{border-radius:var(--radius-lg);overflow:hidden;background:#000;box-shadow:var(--shadow);border:1px solid var(--line);margin-bottom:22px;}
.well-media{width:100%;display:block;}
video.well-media{aspect-ratio:16/9;background:#000;}
.well-player.is-audio{background:linear-gradient(180deg,var(--surface-2),var(--paper));}
.well-audio-art{aspect-ratio:16/9;}
.well-player.is-audio audio.well-media{box-sizing:border-box;width:100%;padding:16px;background:var(--paper);}

/* ---- widgits ---- */
.widgit-cats{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 26px;}
.wcat{display:inline-flex;align-items:center;gap:7px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:8px 15px;font-family:inherit;font-size:13.5px;font-weight:500;color:var(--ink-soft);cursor:pointer;transition:all .15s;}
.wcat:hover{border-color:var(--brand);color:var(--brand-deep);}
.wcat.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-deep);}
.wcat span{font-weight:600;opacity:.65;}
.widgit-thumb{aspect-ratio:4/3;background:var(--surface-2);}
.widgit-card .pod-by{text-transform:uppercase;letter-spacing:.04em;font-size:11.5px;}

.widgit-article{max-width:820px;margin:0 auto;}
.widgit-head{display:flex;gap:22px;align-items:center;margin-bottom:24px;}
@media (max-width:600px){.widgit-head{flex-direction:column;align-items:flex-start;gap:16px;}}
.widgit-cover{width:200px;flex-shrink:0;aspect-ratio:4/3;border-radius:var(--radius-md);overflow:hidden;background:var(--surface-2);border:1px solid var(--line);}
@media (max-width:600px){.widgit-cover{width:100%;}}
.widgit-head-meta{min-width:0;}
.widgit-cat-tag{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--brand);background:var(--brand-soft);padding:4px 11px;border-radius:999px;margin-bottom:10px;}
.widgit-head-meta h1{font-size:clamp(24px,3.2vw,34px);line-height:1.12;margin:0 0 16px;}
.widgit-email-form{margin:0;}
.widgit-email-form .btn-primary{width:auto;gap:9px;}
.widgit-email-form svg{width:18px;height:18px;}
.widgit-about{margin-bottom:8px;}
.widgit-sub{font-family:'Inter',sans-serif;font-weight:600;font-size:17px;color:var(--ink);margin:26px 0 12px;}
.widgit-gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
@media (max-width:560px){.widgit-gallery{grid-template-columns:1fr;}}
.widgit-slide{margin:0;}
.widgit-slide-media{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--line);background:var(--surface-2);aspect-ratio:4/3;}
.widgit-slide-media video{width:100%;height:100%;display:block;object-fit:contain;background:#000;}
.widgit-slide figcaption{margin-top:8px;font-size:13.5px;color:var(--ink-soft);font-weight:500;}

/* ---- events ---- */
.event-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media (max-width:640px){.event-grid{grid-template-columns:1fr;}}
.event-card{display:flex;gap:16px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s,border-color .2s;padding:14px;}
.event-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(108,91,177,.25);}
.event-thumb{position:relative;width:120px;flex-shrink:0;aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;background:var(--brand-soft);}
.event-date-chip{position:absolute;top:8px;left:8px;z-index:3;background:var(--paper);border:1px solid var(--line);border-radius:9px;padding:4px 8px;text-align:center;line-height:1;box-shadow:var(--shadow-sm);}
.event-date-chip b{display:block;font-size:17px;font-weight:700;color:var(--ink);}
.event-date-chip span{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--brand-deep);}
.event-body{display:flex;flex-direction:column;justify-content:center;min-width:0;}
.event-body h2{font-family:'Inter',sans-serif;font-weight:600;font-size:16px;line-height:1.3;letter-spacing:-.01em;margin:0 0 6px;}
.event-meta{display:flex;flex-direction:column;gap:2px;font-size:13.5px;color:var(--ink-soft);}
.event-loc{color:var(--brand-deep);font-weight:500;}
.past-events .event-card{opacity:.72;}
.past-events .event-card:hover{opacity:1;}

.event-article{max-width:760px;margin:0 auto;}
.event-hero{position:relative;height:clamp(200px,34vw,320px);border-radius:var(--radius-lg);overflow:hidden;background:var(--brand-soft);border:1px solid var(--line);margin-bottom:22px;}
.event-tag{position:absolute;top:14px;left:14px;z-index:3;background:rgba(15,22,38,.82);color:#fff;font-size:12px;font-weight:600;padding:5px 12px;border-radius:999px;}
.event-article h1{font-size:clamp(28px,3.6vw,40px);line-height:1.1;margin:0 0 18px;}
.event-facts{display:flex;flex-direction:column;gap:14px;margin-bottom:26px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);padding:20px 22px;}
.event-fact{display:flex;gap:13px;align-items:flex-start;}
.event-fact svg{width:22px;height:22px;color:var(--brand);flex-shrink:0;margin-top:1px;}
.event-fact div{display:flex;flex-direction:column;gap:1px;min-width:0;}
.event-fact b{font-size:15px;color:var(--ink);font-weight:600;}
.event-fact span{font-size:13.5px;color:var(--ink-soft);}
.event-fact a{font-size:13.5px;font-weight:600;color:var(--brand-deep);}
.event-about,.event-details{margin-bottom:22px;}
.event-about p,.event-details p{font-size:16px;line-height:1.7;}

/* RSVP */
.rsvp{margin:0 0 28px;}
.rsvp-box{border:1px solid var(--line);border-radius:var(--radius-lg);padding:24px;background:var(--paper);}
.rsvp-form h3{font-family:'Inter',sans-serif;font-weight:600;font-size:17px;margin:0 0 16px;}
.rsvp-counts{display:flex;gap:14px;margin-bottom:18px;flex-wrap:wrap;}
.rsvp-counts label{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:600;color:var(--ink-soft);}
.rsvp-counts input{width:100px;padding:11px 14px;border:1px solid var(--line);border-radius:12px;font-family:inherit;font-size:16px;color:var(--ink);background:var(--cream);}
.rsvp-counts input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);}
.rsvp-form .btn-primary{width:auto;}
.rsvp-going{background:var(--ok-soft);border-color:rgba(42,138,86,.25);}
.rsvp-going-head{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:17px;color:var(--ok);margin-bottom:6px;}
.rsvp-going-head svg{width:20px;height:20px;}
.rsvp-going p{margin:0 0 16px;color:var(--ink-soft);}
.rsvp-going .btn-ghost{width:auto;}
.rsvp-ended{color:var(--ink-soft);text-align:center;background:var(--surface-2);}
.rsvp-count{margin:12px 0 0;font-size:13.5px;color:var(--muted);text-align:center;}

/* ---- wellness list (grouped by collection) ---- */
.well-section{margin-bottom:40px;}
.well-section:last-of-type{margin-bottom:0;}
.well-sec-title{font-family:'Inter',sans-serif;font-weight:600;font-size:15px;letter-spacing:.02em;text-transform:uppercase;color:var(--muted);margin:0 0 16px;}
.well-collection-head{display:flex;align-items:center;gap:14px;margin:0 0 18px;}
.well-collection-avatar{width:54px;height:54px;border-radius:50%;overflow:hidden;flex-shrink:0;background:var(--brand-soft);display:block;border:1px solid var(--line);}
.well-collection-meta{min-width:0;}
.well-collection-title{font-family:'Fraunces',Georgia,serif;font-weight:500;font-size:23px;letter-spacing:-.015em;line-height:1.15;margin:0;color:var(--ink);}
.well-collection-by{font-size:13.5px;color:var(--brand-deep);font-weight:500;margin-top:2px;}

/* ---- reactions ---- */
.react{margin-top:34px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:26px 24px;}
.react h3{font-family:'Inter',sans-serif;font-weight:600;font-size:16px;margin:0 0 16px;color:var(--ink);}
.react-row{display:flex;flex-wrap:wrap;gap:10px;}
.react-form{margin:0;}
.react-btn{display:inline-flex;align-items:center;gap:9px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:7px 15px 7px 8px;font-family:inherit;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer;transition:border-color .15s,background .15s,transform .12s,box-shadow .15s;}
.react-btn:hover{transform:translateY(-1px);border-color:var(--rx,var(--brand));box-shadow:var(--shadow-sm);}
.react-btn.is-mine{background:var(--brand-soft);border-color:var(--rx,var(--brand));box-shadow:0 0 0 1px var(--rx,var(--brand)) inset;}
.react-btn .rx-ic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;}
.react-btn .rx-ic svg{width:16px;height:16px;}
.react-btn .rx-count{font-weight:600;color:var(--muted);background:var(--surface-2);border-radius:999px;padding:1px 8px;font-size:12.5px;}
.react-btn.is-mine .rx-count{color:var(--ink);background:rgba(255,255,255,.7);}
.react-btn .rx-ic{transition:transform .18s cubic-bezier(.34,1.56,.64,1);}
.react-btn.rx-pop .rx-ic{transform:scale(1.28);}
.react-hint{margin:14px 0 0;font-size:12.5px;color:var(--muted);}
@media (prefers-reduced-motion:reduce){.react-btn.rx-pop .rx-ic{transform:none;}}

/* who-reacted summary */
.react-summary{display:inline-flex;align-items:center;gap:9px;margin-top:16px;background:none;border:0;padding:6px 4px;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:500;color:var(--ink-soft);border-radius:10px;transition:color .15s;}
.react-summary:hover{color:var(--brand-deep);}
.react-summary .sum-icons{display:inline-flex;}
.react-summary .sum-ic{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--paper);border:1px solid var(--line);margin-left:-7px;}
.react-summary .sum-ic:first-child{margin-left:0;}
.react-summary .sum-ic svg{width:13px;height:13px;}
.react-summary .sum-count{text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--line);}

/* toast */
.toast-host{position:fixed;left:0;right:0;bottom:24px;z-index:120;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;}
.toast{display:inline-flex;align-items:center;gap:10px;background:var(--ink);color:#fff;border-radius:999px;padding:10px 18px 10px 12px;box-shadow:var(--shadow-lg);font-size:14px;font-weight:500;opacity:0;transform:translateY(12px);transition:opacity .25s,transform .25s;max-width:90vw;}
.toast.in{opacity:1;transform:none;}
.toast .toast-ic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;flex-shrink:0;}
.toast .toast-ic svg{width:16px;height:16px;}
@media (prefers-reduced-motion:reduce){.toast{transition:opacity .2s;transform:none;}}

/* reactors modal */
.rx-modal-overlay{position:fixed;inset:0;z-index:130;background:rgba(31,42,68,.5);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:20px;}
.rx-modal{background:var(--paper);border-radius:var(--radius-lg);width:100%;max-width:440px;display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:rxIn .2s ease;overflow:hidden;}
@keyframes rxIn{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
.rx-modal-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;padding:20px 22px 14px;border-bottom:1px solid var(--line);}
.rx-modal-head h3{font-family:'Fraunces',serif;font-weight:500;font-size:22px;margin:0;}
.rx-modal-close{width:34px;height:34px;border:0;background:var(--surface-2);border-radius:10px;font-size:22px;line-height:1;color:var(--ink-soft);cursor:pointer;display:grid;place-items:center;transition:background .15s,color .15s;}
.rx-modal-close:hover{background:var(--brand-soft);color:var(--brand);}
.rx-chips{flex:0 0 auto;display:flex;flex-wrap:wrap;gap:8px;padding:14px 22px;border-bottom:1px solid var(--line);}
.rx-chip{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;min-height:38px;background:var(--surface-2);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--ink-soft);cursor:pointer;white-space:nowrap;line-height:1;transition:background .15s,border-color .15s,color .15s;}
.rx-chip:hover{border-color:var(--brand);color:var(--brand-deep);}
.rx-chip.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-deep);}
.rx-chip .chip-ic{display:inline-grid;place-items:center;}
.rx-chip .chip-ic svg{width:17px;height:17px;display:block;}
.rx-chip .chip-n{font-weight:700;opacity:.55;font-variant-numeric:tabular-nums;}
.rx-list{flex:0 1 auto;min-height:0;max-height:min(440px,56vh);overflow-y:auto;padding:8px 12px 16px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;}
.rx-list::-webkit-scrollbar{width:12px;}
.rx-list::-webkit-scrollbar-track{background:transparent;margin:6px 0;}
.rx-list::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;border:3px solid var(--paper);background-clip:padding-box;}
.rx-list::-webkit-scrollbar-thumb:hover{background:#cfcbe0;}
.rx-user{display:flex;align-items:center;gap:12px;padding:10px 10px;border-radius:12px;}
.rx-user:hover{background:var(--surface-2);}
.rx-av{width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;background:var(--brand-soft);color:var(--brand-deep);display:grid;place-items:center;font-weight:600;font-size:15px;border:1px solid var(--line);}
.rx-u-meta{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0;}
.rx-u-name{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rx-u-about{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.rx-u-badge{flex-shrink:0;display:grid;place-items:center;}
.rx-u-badge svg{width:18px;height:18px;}
.rx-empty{text-align:center;color:var(--muted);padding:28px 0;}
@media (max-width:520px){.react-btn .rx-label{display:none;}}
.m-hero{margin-bottom:36px;}
.m-hero .eyebrow{font-size:13px;font-weight:600;color:var(--brand);}
.m-hero h1{font-size:clamp(30px,4vw,44px);line-height:1.05;margin:6px 0 10px;}
.m-hero h1 em{font-style:italic;font-weight:400;color:var(--brand);}
.m-hero p{color:var(--ink-soft);font-size:17px;max-width:640px;margin:0;}

.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
@media (max-width:820px){.tiles{grid-template-columns:repeat(2,1fr);}}
@media (max-width:520px){.tiles{grid-template-columns:1fr;}}
.tile{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:26px;box-shadow:var(--shadow-sm);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s;}
.tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-md);border-color:rgba(108,91,177,.25);}
.tile .ic{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;margin-bottom:16px;}
.tile .ic svg{width:26px;height:26px;}
.tile h3{font-family:'Inter',sans-serif;font-weight:600;font-size:18px;letter-spacing:-.01em;margin:0 0 6px;}
.tile p{color:var(--ink-soft);font-size:14px;line-height:1.55;margin:0;}
.tile .soon{position:absolute;top:16px;right:16px;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);background:var(--surface-2);border:1px solid var(--line);padding:4px 9px;border-radius:999px;}
a.tile{display:flex;flex-direction:column;color:inherit;}
.tile-go{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:14px;font-weight:600;color:var(--brand-deep);}
.tile-go svg{width:16px;height:16px;transition:transform .18s;}
a.tile:hover .tile-go svg{transform:translateX(3px);}

.m-cta{margin-top:36px;background:var(--ink);background-image:linear-gradient(135deg,rgba(136,122,192,.30) 0%,rgba(93,82,151,.12) 42%,rgba(31,42,68,0) 78%);color:#fff;border-radius:var(--radius-lg);padding:40px;display:flex;flex-wrap:wrap;align-items:center;gap:24px;justify-content:space-between;}
.m-cta h2{color:#fff;font-size:clamp(22px,2.4vw,30px);margin-bottom:6px;}
.m-cta p{color:rgba(255,255,255,.82);margin:0;font-size:15px;}
.store-badges{display:flex;gap:12px;flex-wrap:wrap;}
.store-badge{display:inline-flex;align-items:center;gap:11px;border-radius:12px;padding:11px 18px 11px 15px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;transition:background .18s,transform .15s;}
.store-badge:hover{background:rgba(255,255,255,.18);transform:translateY(-2px);}
.store-badge svg{width:22px;height:22px;fill:#fff;}
.store-badge small{display:block;font-size:9px;opacity:.8;letter-spacing:.04em;line-height:1.1;}
.store-badge b{font-size:14px;line-height:1.2;font-weight:600;}

.m-foot{max-width:1080px;margin:0 auto;padding:0 24px 48px;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);}
.m-foot a{color:var(--muted);}
.m-foot a:hover{color:var(--brand);}
.m-foot .links{display:flex;gap:18px;flex-wrap:wrap;}

/* card layout reused by change-password page */
.panel{max-width:520px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:36px 34px;}
.panel h1{font-size:26px;margin-bottom:6px;}
.panel .sub{color:var(--ink-soft);font-size:15px;margin:0 0 24px;}

/* ============================ SENchat ============================ */
.sc-hero .sc-start{width:auto;margin-top:18px;}
.sc-start svg{width:18px;height:18px;}

/* Standalone server-side search (NOT the client-side .list-search). */
.sc-search{position:relative;max-width:540px;margin:0 0 22px;}
.sc-search .ls-ic{position:absolute;left:16px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--muted);pointer-events:none;}
.sc-search input{width:100%;padding:13px 44px;border:1px solid var(--line);border-radius:999px;font-family:inherit;font-size:15px;color:var(--ink);background:var(--paper);box-shadow:var(--shadow-sm);}
.sc-search input:focus{outline:none;border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft);}
.sc-search input::-webkit-search-cancel-button{cursor:pointer;}
.sc-search .ls-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:var(--muted);}
.sc-search .ls-clear:hover{background:var(--surface-2);color:var(--ink);}
.sc-search .ls-clear svg{width:16px;height:16px;}

/* Filter tabs + category chips. */
.sc-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap;}
.sc-tab{padding:8px 16px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:14px;font-weight:600;color:var(--ink-soft);transition:border-color .15s,color .15s,background .15s;}
.sc-tab:hover{border-color:var(--brand);color:var(--brand);}
.sc-tab.on{background:var(--brand);border-color:var(--brand);color:#fff;}
.sc-cats{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:26px;}
.sc-cchip{padding:6px 13px;border-radius:999px;border:1px solid var(--line);background:var(--paper);font-size:13px;font-weight:600;color:var(--ink-soft);transition:border-color .15s,color .15s,background .15s;}
.sc-cchip:hover{border-color:var(--cc,var(--brand));color:var(--cc,var(--brand));}
.sc-cchip.on{background:var(--cc,var(--brand));border-color:var(--cc,var(--brand));color:#fff;}

/* Avatar chip (img with initials fallback). */
.sc-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;background:var(--brand-soft);color:var(--brand-deep);display:grid;place-items:center;font-weight:700;font-size:15px;flex-shrink:0;overflow:hidden;line-height:1;}
.sc-avatar-sm{width:36px;height:36px;font-size:13px;}

/* Shared small pieces. */
.sc-dot{color:var(--line);}
.sc-time{color:var(--muted);}
.sc-cat{display:inline-flex;align-items:center;font-size:12px;font-weight:600;color:var(--cc,var(--brand-deep));background:var(--surface-2);border:1px solid var(--line);padding:3px 10px;border-radius:999px;}
.sc-stat{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--muted);font-weight:600;}
.sc-stat svg{width:15px;height:15px;}
.sc-pin{font-size:11px;font-weight:700;color:var(--brand-deep);background:var(--brand-soft);padding:2px 8px;border-radius:999px;text-transform:uppercase;letter-spacing:.04em;}

/* Feed cards. */
.sc-feed{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.sc-item{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform .18s,box-shadow .18s,border-color .18s;}
.sc-item:hover{transform:translateY(-2px);box-shadow:var(--shadow-md);border-color:var(--brand);}
.sc-item-link{display:flex;gap:14px;padding:18px 20px;align-items:flex-start;}
.sc-item-main{flex:1;min-width:0;}
.sc-item-top{display:flex;align-items:center;gap:7px;font-size:13px;color:var(--muted);margin-bottom:3px;flex-wrap:wrap;}
.sc-item-author{color:var(--ink);font-weight:600;font-size:14px;}
.sc-item-title{font-family:inherit;font-size:17px;font-weight:500;color:#6451B1;margin:12px 0 14px;line-height:1.3;}
.sc-item-preview{margin:0 0 10px;color:var(--ink-soft);font-size:14.5px;line-height:1.55;}
.sc-item-foot{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.sc-pager{display:flex;justify-content:space-between;align-items:center;margin-top:24px;gap:12px;}
.sc-pager .btn{width:auto;}

/* Thread detail. */
.sc-thread{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:26px 28px;}
.sc-thread-head{display:flex;align-items:center;gap:13px;margin-bottom:18px;}
.sc-thread-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;}
.sc-thread-meta b{font-size:15px;color:var(--ink);}
.sc-sub{font-size:13px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
.sc-thread-del{margin:0;}
.sc-thread-title{font-size:26px;margin:0 0 12px;line-height:1.25;}
.sc-thread-text{color:var(--ink-soft);font-size:16px;line-height:1.7;word-break:break-word;}
.sc-thread-text a,.sc-comment-text a{color:var(--brand-deep);text-decoration:underline;word-break:break-word;}
.sc-del-link{background:none;border:0;color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;padding:4px 8px;border-radius:8px;font-family:inherit;}
.sc-del-link:hover{color:var(--danger);background:var(--danger-soft);}

/* Thread image gallery. */
.sc-gallery{display:grid;gap:8px;margin-top:18px;}
.sc-gallery-1{grid-template-columns:1fr;}
.sc-gallery-2,.sc-gallery-3,.sc-gallery-4{grid-template-columns:repeat(2,1fr);}
.sc-gimg{border-radius:var(--radius-sm);aspect-ratio:4/3;}
.sc-gallery-1 .sc-gimg{aspect-ratio:16/10;}

/* Comments. */
.sc-comments{margin-top:30px;}
.sc-comments-title{font-family:'Inter',sans-serif;font-weight:600;font-size:17px;margin:0 0 18px;color:var(--ink);}
.sc-comment-form{display:flex;gap:12px;margin-bottom:24px;align-items:flex-start;}
.sc-comment-form-main{flex:1;min-width:0;}
.sc-comment-form textarea,.sc-reply-form textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:14px;font-family:inherit;font-size:14.5px;color:var(--ink);background:var(--cream);resize:vertical;line-height:1.55;}
.sc-comment-form textarea:focus,.sc-reply-form textarea:focus{outline:none;border-color:var(--brand);background:var(--paper);box-shadow:0 0 0 3px var(--brand-soft);}
.sc-comment-form-actions{margin-top:10px;display:flex;justify-content:flex-end;}
.btn-sm{width:auto;padding:9px 18px;font-size:14px;border-radius:11px;}
.sc-empty{background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--radius-md);padding:24px;text-align:center;color:var(--muted);font-size:14.5px;}
.sc-comment-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:20px;}
.sc-comment{display:flex;gap:12px;align-items:flex-start;}
.sc-comment-body{flex:1;min-width:0;}
.sc-comment-head{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--muted);margin-bottom:3px;}
.sc-comment-head b{color:var(--ink);font-size:14px;font-weight:600;}
.sc-comment-text{color:var(--ink-soft);font-size:14.5px;line-height:1.6;word-break:break-word;}
.sc-comment-img{max-width:220px;border-radius:var(--radius-sm);aspect-ratio:4/3;margin-top:8px;}
.sc-comment-actions{display:flex;align-items:center;gap:6px;margin-top:6px;flex-wrap:wrap;}
.sc-inline-del{display:inline;margin:0;}
.sc-reply{display:inline-block;}
.sc-reply[open]{flex:1 0 100%;}
.sc-reply summary{list-style:none;cursor:pointer;font-size:13px;font-weight:600;color:var(--brand-deep);padding:4px 8px;border-radius:8px;display:inline-block;}
.sc-reply summary::-webkit-details-marker{display:none;}
.sc-reply summary:hover{background:var(--brand-soft);}
.sc-reply[open] summary{color:var(--muted);}
.sc-reply-form{margin-top:8px;display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.sc-replies{list-style:none;margin:16px 0 0;padding:16px 0 0;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:16px;}

/* Compose. */
.sc-compose-wrap{max-width:640px;}
.sc-compose-wrap h1{font-size:28px;margin-bottom:8px;}
.sc-compose-sub{color:var(--ink-soft);font-size:15px;margin:0 0 24px;line-height:1.6;}
.sc-compose{display:flex;flex-direction:column;gap:18px;}
.sc-field{display:flex;flex-direction:column;gap:7px;}
.sc-field>span{font-size:13px;font-weight:600;color:var(--ink-soft);}
.sc-field>span small{font-weight:500;color:var(--muted);}
.sc-field input,.sc-field select,.sc-field textarea{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:12px;font-family:inherit;font-size:15px;color:var(--ink);background:var(--cream);}
.sc-field textarea{resize:vertical;line-height:1.6;}
.sc-field input:focus,.sc-field select:focus,.sc-field textarea:focus{outline:none;border-color:var(--brand);background:var(--paper);box-shadow:0 0 0 3px var(--brand-soft);}
.sc-compose-actions{display:flex;justify-content:flex-end;gap:12px;}
.sc-compose-actions .btn{width:auto;}

@media (max-width:560px){
  .sc-item-link{padding:15px 16px;gap:11px;}
  .sc-thread{padding:20px 18px;}
  .sc-thread-title{font-size:22px;}
  .sc-compose-actions{flex-direction:column-reverse;}
  .sc-compose-actions .btn{width:100%;}
}

/* ===================== Profiles & Messages ===================== */
.sc-author-link{color:inherit;display:inline-flex;align-items:center;}
.sc-author-link:hover b{color:var(--brand-deep);text-decoration:underline;}

/* Profile */
.pf-head{display:flex;align-items:center;gap:20px;margin-bottom:22px;}
.pf-avatar{width:96px;height:96px;border-radius:50%;object-fit:cover;background:var(--brand-soft);color:var(--brand-deep);display:grid;place-items:center;font-weight:700;font-size:34px;flex-shrink:0;overflow:hidden;line-height:1;border:1px solid var(--line);}
.pf-id{min-width:0;}
.pf-id h1{font-size:26px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;line-height:1.2;}
.pf-org{display:inline-flex;align-items:center;gap:5px;font-family:'Inter',sans-serif;font-size:12px;font-weight:600;color:var(--brand-deep);background:var(--brand-soft);padding:4px 10px;border-radius:999px;}
.pf-org svg{width:14px;height:14px;}
.pf-sub{color:var(--ink-soft);margin:5px 0 0;font-size:15px;}
.pf-meta{display:flex;flex-wrap:wrap;gap:14px;margin-top:9px;color:var(--muted);font-size:13.5px;}
.pf-meta span{display:inline-flex;align-items:center;gap:6px;}
.pf-meta svg{width:15px;height:15px;}
.pf-stats{display:flex;gap:10px;margin-bottom:20px;}
.pf-stat{flex:1;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px;text-align:center;box-shadow:var(--shadow-sm);}
.pf-stat b{display:block;font-family:'Fraunces',Georgia,serif;font-size:22px;color:var(--ink);}
.pf-stat span{font-size:12.5px;color:var(--muted);}
.pf-actions{display:flex;gap:12px;margin-bottom:26px;flex-wrap:wrap;}
.pf-actions>form,.pf-actions>.btn{flex:1;min-width:150px;max-width:240px;}
.pf-actions>form{display:flex;}
.pf-actions>form .btn{width:100%;max-width:none;}
.btn.is-following .lbl-unfollow{display:none;}
.btn.is-following:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-soft);}
.btn.is-following:hover .lbl-following{display:none;}
.btn.is-following:hover .lbl-unfollow{display:inline;}
.btn.is-following:hover svg{display:none;}
.pf-about{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:20px 22px;margin-bottom:26px;box-shadow:var(--shadow-sm);}
.pf-about h2,.pf-posts h2{font-family:'Inter',sans-serif;font-weight:600;font-size:16px;margin:0 0 12px;color:var(--ink);}
.pf-about p{margin:0;color:var(--ink-soft);font-size:15px;line-height:1.65;word-break:break-word;}

/* Messages — inbox */
.msg-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;}
.msg-row{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color .15s,transform .15s;}
.msg-row:hover{border-color:var(--brand);transform:translateY(-1px);}
.msg-row.is-unread{background:var(--brand-soft);border-color:rgba(108,91,177,.25);}
.msg-row-link{display:flex;align-items:center;gap:13px;padding:14px 16px;}
.msg-row-main{flex:1;min-width:0;}
.msg-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.msg-row-top b{font-size:15px;color:var(--ink);}
.msg-row-top .sc-time{flex-shrink:0;}
.msg-row-prev{color:var(--ink-soft);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px;}
.msg-row.is-unread .msg-row-prev{color:var(--ink);font-weight:600;}
.msg-badge{flex-shrink:0;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--brand);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center;}

/* Messages — conversation */
.msg-conv{display:flex;flex-direction:column;height:calc(100vh - 230px);height:calc(100dvh - 230px);min-height:440px;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden;}
.msg-conv-head{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:13px 16px;border-bottom:1px solid var(--line);}
.msg-conv-head .crumb{padding:0;}
.msg-conv-who{display:inline-flex;align-items:center;gap:10px;color:var(--ink);}
.msg-conv-who b{font-size:15px;color:var(--ink);}
a.msg-conv-who:hover b{color:var(--brand-deep);}
.msg-stream{flex:1 1 auto;min-height:0;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:8px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;}
.msg-stream::-webkit-scrollbar{width:10px;}
.msg-stream::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px;border:3px solid var(--paper);background-clip:padding-box;}
.msg-day{text-align:center;margin:8px 0 4px;}
.msg-day span{font-size:12px;color:var(--muted);background:var(--surface-2);padding:3px 12px;border-radius:999px;}
.msg-bubble-row{display:flex;}
.msg-bubble-row.is-mine{justify-content:flex-end;}
.msg-bubble{max-width:76%;padding:10px 14px;border-radius:18px;font-size:14.5px;line-height:1.5;}
.msg-bubble-row.is-them .msg-bubble{background:var(--surface-2);color:var(--ink);border-bottom-left-radius:6px;}
.msg-bubble-row.is-mine .msg-bubble{background:var(--brand);color:#fff;border-bottom-right-radius:6px;}
.msg-text{word-break:break-word;}
.msg-text a{color:inherit;text-decoration:underline;}
.msg-time{display:block;font-size:11px;opacity:.6;margin-top:4px;text-align:right;}
.msg-gif{max-width:220px;border-radius:12px;display:block;margin-bottom:4px;}
.msg-audio{font-size:13px;opacity:.85;}
.msg-empty{margin:auto;text-align:center;color:var(--muted);font-size:14px;max-width:300px;line-height:1.6;}
.msg-compose{flex:0 0 auto;display:flex;align-items:flex-end;gap:10px;padding:12px 14px;border-top:1px solid var(--line);}
.msg-compose textarea{flex:1;resize:none;max-height:120px;padding:11px 15px;border:1px solid var(--line);border-radius:20px;font-family:inherit;font-size:14.5px;color:var(--ink);background:var(--cream);line-height:1.45;}
.msg-compose textarea:focus{outline:none;border-color:var(--brand);background:var(--paper);box-shadow:0 0 0 3px var(--brand-soft);}
.msg-send{flex-shrink:0;width:44px;height:44px;border-radius:50%;border:0;background:var(--brand);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .15s,transform .15s;}
.msg-send:hover{background:var(--brand-deep);transform:scale(1.05);}
.msg-send svg{width:20px;height:20px;}

@media (max-width:560px){
  .pf-avatar{width:76px;height:76px;font-size:28px;}
  .pf-id h1{font-size:22px;}
  .msg-conv{height:calc(100vh - 180px);height:calc(100dvh - 180px);}
  .msg-bubble{max-width:84%;}
}

/* ============ Nav unread badge, Edit profile, Avatar picker ============ */
.nav-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:5px;border-radius:999px;background:var(--danger);color:#fff;font-size:11px;font-weight:700;vertical-align:middle;line-height:1;}
.nav-badge[hidden]{display:none;}

.acct{max-width:640px;}
.acct h1{font-size:28px;margin-bottom:6px;}
.acct-sub{color:var(--ink-soft);font-size:15px;margin:0 0 24px;}
.acct-form{display:flex;flex-direction:column;gap:20px;}
.acct-field{display:flex;flex-direction:column;gap:7px;}
.acct-label{font-size:13px;font-weight:600;color:var(--ink-soft);}
.acct-label small{font-weight:500;color:var(--muted);}
.acct-hint{font-size:12px;color:var(--muted);}
.acct-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.acct-field input,.acct-field textarea{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:12px;font-family:inherit;font-size:15px;color:var(--ink);background:var(--cream);}
.acct-field textarea{resize:vertical;line-height:1.6;}
.acct-field input:focus,.acct-field textarea:focus{outline:none;border-color:var(--brand);background:var(--paper);box-shadow:0 0 0 3px var(--brand-soft);}
.acct-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:4px;}
.acct-actions .btn{width:auto;}

.av-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(62px,1fr));gap:12px;}
.av-opt{position:relative;aspect-ratio:1;border-radius:50%;overflow:hidden;cursor:pointer;border:2px solid var(--line);background:var(--brand-soft);display:grid;place-items:center;transition:border-color .15s,transform .12s;}
.av-opt:hover{transform:translateY(-2px);}
.av-opt img{width:100%;height:100%;object-fit:cover;}
.av-initials{font-weight:700;color:var(--brand-deep);font-size:20px;}
.av-opt input{position:absolute;opacity:0;pointer-events:none;}
.av-opt .av-tick{position:absolute;inset:0;display:none;place-items:center;background:rgba(108,91,177,.5);color:#fff;}
.av-opt .av-tick svg{width:24px;height:24px;}
.av-opt.is-sel,.av-opt:has(input:checked){border-color:var(--brand);}
.av-opt.is-sel .av-tick,.av-opt:has(input:checked) .av-tick{display:grid;}
@media (max-width:560px){.acct-row{grid-template-columns:1fr;}}

/* Avatar management (upload / preset / remove) on the edit-profile page */
.av-form{margin-bottom:26px;padding-bottom:24px;border-bottom:1px solid var(--line);}
.av-current{display:flex;flex-direction:column;gap:10px;}
.av-current-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.av-current-row .pf-avatar{width:84px;height:84px;font-size:30px;}
.av-current-actions{display:flex;flex-direction:column;gap:8px;align-items:flex-start;}
.av-upload-btn{width:auto;cursor:pointer;}
.av-remove{width:auto;padding:9px 16px;font-size:14px;}
.av-remove:hover{border-color:var(--danger);color:var(--danger);background:var(--danger-soft);}
.av-presets{margin-top:18px;}
.av-presets summary{cursor:pointer;font-size:14px;font-weight:600;color:var(--brand-deep);list-style:none;display:inline-flex;align-items:center;gap:6px;padding:6px 0;}
.av-presets summary::-webkit-details-marker{display:none;}
.av-presets summary::before{content:"▸";font-size:11px;transition:transform .15s;}
.av-presets[open] summary::before{transform:rotate(90deg);}
.av-presets summary:hover{color:var(--brand);}
.av-presets .av-grid{margin-top:14px;}

/* Accessibility: visible keyboard focus indicator across the member area */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible,.btn:focus-visible,.react-btn:focus-visible,.sc-tab:focus-visible,.sc-cchip:focus-visible{outline:3px solid var(--brand-deep);outline-offset:2px;border-radius:8px;}
