/* ═══════════════════════════════════════════════
   O3Naija User Dashboard — CSS v1.0.0
   ═══════════════════════════════════════════════ */
:root {
  --dg:     #1a7a3c;
  --dgd:    #0f5a2a;
  --dgl:    #e8f5ed;
  --dwhite: #ffffff;
  --dg50:   #f8f9fa;
  --dg100:  #f1f3f4;
  --dg200:  #e8eaed;
  --dg300:  #dadce0;
  --dg400:  #9aa0a6;
  --dg500:  #80868b;
  --dg600:  #5f6368;
  --dg800:  #3c4043;
  --dg900:  #202124;
  --dred:   #e53935;
  --dblue:  #1565c0;
  --dorange:#f57c00;
  --dfont:  -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --drad:   10px;
  --drad-lg:14px;
  --dsh:    0 2px 12px rgba(0,0,0,.08);
  --dsh-lg: 0 4px 24px rgba(0,0,0,.12);
  --dtr:    .2s ease;
}

/* ── Reset ── */
.o3dash-wrap *,
.o3dash-wrap *::before,
.o3dash-wrap *::after { box-sizing: border-box; }

/* ══════════════════════════════════════════════
   LAYOUT
══════════════════════════════════════════════ */
.o3dash-wrap {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 24px;
  max-width: 1200px;
  margin: 24px auto;
  padding: 0 16px 60px;
  align-items: start;
  font-family: var(--dfont);
}

/* ══════════════════════════════════════════════
   SIDEBAR
══════════════════════════════════════════════ */
.o3dash-sidebar {
  background: var(--dwhite);
  border-radius: var(--drad-lg);
  border: 1px solid var(--dg200);
  overflow: hidden;
  box-shadow: var(--dsh);
  position: sticky;
  top: 80px;
}

/* user card */
.o3dash-user-card {
  background: linear-gradient(135deg, var(--dg) 0%, var(--dgd) 100%);
  padding: 24px 20px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
}
.o3dash-avatar-wrap {
  position: relative;
  display: inline-flex;
  flex-shrink: 0;
}
.o3dash-avatar-img {
  width: 72px; height: 72px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid rgba(255,255,255,.4);
  display: block;
}
.o3dash-avatar-edit {
  position: absolute;
  bottom: 0; right: 0;
  width: 24px; height: 24px;
  background: var(--dwhite);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  color: var(--dg);
  box-shadow: 0 1px 4px rgba(0,0,0,.18);
  transition: transform var(--dtr);
}
.o3dash-avatar-edit:hover { transform: scale(1.12); }
.o3dash-user-info { display: flex; flex-direction: column; gap: 3px; }
.o3dash-user-name { font-size: 15px; font-weight: 700; color: #fff; }
.o3dash-user-role { font-size: 11px; background: rgba(255,255,255,.2); color: rgba(255,255,255,.9); padding: 2px 8px; border-radius: 10px; display: inline-block; }
.o3dash-user-since { font-size: 11px; color: rgba(255,255,255,.65); }

/* nav items */
.o3dash-nav { padding: 8px 0; }
.o3dash-nav-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 20px;
  color: var(--dg600);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: background var(--dtr), color var(--dtr);
  position: relative;
  cursor: pointer;
}
.o3dash-nav-item svg { flex-shrink: 0; }
.o3dash-nav-item:hover { background: var(--dgl); color: var(--dg); }
.o3dash-nav-item.active { background: var(--dgl); color: var(--dg); font-weight: 600; }
.o3dash-nav-item.active::before { content:''; position:absolute; left:0; top:25%; bottom:25%; width:3px; background:var(--dg); border-radius:0 3px 3px 0; }
.o3dash-nav-badge { margin-left:auto; background:var(--dred); color:#fff; font-size:10px; font-weight:700; min-width:18px; height:18px; border-radius:9px; display:inline-flex; align-items:center; justify-content:center; padding:0 5px; }
.o3dash-logout { color: var(--dred) !important; border-top: 1px solid var(--dg100); margin-top: 4px; }
.o3dash-logout:hover { background: #fce4ec !important; }

/* ══════════════════════════════════════════════
   MAIN CONTENT
══════════════════════════════════════════════ */
.o3dash-main { min-width: 0; }
.o3dash-page { display: flex; flex-direction: column; gap: 24px; }

.o3dash-page-header h1 {
  font-size: 22px;
  font-weight: 700;
  color: var(--dg900);
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.o3dash-page-sub { font-size: 13px; color: var(--dg500); margin: 0; }
.o3dash-notif-header-badge { background:var(--dred); color:#fff; font-size:11px; font-weight:700; padding:2px 8px; border-radius:10px; }

/* ── Stats grid ── */
.o3dash-stats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.o3dash-stat-card { background: var(--dwhite); border-radius: var(--drad); border: 1px solid var(--dg200); padding: 16px; display: flex; align-items: center; gap: 14px; box-shadow: var(--dsh); }
.o3dash-stat-icon { width: 44px; height: 44px; border-radius: 10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.o3dash-stat-num { display: block; font-size: 22px; font-weight: 700; color: var(--dg900); line-height: 1.2; }
.o3dash-stat-label { display: block; font-size: 12px; color: var(--dg500); margin-top: 2px; }

/* ── Alert ── */
.o3dash-alert {
  display: flex; align-items: center; gap: 9px;
  padding: 12px 16px;
  border-radius: var(--drad);
  font-size: 13px; font-weight: 500;
}
.o3dash-alert a { font-weight: 700; }
.o3dash-alert-info { background: #e3f0fb; color: var(--dblue); border: 1px solid #bbdefb; }
.o3dash-alert-info a { color: var(--dblue); }
.o3dash-alert-success { background: var(--dgl); color: var(--dg); border: 1px solid #c8e6c9; }
.o3dash-alert-error { background: #fce4ec; color: var(--dred); border: 1px solid #f8bbd0; }
.o3dash-alert svg { flex-shrink: 0; }

/* ── Section ── */
.o3dash-section { background: var(--dwhite); border-radius: var(--drad); border: 1px solid var(--dg200); padding: 20px; box-shadow: var(--dsh); }
.o3dash-section-title { font-size: 13px; font-weight: 700; color: var(--dg900); margin: 0 0 16px; display: flex; align-items: center; gap: 7px; text-transform: uppercase; letter-spacing: .5px; }
.o3dash-section-title svg { color: var(--dg); }
.o3dash-link-more { display: inline-flex; align-items:center; font-size: 13px; font-weight: 600; color: var(--dg); margin-top: 14px; }
.o3dash-link-more:hover { text-decoration: underline; }

/* ── Quick actions ── */
.o3dash-quick-actions { display: grid; grid-template-columns: repeat(2,1fr); gap: 10px; }
.o3dash-qa-btn {
  display: flex; align-items: center; gap: 10px;
  padding: 14px 16px;
  background: var(--dg50);
  border: 1.5px solid var(--dg200);
  border-radius: var(--drad);
  font-size: 14px; font-weight: 600; color: var(--dg900);
  text-decoration: none;
  transition: all var(--dtr);
}
.o3dash-qa-btn:hover { background: var(--dgl); border-color: var(--dg); color: var(--dg); }
.o3dash-qa-btn svg { flex-shrink: 0; color: var(--dg); }

/* ── Activity list ── */
.o3dash-activity-list { display: flex; flex-direction: column; }
.o3dash-activity-item { display: flex; align-items: flex-start; gap: 11px; padding: 10px 0; border-bottom: 1px solid var(--dg100); }
.o3dash-activity-item:last-child { border-bottom: none; }
.o3dash-act-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--dg); flex-shrink: 0; margin-top: 6px; }
.o3dash-act-commented  .o3dash-act-dot { background: var(--dblue); }
.o3dash-act-loved      .o3dash-act-dot { background: var(--dred); }
.o3dash-act-saved      .o3dash-act-dot { background: var(--dg); }
.o3dash-act-submitted_post .o3dash-act-dot { background: var(--dorange); }
.o3dash-act-body { flex: 1; min-width: 0; }
.o3dash-act-text { display: block; font-size: 13px; color: var(--dg800); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.o3dash-act-time { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--dg400); margin-top: 2px; }
.o3dash-activity-full .o3dash-activity-item { padding: 12px 0; }
.o3dash-activity-row { background: var(--dwhite); border-radius: var(--drad); border: 1px solid var(--dg100); padding: 12px 14px !important; margin-bottom: 8px; }
.o3dash-activity-row:last-child { border-bottom: 1px solid var(--dg100); margin-bottom: 0; }
.o3dash-act-icon { width: 32px; height: 32px; border-radius: 8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.o3dash-act-link { font-size: 12px; font-weight: 600; color: var(--dg); white-space: nowrap; margin-left: auto; text-decoration: none; }
.o3dash-act-link:hover { text-decoration: underline; }

/* ── Empty state ── */
.o3dash-empty { background: var(--dwhite); border-radius: var(--drad); border: 1px solid var(--dg200); padding: 48px 24px; text-align: center; box-shadow: var(--dsh); }
.o3dash-empty svg { margin: 0 auto 16px; color: var(--dg300); }
.o3dash-empty p { font-size: 14px; color: var(--dg500); margin-bottom: 20px; }

/* ── Saved posts grid ── */
.o3dash-saved-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; }
.o3dash-saved-card { background: var(--dwhite); border-radius: var(--drad); border: 1px solid var(--dg200); overflow: hidden; box-shadow: var(--dsh); transition: box-shadow var(--dtr), transform var(--dtr); }
.o3dash-saved-card:hover { box-shadow: var(--dsh-lg); transform: translateY(-2px); }
.o3dash-saved-img { position: relative; aspect-ratio: 16/9; overflow: hidden; background: var(--dg100); }
.o3dash-saved-img img { width:100%; height:100%; object-fit:cover; }
.o3dash-saved-placeholder { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color: var(--dg400); }
.o3dash-saved-cat { position: absolute; top: 8px; left: 8px; background: var(--dg); color:#fff; font-size:10px; font-weight:600; padding: 2px 8px; border-radius:4px; text-transform:uppercase; letter-spacing:.5px; }
.o3dash-saved-body { padding: 14px; }
.o3dash-saved-title { font-size: 14px; font-weight: 700; margin: 0 0 6px; line-height: 1.35; }
.o3dash-saved-title a { color: var(--dg900); text-decoration: none; transition: color var(--dtr); }
.o3dash-saved-title a:hover { color: var(--dg); }
.o3dash-saved-excerpt { font-size: 12px; color: var(--dg500); line-height: 1.55; margin-bottom: 10px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.o3dash-saved-footer { display: flex; align-items: center; justify-content: space-between; padding-top: 8px; border-top: 1px solid var(--dg100); }
.o3dash-saved-date { display: flex; align-items: center; gap: 4px; font-size: 11px; color: var(--dg400); }
.o3dash-unsave-btn { background: none; border: none; color: var(--dg400); cursor: pointer; padding: 4px; border-radius: 4px; display:flex; align-items:center; transition: color var(--dtr), background var(--dtr); }
.o3dash-unsave-btn:hover { color: var(--dred); background: #fce4ec; }

/* ── Submit form ── */
.o3dash-form { display: flex; flex-direction: column; gap: 0; background: var(--dwhite); border-radius: var(--drad); border: 1px solid var(--dg200); padding: 24px; box-shadow: var(--dsh); }
.o3dash-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.o3dash-field-full { grid-column: 1 / -1; }
.o3dash-form-field { display: flex; flex-direction: column; gap: 6px; }
.o3dash-form-field label { font-size: 13px; font-weight: 600; color: var(--dg800); display:flex; align-items:center; gap:4px; }
.o3dash-req { color: var(--dred); font-size: 14px; line-height: 1; }
.o3dash-form-field input[type="text"],
.o3dash-form-field input[type="email"],
.o3dash-form-field input[type="url"],
.o3dash-form-field input[type="password"],
.o3dash-form-field select,
.o3dash-form-field textarea {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid var(--dg200);
  border-radius: var(--drad);
  font-family: var(--dfont);
  font-size: 14px;
  background: var(--dg50);
  color: var(--dg900);
  outline: none;
  transition: border-color var(--dtr), box-shadow var(--dtr), background var(--dtr);
}
.o3dash-form-field input:focus,
.o3dash-form-field select:focus,
.o3dash-form-field textarea:focus {
  border-color: var(--dg);
  box-shadow: 0 0 0 3px rgba(26,122,60,.1);
  background: var(--dwhite);
}
.o3dash-form-field input:disabled { background: var(--dg100); color: var(--dg400); cursor: not-allowed; }
.o3dash-form-field textarea { resize: vertical; min-height: 100px; line-height: 1.6; }
.o3dash-field-hint { font-size: 11px; color: var(--dg400); }
.o3dash-char-count { font-size: 11px; color: var(--dg400); text-align: right; }

/* input with icon */
.o3dash-input-icon { position: relative; }
.o3dash-input-icon svg { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--dg400); pointer-events:none; }
.o3dash-input-icon input { padding-left: 36px !important; }

/* file drop */
.o3dash-file-drop {
  border: 2px dashed var(--dg300);
  border-radius: var(--drad);
  padding: 28px 20px;
  text-align: center;
  cursor: pointer;
  background: var(--dg50);
  transition: border-color var(--dtr), background var(--dtr);
}
.o3dash-file-drop:hover, .o3dash-file-drop.drag-over { border-color: var(--dg); background: var(--dgl); }
.o3dash-file-drop svg { margin: 0 auto 10px; color: var(--dg400); display:block; }
.o3dash-file-drop p { font-size: 14px; color: var(--dg600); margin-bottom: 4px; }
.o3dash-file-browse { color: var(--dg); font-weight: 600; cursor: pointer; text-decoration: underline; }
.o3dash-file-hint { font-size: 12px; color: var(--dg400); }
#o3dashImgPreview img { max-height: 140px; border-radius: 6px; margin: 10px auto 0; display:block; }

/* form actions */
.o3dash-form-actions { display: flex; align-items: center; gap: 12px; padding-top: 4px; flex-wrap: wrap; }
.o3dash-form-divider { display: flex; align-items: center; gap: 12px; margin: 8px 0 16px; font-size: 12px; font-weight: 600; color: var(--dg400); text-transform: uppercase; letter-spacing: .5px; }
.o3dash-form-divider::before, .o3dash-form-divider::after { content:''; flex:1; height:1px; background:var(--dg200); }
.o3dash-form-msg { padding: 11px 14px; border-radius: var(--drad); font-size: 13px; font-weight: 500; margin-top: 14px; }
.o3dash-form-msg.success { background: var(--dgl); color: var(--dg); border: 1px solid #c8e6c9; }
.o3dash-form-msg.error   { background: #fce4ec; color: var(--dred); border: 1px solid #f8bbd0; }

/* ── Buttons ── */
.o3dash-btn-primary {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 11px 22px;
  background: var(--dg);
  color: #fff;
  border: none;
  border-radius: var(--drad);
  font-family: var(--dfont);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--dtr), transform .12s;
  text-decoration: none;
}
.o3dash-btn-primary:hover { background: var(--dgd); transform: translateY(-1px); }
.o3dash-btn-primary:active { transform: translateY(0); }
.o3dash-btn-primary svg { flex-shrink:0; }
.o3dash-btn-ghost {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 10px 20px;
  background: none;
  color: var(--dg600);
  border: 1.5px solid var(--dg200);
  border-radius: var(--drad);
  font-family: var(--dfont);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: all var(--dtr);
  text-decoration: none;
}
.o3dash-btn-ghost:hover { border-color: var(--dg); color: var(--dg); background: var(--dgl); }
.o3dash-btn-sm { padding: 7px 14px !important; font-size: 12px !important; }
.o3dash-btn-danger {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 10px 20px;
  background: var(--dred);
  color: #fff;
  border: none;
  border-radius: var(--drad);
  font-family: var(--dfont);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--dtr);
  text-decoration: none;
}
.o3dash-btn-danger:hover { background: #c62828; }

/* ── Posts list (submitted) ── */
.o3dash-posts-list { background: var(--dwhite); border-radius: var(--drad); border: 1px solid var(--dg200); overflow: hidden; box-shadow: var(--dsh); }
.o3dash-post-row { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-bottom: 1px solid var(--dg100); }
.o3dash-post-row:last-child { border-bottom: none; }
.o3dash-post-row-info { display: flex; align-items: center; gap: 10px; flex: 1; min-width: 0; }
.o3dash-post-status { font-size: 10px; font-weight: 700; padding: 3px 8px; border-radius: 6px; white-space: nowrap; flex-shrink:0; }
.o3dash-post-row-title { font-size: 13px; font-weight: 600; color: var(--dg900); text-decoration: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.o3dash-post-row-title:hover { color: var(--dg); }
.o3dash-post-row-date { font-size: 11px; color: var(--dg400); white-space: nowrap; flex-shrink:0; margin-left: auto; }

/* ── Notifications ── */
.o3dash-notif-list { display: flex; flex-direction: column; gap: 8px; }
.o3dash-notif-item { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; background: var(--dwhite); border-radius: var(--drad); border: 1px solid var(--dg200); box-shadow: var(--dsh); transition: border-color var(--dtr); }
.o3dash-notif-unread { border-left: 3px solid var(--dg); background: var(--dgl); }
.o3dash-notif-icon { width: 32px; height: 32px; border-radius: 8px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.o3dash-notif-body { flex: 1; min-width: 0; }
.o3dash-notif-msg { font-size: 13px; color: var(--dg900); margin: 0 0 4px; line-height: 1.5; }
.o3dash-notif-time { display: flex; align-items:center; gap: 4px; font-size: 11px; color: var(--dg400); }
.o3dash-notif-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.o3dash-notif-link { font-size: 12px; font-weight: 600; color: var(--dg); text-decoration:none; padding: 4px 10px; background: var(--dgl); border-radius: 6px; }
.o3dash-notif-link:hover { background: var(--dg); color: #fff; }
.o3dash-notif-read-btn,
.o3dash-notif-del-btn { background: none; border: none; padding: 5px; cursor: pointer; color: var(--dg400); border-radius: 5px; display:flex; align-items:center; transition: color var(--dtr), background var(--dtr); }
.o3dash-notif-read-btn:hover { color: var(--dg); background: var(--dgl); }
.o3dash-notif-del-btn:hover  { color: var(--dred); background: #fce4ec; }

/* ── Profile layout ── */
.o3dash-profile-layout { display: grid; grid-template-columns: 200px 1fr; gap: 24px; align-items: start; }
.o3dash-profile-avatar-col { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.o3dash-profile-avatar-wrap { position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.o3dash-profile-avatar-wrap .o3dash-avatar-img { width: 110px; height: 110px; border: 3px solid var(--dg200); }
.o3dash-avatar-edit-big { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: var(--dg); cursor: pointer; padding: 7px 14px; background: var(--dgl); border-radius: 8px; transition: background var(--dtr); }
.o3dash-avatar-edit-big:hover { background: var(--dg); color: #fff; }
.o3dash-avatar-hint { font-size: 11px; color: var(--dg400); text-align: center; }
#o3dashProfileAvatarInput { display: none; }

/* ── Settings ── */
.o3dash-settings-section { background: var(--dwhite); border-radius: var(--drad); border: 1px solid var(--dg200); padding: 24px; box-shadow: var(--dsh); }
.o3dash-settings-title { font-size: 15px; font-weight: 700; color: var(--dg900); margin: 0 0 18px; display:flex; align-items:center; gap: 8px; }
.o3dash-settings-title svg { color: var(--dg); }
.o3dash-settings-subtitle { font-size: 13px; font-weight: 700; color: var(--dg600); margin: 20px 0 12px; text-transform: uppercase; letter-spacing: .5px; }

/* toggles */
.o3dash-toggle-list { display: flex; flex-direction: column; gap: 0; border-radius: var(--drad); border: 1px solid var(--dg200); overflow: hidden; margin-bottom: 20px; }
.o3dash-toggle-row { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; border-bottom: 1px solid var(--dg100); cursor: pointer; transition: background var(--dtr); gap: 16px; }
.o3dash-toggle-row:last-child { border-bottom: none; }
.o3dash-toggle-row:hover { background: var(--dg50); }
.o3dash-toggle-row input[type="checkbox"] { display: none; }
.o3dash-toggle-info { flex: 1; min-width: 0; }
.o3dash-toggle-label { display: block; font-size: 14px; font-weight: 600; color: var(--dg900); }
.o3dash-toggle-desc  { display: block; font-size: 12px; color: var(--dg500); margin-top: 2px; }
.o3dash-toggle { width: 44px; height: 24px; border-radius: 12px; background: var(--dg300); position: relative; flex-shrink: 0; transition: background var(--dtr); }
.o3dash-toggle.on { background: var(--dg); }
.o3dash-toggle-slider { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; background: #fff; border-radius: 50%; box-shadow: 0 1px 4px rgba(0,0,0,.2); transition: transform var(--dtr); }
.o3dash-toggle.on .o3dash-toggle-slider { transform: translateX(20px); }

/* pass */
.o3dash-pass-wrap { position: relative; }
.o3dash-pass-wrap input { padding-right: 40px !important; }
.o3dash-pass-toggle { position:absolute; right:10px; top:50%; transform:translateY(-50%); background:none; border:none; cursor:pointer; color:var(--dg400); padding:0; display:flex; align-items:center; }
.o3dash-pass-toggle:hover { color: var(--dg600); }
.o3dash-pass-strength { margin-top: 6px; font-size: 12px; font-weight: 600; padding: 4px 10px; border-radius: 6px; }
.o3dash-pass-strength.weak   { background: #fce4ec; color: var(--dred); }
.o3dash-pass-strength.medium { background: #fff3e0; color: var(--dorange); }
.o3dash-pass-strength.strong { background: var(--dgl); color: var(--dg); }

/* danger zone */
.o3dash-danger-zone { border-color: #ffcdd2; }
.o3dash-danger-zone .o3dash-settings-title { color: var(--dred); }
.o3dash-danger-zone .o3dash-settings-title svg { color: var(--dred); }
.o3dash-danger-content { display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.o3dash-danger-content strong { display:block; font-size:14px; font-weight:700; color:var(--dg900); margin-bottom:4px; }
.o3dash-danger-content p { font-size:13px; color:var(--dg500); margin:0; }

/* ── Modal ── */
.o3dash-modal { position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; padding:16px; }
.o3dash-modal-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.55); }
.o3dash-modal-box { position:relative; background:var(--dwhite); border-radius:var(--drad-lg); padding:28px 24px; max-width:420px; width:100%; box-shadow:0 8px 40px rgba(0,0,0,.18); text-align:center; }
.o3dash-modal-box h3 { font-size:18px; font-weight:700; margin:0 0 10px; }
.o3dash-modal-box p { font-size:14px; color:var(--dg600); line-height:1.55; margin:0; }
.o3dash-modal-actions { display:flex; gap:10px; justify-content:center; margin-top:8px; flex-wrap:wrap; }

/* ── Save FAB (single post) ── */
.o3dash-save-fab {
  position: fixed;
  bottom: 90px;
  right: 16px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: var(--dwhite);
  border: 1.5px solid var(--dg200);
  border-radius: 24px;
  font-family: var(--dfont);
  font-size: 13px;
  font-weight: 600;
  color: var(--dg600);
  cursor: pointer;
  box-shadow: 0 2px 12px rgba(0,0,0,.12);
  transition: all var(--dtr);
  z-index: 800;
}
.o3dash-save-fab:hover { border-color: var(--dg); color: var(--dg); transform: translateY(-2px); }
.o3dash-save-fab.is-saved { background: var(--dgl); border-color: var(--dg); color: var(--dg); }
.o3dash-save-fab.is-saved svg { fill: currentColor; }

/* ── Toast ── */
.o3dash-toast {
  position: fixed;
  bottom: 24px; left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--dg900);
  color: #fff;
  font-size: 13px; font-weight: 600;
  padding: 11px 22px;
  border-radius: 24px;
  z-index: 99998;
  opacity: 0;
  pointer-events: none;
  transition: opacity .22s, transform .22s;
  white-space: nowrap;
  box-shadow: 0 4px 18px rgba(0,0,0,.22);
  font-family: var(--dfont);
}
.o3dash-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.o3dash-toast.success { background: var(--dg); }
.o3dash-toast.error   { background: var(--dred); }

/* ── Login notice ── */
.o3dash-login-notice { text-align:center; padding:48px 24px; background:var(--dwhite); border-radius:var(--drad); border:1px solid var(--dg200); box-shadow:var(--dsh); }
.o3dash-login-notice svg { margin:0 auto 14px; color:var(--dg400); display:block; }
.o3dash-login-notice p { font-size:15px; color:var(--dg600); }
.o3dash-login-notice a { color:var(--dg); font-weight:700; }
.o3dash-notif-dot { background:var(--dred); color:#fff; font-size:10px; font-weight:700; padding:1px 6px; border-radius:9px; margin-left:6px; }

/* ── RESPONSIVE ── */
@media(max-width:900px) {
  .o3dash-wrap { grid-template-columns:1fr; }
  .o3dash-sidebar { position:static; }
  .o3dash-nav { display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
  .o3dash-user-card { flex-direction:row; text-align:left; gap:14px; }
  .o3dash-stats-grid { grid-template-columns:1fr 1fr; }
  .o3dash-saved-grid { grid-template-columns:1fr 1fr; }
  .o3dash-quick-actions { grid-template-columns:1fr 1fr; }
  .o3dash-profile-layout { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  .o3dash-wrap { padding:0 12px 60px; gap:16px; }
  .o3dash-nav { grid-template-columns:repeat(3,1fr); }
  .o3dash-stats-grid { grid-template-columns:1fr 1fr; gap:10px; }
  .o3dash-saved-grid { grid-template-columns:1fr; }
  .o3dash-quick-actions { grid-template-columns:1fr; }
  .o3dash-form-row { grid-template-columns:1fr; }
  .o3dash-nav-item span { display:none; }
  .o3dash-nav-item { justify-content:center; padding:12px 8px; }
  .o3dash-nav-item.active::before { top:auto; bottom:0; left:25%; right:25%; width:50%; height:3px; border-radius:3px 3px 0 0; }
  .o3dash-share-grid { grid-template-columns:repeat(3,1fr); }
  .o3dash-danger-content { flex-direction:column; align-items:flex-start; }
  .o3dash-save-fab { bottom:74px; padding:8px 13px; font-size:12px; }
}
