/* RUZUNA — Social Page Styles */

/* ── FEED ── */
.feed-layout{display:grid;grid-template-columns:1fr 290px;gap:1.1rem;align-items:start}
.feed-main{min-width:0}
.feed-sidebar-col{position:sticky;top:calc(var(--nav-h) + 1.35rem)}

.composer-bar{
  background:var(--bg-2);border:1px solid var(--border);
  border-radius:var(--r-xl);padding:.95rem 1.15rem;margin-bottom:.9rem;
  transition:border-color .18s,box-shadow .18s;
}
.composer-bar:hover{border-color:var(--border-2);box-shadow:0 0 0 3px var(--accent-dim)}
.composer-row{display:flex;align-items:center;gap:.7rem}
.composer-placeholder{flex:1;color:var(--text-3);font-size:.875rem;cursor:text}
.composer-actions{display:flex;gap:.45rem;margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--border)}

/* post cards with hover accent */
.post-card{
  background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);
  padding:1.05rem 1.15rem;margin-bottom:.65rem;
  transition:border-color .18s,transform .18s,box-shadow .18s;
}
.post-card:hover{border-color:var(--border-2);transform:translateY(-1px);box-shadow:var(--shadow)}
.post-card-hd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:.8rem;gap:.7rem}
.post-user{display:flex;align-items:center;gap:.65rem;cursor:pointer;flex:1;min-width:0}
.post-user-info{min-width:0}
.post-name{font-size:.875rem;font-weight:600;display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;line-height:1.3}
.post-time{font-size:.7rem;color:var(--text-3);margin-top:1px}
.post-body{font-size:.875rem;line-height:1.75;color:var(--text);margin-bottom:.8rem;word-break:break-word;white-space:pre-wrap}
.post-img{width:100%;max-height:420px;object-fit:cover;border-radius:var(--r-lg);margin-bottom:.8rem;cursor:pointer}
.post-media-attach{
  display:flex;align-items:center;gap:.7rem;background:var(--bg-3);
  border:1px solid var(--border);border-radius:var(--r-lg);
  padding:.6rem .85rem;margin-bottom:.8rem;cursor:pointer;transition:var(--t);
}
.post-media-attach:hover{border-color:var(--border-accent)}
.post-actions{display:flex;gap:.1rem;margin-top:.45rem;padding-top:.45rem;border-top:1px solid var(--border)}
.post-action-btn{
  display:flex;align-items:center;gap:.3rem;padding:.4rem .65rem;border-radius:var(--r);
  font-size:.8rem;color:var(--text-3);transition:var(--t);cursor:pointer;font-weight:500;
}
.post-action-btn:hover{background:var(--bg-3);color:var(--text-2)}
.post-action-btn.liked{color:#ef4444}
.post-action-btn.danger:hover{color:var(--red)}
.post-comments{padding-top:.8rem;border-top:1px solid var(--border);margin-top:.45rem}
.comment-row{display:flex;gap:.45rem;margin-bottom:.6rem}
.comment-av{
  width:24px;height:24px;border-radius:50%;background:var(--bg-4);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;font-size:.67rem;font-weight:700;cursor:pointer;transition:var(--t);
}
.comment-av:hover{opacity:.75}
.comment-body{flex:1;background:var(--bg-3);border-radius:var(--r-lg);padding:.42rem .65rem}
.comment-name{font-size:.76rem;font-weight:600;margin-right:.3rem}
.comment-text{font-size:.8rem;color:var(--text-2)}
.comment-time{font-size:.66rem;color:var(--text-3);margin-top:2px}
.comment-compose{display:flex;gap:.45rem;margin-top:.6rem;align-items:center}

/* Feed sidebar */
.feed-sidebar-card{
  background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);
  padding:1rem;margin-bottom:.75rem;
}
.feed-sidebar-title{font-size:.7rem;font-weight:700;color:var(--text-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:.8rem}
.trending-topic{
  display:flex;align-items:center;justify-content:space-between;
  padding:.42rem 0;border-bottom:1px solid var(--border);cursor:pointer;transition:var(--t);
}
.trending-topic:last-child{border-bottom:none}
.trending-topic:hover{color:var(--accent)}
.trending-topic-name{font-size:.845rem;font-weight:500}
.trending-topic-count{font-size:.72rem;color:var(--text-3);font-family:var(--font-mono)}
.suggested-user{display:flex;align-items:center;gap:.6rem;padding:.42rem 0}

/* ── PEOPLE ── */
.people-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:.8rem}
.user-card{
  background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);
  padding:1.15rem .9rem;text-align:center;cursor:pointer;
  transition:border-color .18s,transform .18s,box-shadow .18s;
  display:flex;flex-direction:column;align-items:center;
}
.user-card:hover{border-color:var(--border-accent);transform:translateY(-2px);box-shadow:var(--shadow)}
.user-card-name{font-size:.875rem;font-weight:600;margin-top:.5rem;line-height:1.3}
.user-card-un{font-size:.73rem;color:var(--text-3);margin-top:2px}

/* ── DMS ── */
.dm-layout{display:flex;height:calc(100vh - var(--nav-h));overflow:hidden}
.dm-sidebar{width:270px;flex-shrink:0;border-right:1px solid var(--border);display:flex;flex-direction:column}
.dm-sidebar-header{padding:.8rem .95rem;border-bottom:1px solid var(--border);font-weight:600;font-size:.925rem}
.dm-sidebar-search{padding:.6rem .8rem;border-bottom:1px solid var(--border)}
.dm-convo-list{flex:1;overflow-y:auto}
.dm-convo-row{
  display:flex;align-items:center;gap:.65rem;padding:.75rem .95rem;
  cursor:pointer;border-bottom:1px solid var(--border);transition:background .12s;
}
.dm-convo-row:hover{background:var(--bg-glass)}
.dm-convo-row.active{background:var(--accent-dim)}
.dm-main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.dm-thread-hd{display:flex;align-items:center;gap:.7rem;padding:.8rem 1.05rem;border-bottom:1px solid var(--border);flex-shrink:0}
.dm-messages{flex:1;overflow-y:auto;padding:.95rem 1.05rem;display:flex;flex-direction:column;gap:.45rem}
.dm-compose{display:flex;align-items:center;gap:.45rem;padding:.7rem .95rem;border-top:1px solid var(--border);flex-shrink:0}
.dm-bubble-row{display:flex}
.dm-bubble-row.mine{justify-content:flex-end}
.dm-bubble{max-width:70%;position:relative;border-radius:var(--r-xl);padding:.62rem .85rem}
.dm-bubble-mine{background:var(--accent);color:#000;border-bottom-right-radius:4px}
.dm-bubble-theirs{background:var(--bg-3);border:1px solid var(--border);border-bottom-left-radius:4px}
.dm-bubble-text{font-size:.845rem;line-height:1.55;word-break:break-word}
.dm-bubble-time{font-size:.63rem;color:rgba(0,0,0,.4);margin-top:3px}
.dm-bubble-theirs .dm-bubble-time{color:var(--text-3)}
.dm-reply-btn{
  position:absolute;top:.3rem;right:.3rem;font-size:.68rem;opacity:0;
  transition:var(--t-fast);cursor:pointer;background:none;border:none;color:rgba(0,0,0,.35);
}
.dm-bubble:hover .dm-reply-btn{opacity:1}
.dm-bubble-theirs .dm-reply-btn{color:var(--text-3)}

/* ── VAULT ── */
.vault-controls{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);padding:1rem 1.15rem;margin-bottom:1.1rem}

/* ── PROFILE ── */
.profile-banner{
  height:170px;background:linear-gradient(135deg,var(--bg-3) 0%,var(--bg-4) 100%);
  border-radius:var(--r-xl);margin-bottom:0;overflow:hidden;position:relative;
}
.profile-banner img{width:100%;height:100%;object-fit:cover}
.profile-banner-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(0,0,0,.55))}
.profile-hd{
  display:flex;gap:1.15rem;align-items:flex-end;margin-top:-2.5rem;
  padding:0 .5rem;margin-bottom:1.1rem;flex-wrap:wrap;position:relative;z-index:1;
}
.profile-avatar{width:84px;height:84px;border-radius:50%;border:4px solid var(--bg-2);object-fit:cover;background:var(--bg-4);flex-shrink:0}
.profile-info{flex:1;min-width:190px;padding-bottom:.2rem}
.profile-name{font-size:1.25rem;font-weight:700;letter-spacing:-.01em}
.profile-un{font-size:.83rem;color:var(--text-3);margin:.12rem 0 .4rem}
.profile-stats-row{display:flex;gap:1.35rem;flex-wrap:wrap}
.profile-stat strong{color:var(--text);font-size:.875rem}
.profile-stat span{color:var(--text-3);font-size:.76rem;margin-left:3px}

/* ── SETTINGS ── */
.settings-section{background:var(--bg-2);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.25rem;margin-bottom:.9rem}
.settings-section-title{font-size:.875rem;font-weight:700;margin-bottom:1rem;padding-bottom:.6rem;border-bottom:1px solid var(--border)}
.settings-row{margin-bottom:.85rem}
.settings-row:last-child{margin-bottom:0}
.settings-label{font-size:.76rem;color:var(--text-3);display:block;margin-bottom:5px;font-weight:500}
.settings-avatar-preview{width:72px;height:72px;border-radius:50%;object-fit:cover;border:2.5px solid var(--border);background:var(--bg-4);margin-bottom:.55rem}

/* ── THEME PICKER ── */
.theme-grid{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.45rem}
.theme-swatch{width:34px;height:34px;border-radius:50%;cursor:pointer;border:2.5px solid transparent;transition:transform .15s,border-color .15s}
.theme-swatch:hover{transform:scale(1.18)}
.theme-swatch.active{border-color:var(--text)}

/* ── HEATMAP ── */
.heatmap-wrap{display:flex;gap:2px;padding:.7rem;background:var(--bg-2);border-radius:var(--r-lg);border:1px solid var(--border);overflow-x:auto}
.heatmap-col{display:flex;flex-direction:column;gap:2px}
.heatmap-cell{width:10px;height:10px;border-radius:2px;flex-shrink:0}

/* ── LOADING SKELETON ── */
.skeleton{
  background:linear-gradient(90deg,var(--bg-3) 25%,var(--bg-4) 50%,var(--bg-3) 75%);
  background-size:200% 100%;
  animation:skeleton-sweep 1.4s ease infinite;
  border-radius:var(--r);
}
@keyframes skeleton-sweep{
  from{background-position:200% 0}
  to{background-position:-200% 0}
}

@media(max-width:960px){
  .feed-layout{grid-template-columns:1fr}
  .feed-sidebar-col{display:none}
  .dm-sidebar{width:100%;position:absolute;z-index:10;background:var(--bg);top:0;bottom:0;left:0;transition:transform .22s ease}
  .dm-sidebar.hidden{transform:translateX(-100%)}
  .people-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}
}
