/* RT Portal — Matching Remote Technologies dark theme */
@import url('https://fonts.googleapis.com/css2?family=Syne:wght@700;800;900&family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
  --rtp-bg:        #06060f;
  --rtp-bg2:       #0a0a18;
  --rtp-card:      rgba(10,10,28,.88);
  --rtp-border:    rgba(99,102,241,.2);
  --rtp-indigo:    #6366f1;
  --rtp-purple:    #8b5cf6;
  --rtp-text:      #f8fafc;
  --rtp-sub:       #94a3b8;
  --rtp-muted:     #64748b;
  --rtp-success:   #4ade80;
  --rtp-warning:   #fbbf24;
  --rtp-danger:    #f87171;
}

/* ── AUTH PAGES ── */
.rtp-auth-wrap {
  position: relative; min-height: 100vh;
  background: var(--rtp-bg); display: flex;
  align-items: center; justify-content: center;
  padding: 40px 20px; overflow: hidden;
  font-family: 'DM Sans', sans-serif;
}
.rtp-auth-bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.rtp-auth-grid {
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(99,102,241,.04) 1px,transparent 1px), linear-gradient(90deg,rgba(99,102,241,.04) 1px,transparent 1px);
  background-size: 64px 64px;
}
.rtp-auth-orb { position: absolute; border-radius: 50%; filter: blur(90px); animation: rtpOrbFloat 10s ease-in-out infinite; }
.rtp-auth-orb-1 { width:500px;height:500px;background:radial-gradient(circle,rgba(99,102,241,.2) 0%,transparent 70%);top:-150px;left:-100px; }
.rtp-auth-orb-2 { width:400px;height:400px;background:radial-gradient(circle,rgba(168,85,247,.14) 0%,transparent 70%);bottom:-80px;right:-80px;animation-delay:5s; }
@keyframes rtpOrbFloat { 0%,100%{transform:translateY(0) scale(1)} 50%{transform:translateY(-30px) scale(1.05)} }

.rtp-auth-box {
  position: relative; z-index: 10;
  background: var(--rtp-card); border: 1px solid var(--rtp-border);
  border-radius: 20px; padding: 36px 32px;
  width: 100%; max-width: 460px;
  box-shadow: 0 20px 60px rgba(0,0,0,.5);
}
.rtp-auth-box-wide { max-width: 600px; }

.rtp-auth-logo {
  display: flex; align-items: center; gap: 10px;
  font-size: 16px; font-weight: 700; color: var(--rtp-text);
  margin-bottom: 24px; text-decoration: none;
}
.rtp-auth-logo-icon {
  width: 36px; height: 36px; border-radius: 10px;
  background: linear-gradient(135deg,var(--rtp-indigo),var(--rtp-purple));
  display: flex; align-items: center; justify-content: center;
  font-family: 'Syne',sans-serif; font-weight: 900; color: #fff; font-size: 16px;
}
.rtp-accent { color: var(--rtp-indigo); }

.rtp-type-toggle {
  display: flex; gap: 8px; background: rgba(99,102,241,.06);
  border: 1px solid var(--rtp-border); border-radius: 12px; padding: 5px;
  margin-bottom: 24px;
}
.rtp-type-btn {
  flex: 1; padding: 10px; font-size: 13px; font-weight: 600;
  color: var(--rtp-muted); background: transparent; border: none;
  border-radius: 8px; cursor: pointer; transition: all .2s;
}
.rtp-type-btn.active {
  background: linear-gradient(135deg,var(--rtp-indigo),var(--rtp-purple));
  color: #fff; box-shadow: 0 0 20px rgba(99,102,241,.3);
}

.rtp-auth-title {
  font-family: 'Syne',sans-serif !important; font-size: clamp(22px,3vw,30px) !important;
  font-weight: 900 !important; line-height: 1.2 !important;
  color: var(--rtp-text) !important; margin: 0 0 8px !important;
}
.rtp-grad {
  background: linear-gradient(135deg,#6366f1,#a855f7,#3b82f6);
  background-size: 200% 200%; -webkit-background-clip: text;
  -webkit-text-fill-color: transparent; background-clip: text;
  animation: rtpGrad 4s ease infinite;
}
@keyframes rtpGrad { 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
.rtp-auth-sub { font-size: 14px !important; color: var(--rtp-sub) !important; margin: 0 0 24px !important; }

.rtp-message { padding: 12px 16px; border-radius: 10px; font-size: 13px; margin-bottom: 16px; }
.rtp-message-error   { background: rgba(239,68,68,.1);  border: 1px solid rgba(239,68,68,.3);  color: #f87171; }
.rtp-message-success { background: rgba(74,222,128,.1); border: 1px solid rgba(74,222,128,.3); color: #4ade80; }

.rtp-form { display: flex; flex-direction: column; gap: 0; }
.rtp-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.rtp-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.rtp-field-full { grid-column: 1/-1; }
.rtp-label { font-size: 11px; font-weight: 700; color: var(--rtp-sub); text-transform: uppercase; letter-spacing: .07em; }
.rtp-input {
  background: rgba(99,102,241,.06) !important; border: 1px solid rgba(99,102,241,.2) !important;
  border-radius: 10px !important; padding: 12px 14px !important; font-size: 14px !important;
  color: var(--rtp-text) !important; outline: none !important; transition: border-color .2s !important;
  font-family: 'DM Sans',sans-serif !important; width: 100% !important; box-shadow: none !important;
}
.rtp-input:focus { border-color: rgba(99,102,241,.5) !important; box-shadow: none !important; }
.rtp-input::placeholder { color: #475569 !important; }
.rtp-textarea { min-height: 100px !important; resize: vertical !important; }
.rtp-input-wrap { position: relative; }
.rtp-eye {
  position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
  background: transparent; border: none; cursor: pointer; font-size: 16px; opacity: .5;
}
.rtp-remember { margin-bottom: 16px; }
.rtp-checkbox-wrap {
  display: flex; align-items: flex-start; gap: 10px;
  font-size: 13px; color: var(--rtp-sub); cursor: pointer;
}
.rtp-checkbox-wrap input { display: none; }
.rtp-checkbox-box {
  width: 18px; height: 18px; border: 2px solid rgba(99,102,241,.4);
  border-radius: 5px; flex-shrink: 0; margin-top: 1px; transition: all .2s;
}
.rtp-checkbox-wrap input:checked + .rtp-checkbox-box {
  background: var(--rtp-indigo); border-color: var(--rtp-indigo);
}
.rtp-checkbox-wrap input:checked + .rtp-checkbox-box::after { content: '✓'; color: #fff; font-size: 11px; display: flex; align-items: center; justify-content: center; height: 100%; }
.rtp-btn-submit {
  width: 100%; padding: 14px; background: linear-gradient(135deg,var(--rtp-indigo),var(--rtp-purple)) !important;
  color: #fff !important; font-size: 15px; font-weight: 700; border: none !important; border-radius: 10px;
  cursor: pointer; transition: all .3s; box-shadow: 0 0 28px rgba(99,102,241,.35) !important;
  margin-top: 6px; font-family: 'DM Sans',sans-serif;
}
.rtp-btn-submit:hover { box-shadow: 0 0 48px rgba(99,102,241,.55) !important; transform: translateY(-2px); }
.rtp-switch-text { text-align: center; font-size: 13px; color: var(--rtp-muted); margin-top: 16px; }
.rtp-link { color: var(--rtp-indigo) !important; text-decoration: none !important; transition: color .2s; }
.rtp-link:hover { color: #a5b4fc !important; }
.rtp-file-input { padding: 10px !important; }

/* ── DASHBOARD LAYOUT ── */
.rtp-dash {
  display: flex; min-height: 100vh;
  background: var(--rtp-bg); font-family: 'DM Sans',sans-serif;
}

/* Sidebar */
.rtp-sidebar {
  width: 260px; flex-shrink: 0; background: var(--rtp-bg2);
  border-right: 1px solid rgba(99,102,241,.1);
  display: flex; flex-direction: column; padding: 24px 16px;
  position: sticky; top: 0; height: 100vh; overflow-y: auto;
}
.rtp-sidebar-logo {
  display: flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 700; color: var(--rtp-text);
  margin-bottom: 32px; padding: 0 8px;
}
.rtp-nav { display: flex; flex-direction: column; gap: 4px; flex: 1; }
.rtp-nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 11px 12px; border-radius: 10px; font-size: 13px; font-weight: 500;
  color: var(--rtp-muted); text-decoration: none !important; transition: all .2s;
  position: relative;
}
.rtp-nav-item:hover { background: rgba(99,102,241,.08); color: var(--rtp-text) !important; }
.rtp-nav-item.active { background: rgba(99,102,241,.12); color: var(--rtp-indigo) !important; font-weight: 700; }
.rtp-nav-icon { font-size: 16px; }
.rtp-nav-badge {
  margin-left: auto; font-size: 10px; font-weight: 700; min-width: 20px; height: 20px;
  background: rgba(99,102,241,.15); color: #a5b4fc;
  border-radius: 20px; display: flex; align-items: center; justify-content: center; padding: 0 6px;
}
.rtp-badge-red { background: rgba(239,68,68,.15) !important; color: #f87171 !important; }
.rtp-logout {
  display: flex; align-items: center; gap: 10px; padding: 12px;
  color: var(--rtp-muted) !important; text-decoration: none !important;
  font-size: 13px; border-radius: 10px; transition: all .2s; margin-top: 16px;
}
.rtp-logout:hover { background: rgba(239,68,68,.08); color: var(--rtp-danger) !important; }

/* Main content */
.rtp-main { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.rtp-dash-header {
  display: flex; align-items: center; gap: 16px;
  padding: 20px 28px; border-bottom: 1px solid rgba(99,102,241,.08);
  background: rgba(6,6,15,.9); backdrop-filter: blur(10px);
  position: sticky; top: 0; z-index: 50;
}
.rtp-menu-toggle { display: none; background: transparent; border: none; font-size: 20px; cursor: pointer; color: var(--rtp-sub); }
.rtp-dash-header-left { flex: 1; }
.rtp-dash-page-title { font-family:'Syne',sans-serif; font-size: 18px; font-weight: 900; color: var(--rtp-text); margin: 0; }
.rtp-dash-header-right { display: flex; align-items: center; gap: 12px; }
.rtp-header-icon { background: transparent; border: none; font-size: 16px; cursor: pointer; position: relative; color: var(--rtp-sub); }
.rtp-header-badge {
  position: absolute; top: -6px; right: -6px; width: 16px; height: 16px;
  background: var(--rtp-danger); color: #fff; border-radius: 50%;
  font-size: 9px; font-weight: 700; display: flex; align-items: center; justify-content: center;
}
.rtp-user-chip {
  display: flex; align-items: center; gap: 8px;
  background: rgba(99,102,241,.1); border: 1px solid rgba(99,102,241,.2);
  border-radius: 100px; padding: 5px 14px 5px 5px; font-size: 13px; font-weight: 600; color: var(--rtp-text);
}
.rtp-user-avatar {
  width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(135deg,var(--rtp-indigo),var(--rtp-purple));
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 900; color: #fff;
}

/* Tabs */
.rtp-tab { display: none; padding: 28px; flex: 1; }
.rtp-tab.active { display: block; }
.rtp-tab-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 24px; }
.rtp-tab-header h3 { font-family:'Syne',sans-serif; font-size: 20px; font-weight: 800; color: var(--rtp-text); margin: 0; }

/* Welcome banner */
.rtp-welcome-banner {
  background: linear-gradient(135deg,rgba(99,102,241,.12),rgba(168,85,247,.08));
  border: 1px solid rgba(99,102,241,.25); border-radius: 16px;
  padding: 24px 28px; margin-bottom: 24px;
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
}
.rtp-welcome-banner h3 { font-family:'Syne',sans-serif; font-size: 18px; font-weight: 800; color: var(--rtp-text); margin: 0 0 4px; }
.rtp-welcome-banner p { font-size: 13px; color: var(--rtp-sub); margin: 0; }

/* Stats grid */
.rtp-stats-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 28px; }
.rtp-stat-card {
  background: var(--rtp-card); border: 1px solid rgba(99,102,241,.15);
  border-radius: 14px; padding: 22px 18px; text-align: center; transition: all .3s;
}
.rtp-stat-card:hover { border-color: rgba(99,102,241,.35); transform: translateY(-3px); }
.rtp-stat-icon { font-size: 24px; margin-bottom: 8px; }
.rtp-stat-num {
  font-family:'Syne',sans-serif; font-size: 28px; font-weight: 900;
  background: linear-gradient(135deg,var(--rtp-indigo),#a855f7);
  -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text;
  line-height: 1.1; margin-bottom: 4px;
}
.rtp-stat-lbl { font-size: 11px; color: var(--rtp-muted); text-transform: uppercase; letter-spacing: .06em; }

/* Section title */
.rtp-section-title {
  font-family:'Syne',sans-serif; font-size: 14px; font-weight: 800; color: var(--rtp-indigo);
  text-transform: uppercase; letter-spacing: .08em; margin-bottom: 14px;
  display: flex; align-items: center; gap: 10px;
}
.rtp-section-title::after { content:''; flex:1; height:1px; background:rgba(99,102,241,.12); }

/* Cards (requirements, applications etc) */
.rtp-item-card {
  background: var(--rtp-card); border: 1px solid rgba(99,102,241,.15);
  border-radius: 14px; padding: 20px 22px; margin-bottom: 10px; transition: all .3s;
}
.rtp-item-card:hover { border-color: rgba(99,102,241,.3); }
.rtp-item-card-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.rtp-item-card-title { font-family:'Syne',sans-serif; font-size: 15px; font-weight: 800; color: var(--rtp-text); }
.rtp-item-card-meta { font-size: 12px; color: var(--rtp-muted); margin-top: 3px; }
.rtp-item-card-body { font-size: 13px; color: var(--rtp-sub); line-height: 1.65; margin-bottom: 12px; }
.rtp-item-card-footer { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* Tags & badges */
.rtp-tag {
  font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 20px;
  background: rgba(99,102,241,.1); border: 1px solid rgba(99,102,241,.2); color: #a5b4fc;
}
.rtp-status-badge {
  font-size: 11px; font-weight: 700; padding: 3px 10px; border-radius: 20px; white-space: nowrap;
}
.rtp-status-pending   { background:rgba(251,191,36,.1);  border:1px solid rgba(251,191,36,.25);  color:#fbbf24; }
.rtp-status-reviewing { background:rgba(59,130,246,.1);  border:1px solid rgba(59,130,246,.25);  color:#60a5fa; }
.rtp-status-interview { background:rgba(168,85,247,.1);  border:1px solid rgba(168,85,247,.25);  color:#c084fc; }
.rtp-status-offer     { background:rgba(251,146,60,.1);  border:1px solid rgba(251,146,60,.25);  color:#fb923c; }
.rtp-status-hired     { background:rgba(74,222,128,.1);  border:1px solid rgba(74,222,128,.25);  color:#4ade80; }
.rtp-status-rejected  { background:rgba(239,68,68,.1);   border:1px solid rgba(239,68,68,.25);   color:#f87171; }
.rtp-status-active    { background:rgba(74,222,128,.1);  border:1px solid rgba(74,222,128,.2);   color:#4ade80; }
.rtp-status-closed    { background:rgba(100,116,139,.1); border:1px solid rgba(100,116,139,.2);  color:#64748b; }

/* Buttons */
.rtp-btn-primary {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 10px 20px; background: linear-gradient(135deg,var(--rtp-indigo),var(--rtp-purple)) !important;
  color: #fff !important; font-size: 13px; font-weight: 700; border: none !important;
  border-radius: 10px; cursor: pointer; transition: all .3s;
  box-shadow: 0 0 20px rgba(99,102,241,.3); text-decoration: none !important;
}
.rtp-btn-primary:hover { box-shadow: 0 0 36px rgba(99,102,241,.5) !important; transform: translateY(-1px); color:#fff !important; }
.rtp-btn-outline {
  padding: 9px 18px; background: transparent !important; color: var(--rtp-indigo) !important;
  font-size: 13px; font-weight: 600; border: 1px solid rgba(99,102,241,.35) !important;
  border-radius: 10px; cursor: pointer; transition: all .2s; text-decoration: none !important;
}
.rtp-btn-outline:hover { background: rgba(99,102,241,.1) !important; }
.rtp-btn-sm {
  padding: 6px 12px !important; font-size: 11px !important; border-radius: 8px !important;
}
.rtp-btn-danger {
  background: rgba(239,68,68,.1) !important; color: #f87171 !important;
  border: 1px solid rgba(239,68,68,.25) !important;
}

/* Status selector */
.rtp-status-select {
  background: rgba(99,102,241,.06) !important; border: 1px solid rgba(99,102,241,.2) !important;
  border-radius: 8px; padding: 5px 10px; font-size: 12px; color: var(--rtp-text);
  cursor: pointer; outline: none;
}

/* Loading */
.rtp-loading { text-align: center; padding: 40px; color: var(--rtp-muted); font-size: 14px; }
.rtp-empty   { text-align: center; padding: 60px 20px; color: var(--rtp-muted); }
.rtp-empty-icon { font-size: 48px; margin-bottom: 12px; }
.rtp-empty-text { font-size: 15px; font-weight: 600; color: var(--rtp-sub); margin-bottom: 6px; }
.rtp-empty-sub  { font-size: 13px; color: var(--rtp-muted); }

/* Form messages */
.rtp-form-msg { font-size: 13px; margin-top: 10px; padding: 10px 14px; border-radius: 8px; display: none; }
.rtp-form-msg.show { display: block; }
.rtp-form-msg.success { background:rgba(74,222,128,.1); color:#4ade80; border:1px solid rgba(74,222,128,.2); }
.rtp-form-msg.error   { background:rgba(239,68,68,.1);  color:#f87171; border:1px solid rgba(239,68,68,.2); }

/* Profile form */
.rtp-profile-form { max-width: 760px; }

/* Alerts */
.rtp-alert { display:flex; align-items:center; gap:10px; padding:14px 18px; border-radius:10px; font-size:13px; margin-bottom:20px; }
.rtp-alert-warning { background:rgba(251,191,36,.08); border:1px solid rgba(251,191,36,.2); color:#fbbf24; }

/* Availability */
.rtp-availability-badge { font-size:13px; font-weight:700; padding:8px 16px; border-radius:100px; }
.rtp-avail-yes { background:rgba(74,222,128,.1); border:1px solid rgba(74,222,128,.2); color:#4ade80; }
.rtp-avail-no  { background:rgba(100,116,139,.1); border:1px solid rgba(100,116,139,.2); color:#64748b; }

/* Modal */
.rtp-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,.7); backdrop-filter: blur(4px);
  z-index: 9999; display: none; align-items: center; justify-content: center; padding: 20px;
}
.rtp-modal-overlay.open { display: flex; }
.rtp-modal {
  background: #0d0d20; border: 1px solid rgba(99,102,241,.25); border-radius: 20px;
  padding: 28px; width: 100%; max-width: 600px; max-height: 90vh; overflow-y: auto;
}
.rtp-modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; }
.rtp-modal-header h3 { font-family:'Syne',sans-serif; font-size:18px; font-weight:800; color:var(--rtp-text); margin:0; }
.rtp-modal-close { background:transparent; border:none; font-size:18px; cursor:pointer; color:var(--rtp-muted); transition:color .2s; }
.rtp-modal-close:hover { color:var(--rtp-text); }

/* Notification items */
.rtp-notif-item {
  display:flex; gap:14px; padding:14px 16px; background:var(--rtp-card);
  border:1px solid rgba(99,102,241,.12); border-radius:12px; margin-bottom:8px; transition:all .2s;
}
.rtp-notif-item.unread { border-color:rgba(99,102,241,.3); background:rgba(99,102,241,.05); }
.rtp-notif-ico { font-size:22px; flex-shrink:0; }
.rtp-notif-title { font-size:13px; font-weight:700; color:var(--rtp-text); margin-bottom:3px; }
.rtp-notif-msg  { font-size:12px; color:var(--rtp-sub); line-height:1.5; }
.rtp-notif-time { font-size:10px; color:var(--rtp-muted); margin-top:4px; }

/* Message items */
.rtp-msg-item {
  background:var(--rtp-card); border:1px solid rgba(99,102,241,.15);
  border-radius:12px; padding:16px 18px; margin-bottom:8px; cursor:pointer; transition:all .2s;
}
.rtp-msg-item:hover { border-color:rgba(99,102,241,.3); }
.rtp-msg-item.unread { border-color:rgba(99,102,241,.3); background:rgba(99,102,241,.05); }
.rtp-msg-header { display:flex; justify-content:space-between; margin-bottom:6px; }
.rtp-msg-from  { font-size:13px; font-weight:700; color:var(--rtp-text); }
.rtp-msg-time  { font-size:11px; color:var(--rtp-muted); }
.rtp-msg-subj  { font-size:12px; font-weight:600; color:var(--rtp-sub); margin-bottom:4px; }
.rtp-msg-preview { font-size:12px; color:var(--rtp-muted); }

/* Responsive */
@media (max-width: 768px) {
  .rtp-sidebar { position:fixed; left:-260px; top:0; height:100vh; z-index:200; transition:left .3s; }
  .rtp-sidebar.open { left:0; }
  .rtp-menu-toggle { display:block; }
  .rtp-stats-grid { grid-template-columns:1fr 1fr; }
  .rtp-form-grid { grid-template-columns:1fr; }
  .rtp-tab { padding:16px; }
  .rtp-welcome-banner { flex-direction:column; }
  .rtp-auth-box { padding:24px 20px; }
  .rtp-type-toggle { flex-direction:column; }
}
@media (max-width:480px) {
  .rtp-stats-grid { grid-template-columns:1fr; }
}

/* ── ELEMENTOR COMPATIBILITY ── */
/* Remove Elementor padding on portal pages */
.rtp-auth-wrap,
.rtp-dash {
  margin-left:  calc(-1 * var(--e-column-gap, 0px)) !important;
  margin-right: calc(-1 * var(--e-column-gap, 0px)) !important;
}
.elementor-section-wrap > .elementor-section:has(.rtp-auth-wrap),
.elementor-section-wrap > .elementor-section:has(.rtp-dash) {
  padding: 0 !important;
  margin:  0 !important;
}
.elementor-widget-container:has(.rtp-auth-wrap),
.elementor-widget-container:has(.rtp-dash) {
  padding: 0 !important;
  margin:  0 !important;
}
/* Fix Elementor default input styles overriding ours */
.rtp-auth-wrap .elementor-field-group input,
.rtp-dash .elementor-field-group input {
  background: rgba(99,102,241,.06) !important;
  border: 1px solid rgba(99,102,241,.2) !important;
}

/* ── ASTRA + ASTRA CHILD THEME COMPATIBILITY ── */

/* Full width layout on portal pages */
body.rt-portal-page .ast-container,
body.rt-portal-page #content,
body.rt-portal-page #primary,
body.rt-portal-page #main,
body.rt-portal-page .site-content,
body.rt-portal-page .ast-primary-content-area { max-width:100% !important; width:100% !important; padding:0 !important; margin:0 !important; float:none !important; }

/* Remove all entry padding */
body.rt-portal-page .entry-content,
body.rt-portal-page .post-content,
body.rt-portal-page .ast-article-single,
body.rt-portal-page article { padding:0 !important; margin:0 !important; }

/* Hide page title, breadcrumbs, featured image */
body.rt-portal-page .entry-header,
body.rt-portal-page .ast-page-title-wrap,
body.rt-portal-page .ast-breadcrumbs-wrapper,
body.rt-portal-page .rank-math-breadcrumb,
body.rt-portal-page .ast-post-thumbnail-wrap,
body.rt-portal-page .ast-above-post-title { display:none !important; }

/* Hide sidebar */
body.rt-portal-page #secondary,
body.rt-portal-page .widget-area,
body.rt-portal-page .ast-sidebar-wrap { display:none !important; }

/* Fix Astra row/column layout */
body.rt-portal-page .ast-row { max-width:100% !important; }
body.rt-portal-page .ast-page-builder-template .ast-container { padding:0 !important; }

/* Astra child theme — same rules */
body.rt-portal-page.astra-child { padding:0 !important; }

/* ── PHASE 1: CONVERSATION THREAD ── */
.rtp-msg-layout {
  display: flex;
  gap: 0;
  height: 520px;
  background: var(--rtp-card);
  border: 1px solid rgba(99,102,241,.15);
  border-radius: 16px;
  overflow: hidden;
}

/* Conversation list */
.rtp-conv-list {
  width: 280px;
  flex-shrink: 0;
  border-right: 1px solid rgba(99,102,241,.1);
  overflow-y: auto;
  background: rgba(6,6,15,.5);
}
.rtp-conv-item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  cursor: pointer;
  border-bottom: 1px solid rgba(99,102,241,.06);
  transition: background .2s;
  position: relative;
}
.rtp-conv-item:hover { background: rgba(99,102,241,.06); }
.rtp-conv-item.active { background: rgba(99,102,241,.1); border-left: 3px solid #6366f1; }
.rtp-conv-item.unread { background: rgba(99,102,241,.05); }
.rtp-conv-avatar {
  width: 38px; height: 38px; border-radius: 10px;
  background: linear-gradient(135deg,#6366f1,#8b5cf6);
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 900; color: #fff; flex-shrink: 0;
}
.rtp-conv-info { flex: 1; min-width: 0; }
.rtp-conv-name { font-size: 13px; font-weight: 700; color: #f1f5f9; margin-bottom: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rtp-conv-preview { font-size: 11px; color: #64748b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rtp-conv-badge {
  background: #6366f1; color: #fff; font-size: 10px; font-weight: 700;
  width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.rtp-conv-time { font-size: 10px; color: #475569; position: absolute; top: 10px; right: 12px; }

/* Thread area */
.rtp-thread-area {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.rtp-thread-empty {
  flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.rtp-thread-header {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 18px; border-bottom: 1px solid rgba(99,102,241,.1);
  background: rgba(6,6,15,.3);
}
.rtp-thread-messages {
  flex: 1; overflow-y: auto; padding: 16px;
  display: flex; flex-direction: column; gap: 10px;
}

/* Message bubbles */
.rtp-msg-bubble { display: flex; flex-direction: column; max-width: 75%; }
.rtp-msg-bubble.mine { align-self: flex-end; align-items: flex-end; }
.rtp-msg-bubble.theirs { align-self: flex-start; align-items: flex-start; }
.rtp-bubble-text {
  padding: 10px 14px; border-radius: 14px; font-size: 13px; line-height: 1.55; word-break: break-word;
}
.rtp-msg-bubble.mine .rtp-bubble-text {
  background: linear-gradient(135deg,#6366f1,#8b5cf6); color: #fff; border-bottom-right-radius: 4px;
}
.rtp-msg-bubble.theirs .rtp-bubble-text {
  background: rgba(10,10,28,.85); border: 1px solid rgba(99,102,241,.15); color: #e2e8f0; border-bottom-left-radius: 4px;
}
.rtp-bubble-time { font-size: 10px; color: #475569; margin-top: 3px; }

/* Reply box */
.rtp-reply-box {
  padding: 12px 16px; border-top: 1px solid rgba(99,102,241,.1); background: rgba(6,6,15,.3);
}
.rtp-reply-inner { display: flex; gap: 10px; align-items: flex-end; }
.rtp-reply-input {
  flex: 1; background: rgba(99,102,241,.06) !important; border: 1px solid rgba(99,102,241,.2) !important;
  border-radius: 10px !important; padding: 10px 14px !important; font-size: 13px !important;
  color: #f1f5f9 !important; resize: none !important; outline: none !important; font-family: inherit !important;
}
.rtp-reply-input:focus { border-color: rgba(99,102,241,.5) !important; }
.rtp-reply-btn { flex-shrink: 0; padding: 10px 18px !important; }

/* ── PHASE 1: PROFILE PHOTO ── */
.rtp-photo-wrap {
  display: flex; align-items: center; gap: 16px; margin-bottom: 20px;
  padding: 16px; background: rgba(99,102,241,.05); border: 1px solid rgba(99,102,241,.12); border-radius: 12px;
}
.rtp-photo-preview {
  width: 64px; height: 64px; border-radius: 14px; object-fit: cover;
  border: 2px solid rgba(99,102,241,.3); background: linear-gradient(135deg,#6366f1,#8b5cf6);
  display: flex; align-items: center; justify-content: center; font-size: 24px; color: #fff; font-weight: 900;
}
.rtp-photo-upload-btn {
  padding: 8px 16px; background: transparent; color: #6366f1; border: 1px solid rgba(99,102,241,.35);
  border-radius: 8px; font-size: 12px; font-weight: 600; cursor: pointer; transition: all .2s;
}
.rtp-photo-upload-btn:hover { background: rgba(99,102,241,.1); }

/* ── PHASE 1: CHANGE PASSWORD ── */
.rtp-pass-section {
  background: rgba(10,10,28,.6); border: 1px solid rgba(99,102,241,.15); border-radius: 14px;
  padding: 22px; margin-top: 20px;
}
.rtp-pass-section h4 {
  font-family: 'Syne',sans-serif; font-size: 15px; font-weight: 800; color: #f8fafc;
  margin: 0 0 16px; padding-bottom: 10px; border-bottom: 1px solid rgba(99,102,241,.1);
}
.rtp-pass-grid { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }

/* Mobile responsive for messages */
@media(max-width:768px) {
  .rtp-msg-layout { flex-direction: column; height: auto; }
  .rtp-conv-list { width: 100%; max-height: 200px; border-right: none; border-bottom: 1px solid rgba(99,102,241,.1); }
  .rtp-thread-area { min-height: 320px; }
  .rtp-thread-messages { max-height: 220px; }
  .rtp-pass-grid { grid-template-columns: 1fr; }
}
