/* ═══════════════════════════════════════════
   DESIGN TOKENS — HamHub Morocco
   Couleurs: drapeau marocain + radio
═══════════════════════════════════════════ */
:root {
  --bg-deep:     #060d06;
  --bg-dark:     #0a1a0a;
  --bg-card:     #0f2210;
  --bg-card2:    #132814;
  --bg-elevated: #1a3a1c;
  --accent:      #c8a84b;   /* or marocain */
  --accent2:     #e63946;   /* rouge marocain */
  --accent3:     #2d8a4e;   /* vert marocain */
  --signal:      #00ff8c;   /* signal radio */
  --text-primary:#f0ede4;
  --text-secondary:#8aaa7a;
  --text-muted:  #3d5a3e;
  --border:      rgba(200,168,75,0.12);
  --border-strong:rgba(200,168,75,0.30);
  --border-thick: rgba(200,168,75,0.96);
  --danger:      #e63946;
  --success:     #2d8a4e;
  --gold:        #c8a84b;
  --bg-btnsec:   #2d8a4e;
  --text-title:  #fbc907;
  --radius:      12px;
  --radius-sm:   8px;
  --nav-h:       64px;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html, body {
  height: 100%;
  background: var(--bg-deep);
  color: var(--text-primary);
  font-family: 'Barlow', sans-serif;
  overflow: hidden;
  user-select: none;
}

/* ── APP SHELL ── */
#app {
  height: 100dvh;
  display: flex;
  flex-direction: column;
  max-width: 480px;
  margin: 0 auto;
  position: relative;
  overflow: hidden;
}

/* ── AUTH SCREEN ── */
#auth-screen {
  position: absolute;
  inset: 0;
  z-index: 1000;
  background: var(--bg-deep);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
}

.auth-logo {
  width: 110px;
  height: 110px;
  border-radius: 50%;
  border: 3px solid var(--gold);
  margin-bottom: 16px;
  object-fit: cover;
}

.auth-app-name {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 32px;
  font-weight: 800;
  letter-spacing: 2px;
  color: var(--text-primary);
}

.auth-app-name span {
  color: var(--gold);
}

.auth-tagline {
  font-size: 13px;
  color: var(--text-secondary);
  margin-bottom: 32px;
  text-align: center;
}

.auth-tabs {
  display: flex;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 4px;
  width: 100%;
  margin-bottom: 20px;
  gap: 4px;
}

.auth-tab {
  flex: 1;
  text-align: center;
  padding: 9px;
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-weight: 600;
  color: var(--text-secondary);
  cursor: pointer;
  transition: all 0.2s;
}

.auth-tab.active {
  background: var(--accent);
  color: var(--bg-deep);
}

.auth-form {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.auth-form.hidden {
  display: none;
}

.inp-group {
  position: relative;
}

.inp-group i {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-muted);
  font-size: 14px;
}

.auth-input {
  width: 100%;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  padding: 12px 12px 12px 38px;
  font-family: 'Barlow', sans-serif;
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s;
}

.auth-input:focus {
  border-color: var(--gold);
}

.auth-input::placeholder {
  color: var(--text-muted);
}

.auth-btn {
  width: 100%;
  background: var(--gold);
  color: var(--bg-deep);
  border: none;
  border-radius: var(--radius-sm);
  padding: 14px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 1px;
  cursor: pointer;
  transition: opacity 0.15s;
  margin-top: 4px;
}

.auth-btn:active {
  opacity: 0.8;
}

.auth-btn.loading {
  opacity: 0.6;
  pointer-events: none;
}

.auth-error {
  font-size: 15px;
  color: var(--danger);
  text-align: center;
  min-height: 16px;
}

.auth-divider {
  text-align: center;
  font-size: 11px;
  color: var(--text-muted);
  margin: 4px 0;
}

/* ── TOP BAR ── */
.topbar {
  background: var(--bg-dark);
  border-bottom: 1px solid var(--border);
  padding: 10px 14px 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  position: relative;
  z-index: 10;
}

.topbar-logo {
  display: flex;
  align-items: center;
  gap: 9px;
  cursor: pointer;
}

.logo-img {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  border: 2px solid var(--gold);
  object-fit: cover;
}

.logo-text {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: 1.5px;
  color: var(--text-primary);
}

.logo-text span {
  color: var(--gold);
}

.topbar-right {
  display: flex;
  gap: 7px;
  align-items: center;
}

.icon-btn {
  width: 34px;
  height: 34px;
  border-radius: var(--radius-sm);
  border: 1px solid var(--border);
  background: var(--bg-card);
  color: var(--text-secondary);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 14px;
  transition: all 0.15s;
  position: relative;
}

.icon-btn:active {
  transform: scale(0.92);
}

.notif-dot {
  position: absolute;
  top: 6px;
  right: 6px;
  width: 7px;
  height: 7px;
  background: var(--accent2);
  border-radius: 50%;
  border: 1.5px solid var(--bg-dark);
}

.admin-badge {
  background: var(--accent2);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 3px 7px;
  border-radius: 4px;
  letter-spacing: 0.5px;
  cursor: pointer;
}

/* ── STATUS STRIP ── */
.tilte-strip {
  background: var(--bg-card);
  padding: 1px 14px;
  text-align: center;
  scrollbar-width: none;
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  display: flex;
  justify-content: center;
  color: var(--text-title);
}

.live-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--signal);
  animation: pulse 2s infinite;
  margin-block: auto;
  margin-right: 5px;
}

.status-strip {
  background: var(--bg-card);
  border-bottom: 1px solid var(--border);
  padding: 5px 14px;
  display: flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
  overflow-x: auto;
  scrollbar-width: none;
}

.status-strip::-webkit-scrollbar {
  display: none;
}

.status-item {
  display: flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  color: var(--text-secondary);
}



@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(0.7); }
}

.freq-tag {
  font-family: 'Space Mono', monospace;
  font-size: 9px;
  color: var(--gold);
  background: rgba(200,168,75,0.1);
  border: 1px solid rgba(200,168,75,0.25);
  border-radius: 4px;
  padding: 1px 5px;
}

/* ── MAIN ── */
.main {
  flex: 1;
  overflow-y: auto;
  overscroll-behavior-y: contain; 
  touch-action: pan-y;
  scrollbar-width: none;
}

.main::-webkit-scrollbar {
  display: none;
}

.page {
  display: none;
  padding-bottom: 80px;
}

.page.active {
  display: block;
}

/* ── SECTION HEADER ── */
.section-header {
  padding: 14px 14px 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.section-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: 0.5px;
  color: var(--text-primary);
  text-transform: uppercase;
}

.section-link {
  font-size: 12px;
  color: var(--gold);
  cursor: pointer;
  font-weight: 500;
}

/* ── STATS ROW ── */
.stats-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 10px 14px;
}

.stat-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 11px;
  text-align: center;
}

.stat-num {
  font-family: 'Space Mono', monospace;
  font-size: 20px;
  font-weight: 700;
  color: var(--gold);
  line-height: 1;
}

.stat-label {
  font-size: 9px;
  color: var(--text-secondary);
  margin-top: 3px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* ── H-SCROLL ── */
.h-scroll {
  display: flex;
  gap: 9px;
  padding: 0 14px 10px;
  overflow-x: auto;
  scrollbar-width: none;
}

.h-scroll::-webkit-scrollbar {
  display: none;
}

/* ── OPERATOR CARDS ── */
.op-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 11px;
  min-width: 120px;
  cursor: pointer;
  transition: border-color 0.15s;
}

.op-card:active {
  border-color: var(--gold);
}

.op-avatar {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  margin: 0 auto 7px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}

.op-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.op-callsign {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-primary);
  text-align: center;
}

.op-name {
  font-size: 10px;
  color: var(--text-secondary);
  text-align: center;
  margin-top: 2px;
}

.op-badge {
  font-size: 9px;
  background: rgba(200,168,75,0.1);
  color: var(--gold);
  border-radius: 4px;
  padding: 2px 5px;
  text-align: center;
  margin-top: 4px;
}

/* ── FEED ── */
.feed-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin: 0 14px 10px;
  overflow: hidden;
  cursor: pointer;
}

.feed-card-header {
  padding: 11px 13px 7px;
  display: flex;
  align-items: center;
  gap: 9px;
}

.feed-avatar {
  width: 34px;
  height: 34px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  color: #fff;
}

.feed-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.feed-meta {
  flex: 1;
  min-width: 0;
}

.feed-callsign {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--gold);
}

.feed-name {
  font-size: 11px;
  color: var(--text-secondary);
}

.feed-time {
  font-size: 10px;
  color: var(--text-secondary);
}

.feed-body {
  padding: 0 13px 11px;
  font-size: 13px;
  line-height: 1.55;
  color: var(--text-primary);
}

.feed-tag {
  display: inline-block;
  font-family: 'Space Mono', monospace;
  font-size: 8px;
  background: rgba(200,168,75,0.1);
  color: var(--gold);
  border: 1px solid rgba(200,168,75,0.22);
  border-radius: 4px;
  padding: 2px 5px;
  margin-right: 3px;
  margin-bottom: 4px;
}

.feed-tag.red {
  background: rgba(230,57,70,0.1);
  color: var(--accent2);
  border-color: rgba(230,57,70,0.22);
}

.feed-tag.green {
  background: rgba(45,138,78,0.1);
  color: var(--signal);
  border-color: rgba(45,138,78,0.2);
}

.feed-tag.dmr {
  background: rgb(28 59 221 / 29%);
  color: #6a6cdb;
  border-color: rgb(199 208 225 / 22%);
}

.feed-actions {
  border-top: 1px solid var(--border);
  display: flex;
}

.feed-action {
  flex: 1;
  padding: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  font-size: 11px;
  color: var(--text-secondary);
  cursor: pointer;
  transition: color 0.15s;
}

.feed-action:active {
  color: var(--gold);
}

.feed-action + .feed-action {
  border-left: 1px solid var(--border);
}

.feed-action.disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.feed-action.liked {
  color: var(--gold);
}

.feed-action.liked i {
  color: var(--gold);
}

.comment-icon-action {
  position: relative;
}

.comment-icon-action.has-new {
  color: var(--gold);
}

.comment-icon-action.has-new i {
  color: var(--gold);
}

.comment-icon-action.has-new::after {
  content: '';
  position: absolute;
  top: 4px;
  right: calc(50% - 16px);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gold);
  box-shadow: 0 0 0 2px var(--bg-card);
}

.comments-section {
  border-top: 1px solid var(--border);
  padding: 10px 13px;
}

.comments-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 220px;
  overflow-y: auto;
  margin-bottom: 8px;
}

.comment-row {
  display: flex;
  gap: 8px;
  align-items: flex-start;
}

.comment-row.unread .comment-text {
  color: var(--gold);
  transition: color 0.6s ease;
}

.comment-row.unread .comment-body {
  border: 1px solid rgba(200,168,75,0.35);
  transition: border-color 0.6s ease;
}

.comment-row .comment-text {
  transition: color 0.6s ease;
}

.comment-row .comment-body {
  transition: border-color 0.6s ease;
}

.comment-body {
  flex: 1;
  background: var(--bg-elevated);
  border-radius: 10px;
  padding: 6px 10px;
  min-width: 0;
}

.comment-head {
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.comment-callsign {
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  font-weight: 700;
  color: var(--gold);
}

.comment-time {
  font-size: 9px;
  color: var(--text-muted);
  flex-shrink: 0;
}

.comment-text {
  font-size: 12px;
  color: var(--text-primary);
  margin-top: 2px;
  word-break: break-word;
}

.comment-del {
  font-size: 11px;
  color: var(--text-muted);
  cursor: pointer;
  padding: 4px;
  flex-shrink: 0;
}

.comment-input-row {
  display: flex;
  gap: 8px;
}

.comment-input-row .form-input {
  flex: 1;
}

.comment-send-btn {
  background: var(--gold);
  color: var(--bg-deep);
  border: none;
  border-radius: var(--radius-sm);
  padding: 0 14px;
  font-weight: 700;
  cursor: pointer;
  flex-shrink: 0;
}

/* ── QSO LOG ── */
.qso-row {
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 9px 14px;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
}

.qso-mode {
  font-family: 'Space Mono', monospace;
  font-size: 9px;
  font-weight: 700;
  padding: 3px 6px;
  border-radius: 5px;
  flex-shrink: 0;
  min-width: 36px;
  text-align: center;
}

.mode-ssb {
  background: rgba(200,168,75,0.15);
  color: var(--gold);
}

.mode-cw {
  background: rgba(230,57,70,0.15);
  color: var(--accent2);
}

.mode-ft8 {
  background: rgba(45,138,78,0.15);
  color: var(--signal);
}

.mode-am {
  background: rgba(138,170,122,0.15);
  color: var(--text-secondary);
}

.qso-info {
  flex: 1;
  min-width: 0;
}

.qso-call {
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  font-weight: 700;
  color: var(--text-primary);
}

.qso-detail {
  font-size: 10px;
  color: var(--text-secondary);
}

.qso-right {
  text-align: right;
  flex-shrink: 0;
}

.qso-band {
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  color: var(--gold);
  font-weight: 700;
}

.qso-time {
  font-size: 9px;
  color: var(--text-muted);
}

.rst-badge {
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  color: var(--signal);
}

/* ── REPEATERS ── */
.repeater-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  margin: 0 14px 10px;
  padding: 13px;
}

.rep-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 9px;
}

.rep-name {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 16px;
  font-weight: 700;
  color: var(--text-primary);
}

.rep-city {
  font-size: 11px;
  color: var(--text-secondary);
}

.online-badge {
  font-size: 9px;
  padding: 3px 7px;
  border-radius: 5px;
  font-weight: 700;
}

.online {
  background: rgba(45,138,78,0.15);
  color: var(--signal);
}

.offline {
  background: rgba(230,57,70,0.15);
  color: var(--danger);
}

.paused {
  background: rgba(200, 168, 75, .15);
  color: var(--gold);
}

.rep-freqs {
  display: flex;
  gap: 14px;
}

.rep-freq-label {
  font-size: 9px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.rep-freq-val {
  font-family: 'Space Mono', monospace;
  font-size: 14px;
  font-weight: 700;
  color: var(--gold);
}

.rep-freq-unit {
  font-size: 9px;
  color: var(--text-secondary);
  margin-left: 2px;
}

.rep-tags {
  margin-top: 9px;
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

/* ── MARKET ── */
.market-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  padding: 0 14px 12px;
}

.market-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  cursor: pointer;
  transition: border-color 0.15s;
}

.market-card:active {
  border-color: var(--gold);
}

.market-img {
  height: 110px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 38px;
  background: var(--bg-card2);
}

.market-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.market-body {
  padding: 9px;
}

.market-title {
  font-size: 12px;
  font-weight: 600;
  color: var(--text-primary);
  line-height: 1.3;
}

.market-price {
  font-family: 'Space Mono', monospace;
  font-size: 13px;
  color: var(--gold);
  font-weight: 700;
  margin-top: 3px;
}

.market-seller {
  font-size: 9px;
  color: var(--text-secondary);
  margin-top: 2px;
}

.market-condition {
  display: inline-block;
  font-size: 8px;
  padding: 2px 5px;
  border-radius: 4px;
  margin-top: 3px;
}

.cond-bon {
  background: rgba(45,138,78,0.12);
  color: var(--signal);
}

.cond-excel {
  background: rgba(200,168,75,0.12);
  color: var(--gold);
}

.cond-neuf {
  background: rgba(230,57,70,0.1);
  color: var(--accent2);
}

.market-status {
  font-size: 9px;
  padding: 2px 6px;
  border-radius: 4px;
  margin-left: 4px;
}

.status-pending {
  background: rgba(200,168,75,0.15);
  color: var(--gold);
}

.status-approved {
  background: rgba(45,138,78,0.15);
  color: var(--signal);
}

.status-rejected {
  background: rgba(230,57,70,0.15);
  color: var(--danger);
}


/* ── CHAT ── */
.chat-item {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 11px 14px;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
}

.chat-item:active {
  background: var(--bg-card);
}

.chat-av {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Mono', monospace;
  font-size: 11px;
  font-weight: 700;
  color: #fff;
}

.chat-av img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
}

.chat-info {
  flex: 1;
  min-width: 0;
}

.chat-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}

.chat-preview {
  font-size: 11px;
  color: var(--text-secondary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.chat-meta {
  text-align: right;
  flex-shrink: 0;
}

.chat-time {
  font-size: 10px;
  color: var(--text-muted);
}

.chat-unread {
  min-width: 17px;
  height: 17px;
  border-radius: 9px;
  background: var(--gold);
  color: var(--bg-deep);
  font-size: 9px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 3px;
  margin-left: auto;
  padding: 0 4px;
}

/* ── PROFILE ── */
.profile-hero {
  background: linear-gradient(180deg, rgba(200,168,75,0.12) 0%, transparent 100%);
  padding: 22px 14px 14px;
  text-align: center;
}

.profile-avatar-wrap {
  position: relative;
  width: 80px;
  height: 80px;
  margin: 0 auto 10px;
}

.profile-avatar {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  border: 3px solid var(--gold);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Space Mono', monospace;
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  overflow: hidden;
}

.profile-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.profile-callsign {
  font-family: 'Space Mono', monospace;
  font-size: 24px;
  font-weight: 700;
  color: var(--gold);
  letter-spacing: 2px;
}

.profile-name {
  font-size: 15px;
  color: var(--text-secondary);
  margin-top: 3px;
}

.profile-location {
  font-size: 12px;
  color: var(--text-muted);
  margin-top: 3px;
}

.profile-license {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  background: rgba(200,168,75,0.1);
  border: 1px solid rgba(200,168,75,0.3);
  color: var(--gold);
  border-radius: 6px;
  padding: 4px 10px;
  font-size: 11px;
  font-weight: 600;
  margin-top: 9px;
}

.profile-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  margin-top: 14px;
}

.p-stat {
  background: var(--bg-card);
  padding: 9px 4px;
  text-align: center;
}

.p-stat-num {
  font-family: 'Space Mono', monospace;
  font-size: 15px;
  font-weight: 700;
  color: var(--text-primary);
}

.p-stat-lbl {
  font-size: 8px;
  color: var(--text-muted);
  text-transform: uppercase;
  letter-spacing: 0.3px;
  margin-top: 2px;
}

.rig-card {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 11px 13px;
  display: flex;
  align-items: center;
  gap: 11px;
}

.settings-row {
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 12px 13px;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
}

.settings-row:last-child {
  border-bottom: none;
}

.settings-row:active {
  background: var(--bg-card2);
}

/* ── BAND PILLS ── */
.band-pills {
  display: flex;
  gap: 5px;
  flex-wrap: wrap;
}

.band-pill {
  padding: 5px 9px;
  border-radius: 6px;
  border: 1px solid var(--border);
  font-family: 'Space Mono', monospace;
  font-size: 10px;
  color: var(--text-secondary);
  cursor: pointer;
  background: var(--bg-elevated);
}

.band-pill.active {
  border-color: var(--gold);
  color: var(--gold);
  background: rgba(200,168,75,0.1);
}

/* ── BOTTOM NAV ── */
.bottom-nav {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--bg-dark);
  border-top: 1px solid var(--border);
  display: flex;
  padding-bottom: env(safe-area-inset-bottom, 0);
  z-index: 10;
}

.nav-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 7px 4px 9px;
  cursor: pointer;
  transition: color 0.15s;
  color: var(--text-muted);
  position: relative;
}

.nav-item.active {
  color: var(--gold);
}

.nav-item i {
  font-size: 19px;
}

.nav-label {
  font-size: 8px;
  margin-top: 2px;
  letter-spacing: 0.3px;
  text-transform: uppercase;
  font-weight: 600;
}

.nav-item.active::before {
  content: '';
  position: absolute;
  top: 0;
  left: 25%;
  right: 25%;
  height: 2px;
  background: var(--gold);
  border-radius: 0 0 2px 2px;
}

.nav-dot {
  position: absolute;
  top: 5px;
  right: calc(50% - 13px);
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent2);
}

/* ── FAB ── */
.fab {
  position: absolute;
  bottom: 76px;
  right: 16px;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--gold);
  color: var(--bg-deep);
  display: none;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  cursor: pointer;
  box-shadow: 0 4px 18px rgba(200,168,75,0.4);
  z-index: 5;
  transition: transform 0.15s;
}

.fab:active {
  transform: scale(0.92);
}

.fab.show {
  display: flex;
}

/* ── MODALS ── */
.modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(6,13,6,0.92);
  z-index: 1100;
  display: flex;
  align-items: flex-end;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s;
}

.modal-overlay.open {
  opacity: 1;
  pointer-events: all;
}

.modal-sheet {
  background: var(--bg-card);
  border: 1px solid var(--border-strong);
  border-radius: 20px 20px 0 0;
  padding: 18px 18px 36px;
  width: 100%;
  transform: translateY(100%);
  transition: transform 0.3s cubic-bezier(0.34, 1.2, 0.64, 1);
  max-height: 90vh;
  overflow-y: auto;
}

.modal-overlay.open .modal-sheet {
  transform: translateY(0);
}

.modal-handle {
  width: 34px;
  height: 4px;
  background: var(--text-muted);
  border-radius: 2px;
  margin: 0 auto 18px;
}

.modal-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 19px;
  font-weight: 700;
  color: var(--text-primary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 14px;
}

.form-group {
  margin-bottom: 12px;
}

.form-label {
  font-size: 9px;
  color: var(--text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
  display: block;
}

.form-input {
  width: 100%;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  padding: 10px 11px;
  font-family: 'Space Mono', monospace;
  font-size: 12px;
  outline: none;
  transition: border-color 0.2s;
}

.form-input:focus {
  border-color: var(--gold);
}

.form-select {
  width: 100%;
  background: var(--bg-elevated);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  color: var(--text-primary);
  padding: 10px 11px;
  font-family: 'Barlow', sans-serif;
  font-size: 13px;
  outline: none;
  appearance: none;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
}

.btn-primary {
  width: 100%;
  background: var(--gold);
  color: var(--bg-deep);
  border: none;
  border-radius: var(--radius-sm);
  padding: 13px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 1px;
  cursor: pointer;
  transition: opacity 0.15s;
}

.btn-primary:active {
  opacity: 0.8;
}

.btn-danger {
  width: 100%;
  background: var(--danger);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  padding: 11px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  margin-top: 7px;
}

.btn-secondary {
  width: 100%;
  background: var(--bg-btnsec);
  color: var(--text-primary);
  border: 1px solid var(--border-thick);
  border-radius: var(--radius-sm);
  padding: 11px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  margin-top: 7px;
}

.btn-close {
  width: 100%;
  background: var(--bg-btnsec);
  color: var(--text-primary);
  border: 1px solid var(--border-thick);
  border-radius: var(--radius-sm);
  padding: 11px;
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
 }

/* ── ADMIN PANEL ── */
.admin-section {
  padding: 14px;
}

.admin-section-title {
  font-family: 'Barlow Condensed', sans-serif;
  font-size: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  color: var(--accent2);
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 7px;
}

.admin-stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
  margin-bottom: 14px;
}

.admin-stat {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px;
  text-align: center;
}

.admin-stat-num {
  font-family: 'Space Mono', monospace;
  font-size: 24px;
  font-weight: 700;
  color: var(--gold);
}

.admin-stat-lbl {
  font-size: 10px;
  color: var(--text-secondary);
  margin-top: 3px;
}

.admin-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border-bottom: 1px solid var(--border);
}

.admin-row:last-child {
  border-bottom: none;
}

.admin-info {
  flex: 1;
  min-width: 0;
}

.admin-name {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}

.admin-sub {
  font-size: 10px;
  color: var(--text-secondary);
}

.admin-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.a-btn {
  font-size: 10px;
  padding: 5px 9px;
  border-radius: 5px;
  border: none;
  cursor: pointer;
  font-weight: 700;
  font-family: 'Barlow Condensed', sans-serif;
  letter-spacing: 0.3px;
}

.a-btn.approve {
  background: rgba(45,138,78,0.2);
  color: var(--signal);
}

.a-btn.reject {
  background: rgba(230,57,70,0.2);
  color: var(--danger);
}

.a-btn.delete {
  background: rgba(230,57,70,0.15);
  color: var(--danger);
}

.a-btn.promote {
  background: rgba(200,168,75,0.15);
  color: var(--gold);
}

.role-badge {
  font-size: 9px;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: 700;
}

.role-admin {
  background: rgba(230,57,70,0.2);
  color: var(--accent2);
}

.role-user {
  background: rgba(200,168,75,0.1);
  color: var(--gold);
}

.admin-tab-bar {
  display: flex;
  border-bottom: 1px solid var(--border);
  background: var(--bg-dark);
  position: sticky;
  top: 0;
  z-index: 5;
}

.admin-tab {
  flex: 1;
  text-align: center;
  padding: 11px 4px;
  font-size: 11px;
  font-weight: 700;
  color: var(--text-muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all 0.2s;
  font-family: 'Barlow Condensed', sans-serif;
  letter-spacing: 0.5px;
  text-transform: uppercase;
}

.admin-tab.active {
  color: var(--accent2);
  border-bottom-color: var(--accent2);
}

/* ── WELCOME BANNER ── */
.welcome-banner {
  background: linear-gradient(135deg, rgba(45,138,78,0.15), rgba(200,168,75,0.08));
  border: 1px solid rgba(200,168,75,0.18);
  border-radius: var(--radius);
  margin: 10px 14px;
  padding: 13px;
  display: flex;
  align-items: center;
  gap: 11px;
}

.welcome-icon {
  font-size: 30px;
  flex-shrink: 0;
}

.welcome-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-primary);
}

.call-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--text-title);
  margin: 5px 0;
}

.welcome-sub {
  font-size: 11px;
  color: var(--text-secondary);
  margin-top: 2px;
}

/* ── TOAST ── */
.toast {
  position: absolute;
  bottom: 85px;
  left: 50%;
  transform: translateX(-50%) translateY(20px);
  background: var(--bg-elevated);
  border: 1px solid var(--gold);
  border-radius: 22px;
  padding: 9px 16px;
  font-size: 12px;
  color: var(--gold);
  font-weight: 600;
  white-space: nowrap;
  z-index: 1200;
  opacity: 0;
  transition: all 0.3s;
  pointer-events: none;
}

.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* ── DIVIDER ── */
.divider {
  height: 1px;
  background: var(--border);
  margin: 4px 0;
}

/* ── TABS (DX/Rep) ── */
.tab-bar {
  display: flex;
  border-bottom: 1px solid var(--border);
}

.tab-item {
  flex: 1;
  text-align: center;
  padding: 11px;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-muted);
  cursor: pointer;
  border-bottom: 2px solid transparent;
}

.tab-item.active {
  color: var(--gold);
  border-bottom-color: var(--gold);
}

/* ── EMPTY STATES ── */
.empty-state {
  text-align: center;
  padding: 32px 20px;
}

.empty-icon {
  font-size: 36px;
  margin-bottom: 10px;
}

.empty-title {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-secondary);
}

.empty-sub {
  font-size: 11px;
  color: var(--text-muted);
  margin-top: 5px;
}

.empty-btn {
  margin-top: 14px;
  background: var(--gold);
  color: var(--bg-deep);
  border-radius: var(--radius-sm);
  padding: 9px 18px;
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
}
/* ═══════════════════════════════════════════
   PAGE-SPECIFIC — index.html
   (sélecteur pays, datetime strip, notifications,
   chat, carnet QSO, marché + carousel photos)
   Anciennement en <style> inline dans index.html
═══════════════════════════════════════════ */

.country-selector {
	position: relative;
}
.country-list {
	max-height: 200px;
	overflow-y: auto;
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	background: var(--bg-card);
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	z-index: 100;
}
.country-option {
	padding: 8px 12px;
	cursor: pointer;
	font-size: 13px;
	border-bottom: 1px solid var(--border);
}
.country-option:hover {
	background: var(--bg-elevated);
}
.timezone-badge {
	display: inline-block;
	background: rgba(200,168,75,0.15);
	color: var(--gold);
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 11px;
	margin-top: 5px;
}
.forgot-link {
	text-align: right;
	margin-top: -8px;
	margin-bottom: 12px;
}
.forgot-link a {
	font-size: 11px;
	color: var(--gold);
	text-decoration: none;
}
/* ── DATETIME STRIP ── */
.datetime-strip {
	background: var(--bg-deep);
	border-bottom: 1px solid var(--border);
	padding: 4px 14px;
	display: flex;
  justify-content: center;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
	overflow-x: auto;
	scrollbar-width: none;
	white-space: nowrap;
}
.datetime-strip::-webkit-scrollbar {
	display: none;
}
.dt-item {
	font-size: 10px;
	color: var(--text-secondary);
	display: flex;
	align-items: center;
	gap: 4px;
}
.dt-sep {
	color: var(--text-muted);
	font-size: 10px;
	flex-shrink: 0;
}
/* ── NOTIFICATIONS ── */
.nav-dot.show {
	display: block;
}
.nav-dot {
	display: none;
}
.notif-dot.show {
	display: block;
}
.notif-dot {
	display: none;
}
.notif-toast-stack {
	position: absolute;
	top: 8px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 998;
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: center;
	pointer-events: none;
}
.notif-toast {
	background: var(--bg-elevated);
	border: 1px solid var(--gold);
	border-radius: 10px;
	padding: 8px 13px;
	font-size: 12px;
	color: var(--text-primary);
	display: flex;
	align-items: center;
	gap: 7px;
	box-shadow: 0 4px 14px rgba(0,0,0,0.4);
	animation: notifIn 0.25s ease, notifOut 0.25s ease 3.2s forwards;
	max-width: 320px;
}
@keyframes notifIn {
	from {
		opacity:0;
		transform: translateY(-10px);
	}
	to {
		opacity:1;
		transform: translateY(0);
	}
}
@keyframes notifOut {
	from {
		opacity:1;
	}
	to {
		opacity:0;
		transform: translateY(-6px);
	}
}
/* ── CHAT ── */
.chat-search-box {
	padding: 8px 14px;
}
.chat-search-results {
	padding: 0 14px;
}
.chat-search-result {
	display:flex;
	align-items:center;
	gap:10px;
	padding:9px;
	border:1px solid var(--border);
	border-radius:var(--radius-sm);
	margin-bottom:6px;
	cursor:pointer;
	background:var(--bg-card);
}
.chat-search-result:active {
	border-color: var(--gold);
}
#chat-conversation-modal .modal-sheet {
	max-height: 85vh;
	display:flex;
	flex-direction:column;
	padding-bottom:14px;
}
.conv-header {
	display:flex;
	align-items:center;
	gap:10px;
	padding-bottom:10px;
	border-bottom:1px solid var(--border);
	margin-bottom:10px;
}
.conv-messages {
	flex:1;
	overflow-y:auto;
	display:flex;
	flex-direction:column;
	gap:8px;
	padding:4px 2px 10px;
	max-height: 50vh;
}
.msg-bubble {
	max-width: 78%;
	padding:8px 11px;
	border-radius:14px;
	font-size:13px;
	line-height:1.4;
	position:relative;
}
.msg-mine {
	align-self:flex-end;
	background: rgba(200,168,75,0.18);
	color:var(--text-primary);
	border:1px solid rgba(200,168,75,0.3);
	border-bottom-right-radius:4px;
}
.msg-theirs {
	align-self:flex-start;
	background: var(--bg-elevated);
	color:var(--text-primary);
	border:1px solid var(--border);
	border-bottom-left-radius:4px;
}
.msg-time {
	font-size:9px;
	color:var(--text-muted);
	margin-top:3px;
}
.msg-actions {
	display:flex;
	gap:8px;
	margin-top:3px;
}
.msg-action-link {
	font-size:9px;
	color: var(--text-secondary);
	cursor:pointer;
	text-decoration: underline;
}
.conv-input-row {
	display:flex;
	gap:8px;
	margin-top:8px;
}
.conv-input-row input {
	flex:1;
}
.conv-send-btn {
	background:var(--gold);
	color:var(--bg-deep);
	border:none;
	border-radius:var(--radius-sm);
	padding:0 16px;
	font-weight:700;
	cursor:pointer;
}
.feed-action.editer i {
	margin-right: 2px;
}
/* ── QSO TABLE ── */
.qso-table-wrap {
	overflow-x: auto;
	padding: 0 14px 14px;
}
.qso-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 12px;
}
.qso-table th {
	text-align: left;
	padding: 8px 10px;
	font-size: 9px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	color: var(--text-muted);
	font-weight: 700;
	background: var(--bg-card2);
	border-bottom: 1px solid var(--border);
	position: sticky;
	top: 0;
}
.qso-table td {
	padding: 8px 10px;
	border-bottom: 1px solid var(--border);
	color: var(--text-primary);
	cursor: pointer;
}
.qso-table tr:hover td {
	background: rgba(255,255,255,0.03);
}
.qso-table .qso-call {
	font-family: 'Space Mono', monospace;
	font-weight: 700;
	color: var(--gold);
}
.qso-table .qso-mode-badge {
	display: inline-block;
	font-size: 9px;
	padding: 1px 6px;
	border-radius: 4px;
	font-weight: 700;
}
.qso-table .mode-ssb {
	background: rgba(200,168,75,0.15);
	color: var(--gold);
}
.qso-table .mode-cw {
	background: rgba(230,57,70,0.15);
	color: var(--accent2);
}
.qso-table .mode-ft8 {
	background: rgba(45,138,78,0.15);
	color: var(--signal);
}
.qso-table .mode-am {
	background: rgba(138,170,122,0.15);
	color: var(--text-secondary);
}
.qso-table .mode-fm {
	background: rgba(45,138,78,0.1);
	color: #4a9e6a;
}
.qso-table .mode-psk {
	background: rgba(200,168,75,0.1);
	color: var(--gold);
}
.qso-table .mode-rtty {
	background: rgba(230,57,70,0.1);
	color: var(--accent2);
}
.qso-table .mode-dynamic {
	background: rgba(100,149,237,0.15);
	color: #6a8cdb;
}
.qso-table .rst-badge {
	font-family: 'Space Mono', monospace;
	font-size: 10px;
	color: var(--text-secondary);
}
/* ── DX SPOTS (communauté) ── */
.dxc-table td {
	font-size: 11px;
	/*white-space: nowrap;*/
}
.dxc-table td:nth-child(5) {
	white-space: normal;
}
.dxc-call {
	font-family: 'Space Mono', monospace;
	font-weight: 800;
	color: var(--accent2);
	letter-spacing: 0.3px;
}
/* ── MODAL QSO ── */
#qso-modal .modal-sheet {
	max-height: 95vh;
	overflow-y: auto;
}
.qso-modal-notes {
	grid-column: 1 / -1;
}
.qso-modal-notes textarea {
	min-height: 60px;
	resize: vertical;
}
/* ── QSO DETAIL MODAL ── */
.qso-detail-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px 14px;
	padding: 4px 0;
}
.qso-detail-grid .full {
	grid-column: 1 / -1;
}
.qso-detail-label {
	font-size: 9px;
	color: var(--text-secondary);
	text-transform: uppercase;
	letter-spacing: 0.3px;
}
.qso-detail-value {
	font-size: 13px;
	color: var(--text-primary);
	font-family: 'Space Mono', monospace;
}
#page-log .inp-group .auth-input {
	background: var(--bg-card);
	border-color: var(--border);
}
#page-log .inp-group .auth-input:focus {
	border-color: var(--gold);
}
/* ── MARCHÉ PHOTOS ── */
.mk-photo-row {
	display:flex;
	gap:8px;
	flex-wrap:wrap;
	margin-top:4px;
}
.mk-photo-add {
	width:64px;
	height:64px;
	border:1px dashed var(--border-strong);
	border-radius:var(--radius-sm);
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	gap:2px;
	color:var(--text-secondary);
	font-size:9px;
	cursor:pointer;
	background:var(--bg-card2);
}
.mk-photo-add i {
	font-size:16px;
	color:var(--gold);
}
.mk-photo-thumb {
	position:relative;
	width:64px;
	height:64px;
	border-radius:var(--radius-sm);
	overflow:hidden;
	border:2px solid transparent;
	cursor:pointer;
	flex-shrink:0;
	background:var(--bg-card2);
}
.mk-photo-thumb img {
	width:100%;
	height:100%;
	object-fit:cover;
	display:block;
}
.mk-photo-thumb.cover {
	border-color:var(--gold);
}
.mk-photo-thumb .mk-cover-badge {
	position:absolute;
	bottom:2px;
	left:2px;
	background:var(--gold);
	color:var(--bg-deep);
	font-size:7px;
	font-weight:700;
	padding:1px 4px;
	border-radius:3px;
}
.mk-photo-thumb .mk-photo-remove {
	position:absolute;
	top:2px;
	right:2px;
	width:16px;
	height:16px;
	background:rgba(6,13,6,0.8);
	border-radius:50%;
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--danger);
	font-size:9px;
	cursor:pointer;
	border:none;
}
/* ── LISTE DES ANNONCES ── */
.market-list {
	display:flex;
	flex-direction:column;
	padding:0 14px 12px;
}
.market-row {
	display:flex;
	align-items:center;
	gap:11px;
	padding:10px;
	background:var(--bg-card);
	border:1px solid var(--border);
	border-radius:var(--radius);
	margin-bottom:9px;
	cursor:pointer;
}
.market-row:active {
	border-color:var(--gold);
}
.market-thumb {
	width:48px;
	height:48px;
	border-radius:var(--radius-sm);
	overflow:hidden;
	flex-shrink:0;
	display:flex;
	align-items:center;
	justify-content:center;
	font-size:22px;
	background:var(--bg-card2);
}
.market-thumb img {
	width:100%;
	height:100%;
	object-fit:cover;
}
.market-row-body {
	flex:1;
	min-width:0;
}
/* ── DÉTAIL ANNONCE / DIAPORAMA ── */
.mkd-carousel {
	position:relative;
	width:100%;
	max-width:400px;
	height:300px;
	margin:0 auto 12px;
	border-radius:var(--radius);
	overflow:hidden;
	background:var(--bg-card2);
}
.mkd-carousel img {
	width:100%;
	height:100%;
	object-fit:contain;
	cursor:zoom-in;
	background:var(--bg-deep);
}
.mkd-carousel-nav {
	position:absolute;
	bottom:8px;
	left:0;
	right:0;
	display:flex;
	align-items:center;
	justify-content:center;
	gap:10px;
}
.mkd-nav-btn {
	width:26px;
	height:26px;
	border-radius:50%;
	background:rgba(6,13,6,0.7);
	color:#fff;
	display:flex;
	align-items:center;
	justify-content:center;
	cursor:pointer;
	font-size:11px;
	border:none;
}
.mkd-carousel-dots {
	display:flex;
	gap:5px;
}
.mkd-carousel-dots span {
	width:6px;
	height:6px;
	border-radius:50%;
	background:rgba(255,255,255,0.4);
}
.mkd-carousel-dots span.active {
	background:var(--gold);
}
/* ── z-index supérieur à .modal-overlay (1100) : sinon la lightbox s'ouvre
cachée derrière la fenêtre de détail d'annonce et ne devient visible
qu'après la fermeture de cette dernière. ── */
#mkd-lightbox {
	z-index:1500;
	align-items:center;
	justify-content:center;
	background:rgba(0,0,0,0.92);
}
/* ────────────────────────────────────────────── */
/* Styles extraits des attributs "style" inline   */
/* de index.html (générés automatiquement)        */
/* ────────────────────────────────────────────── */
#login-callsign {
	text-transform:uppercase;
	padding-left:38px;
}
#reg-callsign {
	text-transform:uppercase;
	padding-left:38px;
}
#reg-firstname {
	padding-left:38px;
}
#reg-lastname {
	padding-left:38px;
}
#reg-email {
	padding-left:38px;
}
#reg-city {
	padding-left:38px;
}
.il-1 {
	flex:1;
}
.il-2 {
	position:absolute;
	left:12px;
	top:50%;
	transform:translateY(-50%);
	z-index:1;
	color:var(--text-muted);
}
#reg-country-search {
	padding-left:38px;
}
#reg-country-list {
	display:none;
}
.il-3 {
	margin-top:8px;
}
#reg-locator {
	padding-left:38px;
	text-transform:uppercase;
}
#terms-content {
	font-size:13px;
	line-height:1.6;
	color:var(--text-primary);
	white-space:pre-wrap;
	max-height:280px;
	overflow-y:auto;
	background:var(--bg-elevated);
	border:1px solid var(--border);
	border-radius:var(--radius-sm);
	padding:12px;
	margin-bottom:16px;
}
.il-4 {
	display:flex;
	align-items:center;
	gap:10px;
	cursor:pointer;
	margin-bottom:16px;
	font-size:13px;
	color:var(--text-primary);
}
#terms-checkbox {
	width:18px;
	height:18px;
	flex-shrink:0;
	accent-color:var(--gold);
}
#terms-continue-btn {
	opacity:.4;
}
#forgot-callsign {
	text-transform:uppercase;
}
.il-5 {
	font-size:11px;
	color:var(--text-muted);
	margin-bottom:10px;
}
#forgot-error {
	margin-bottom:10px;
}
#reset-error {
	margin-bottom:10px;
}
#change-pwd-error {
	margin-bottom:10px;
}
#dt-local {
	font-family:'Space Mono',monospace;
	color:var(--gold);
}
#dt-utc {
	font-family:'Space Mono',monospace;
	color:var(--text-secondary);
}
/*#mainContent {
	display:none;
}*/
.il-6 {
	display:grid;
	grid-template-columns:1fr auto 1fr;
	align-items:center;
}
#qso-count-badge {
	justify-self:center;
	font-size:15px;
	font-weight:700;
	padding:4px 12px;
	white-space:nowrap;
}
#qso-count-num {
	color:var(--gold);
	font-size:17px;
}
.il-7 {
	justify-self:end;
}
.il-8 {
	padding:0 14px 10px;
}
#qso-search {
	padding-left:38px;
	text-transform:uppercase;
}
#market-category-pills {
	padding-bottom:8px;
}
#profile-avatar-display {
	background:linear-gradient(135deg,#1a3a1a,#1d6a1e);
}
.il-9 {
	padding:0 14px 14px;
}
.il-10 {
	font-size:10px;
	text-transform:uppercase;
	letter-spacing:0.5px;
	color:var(--text-muted);
	margin-bottom:9px;
	font-weight:600;
}
.il-11 {
	margin-bottom:15px;
}
.il-12 {
	color:var(--gold);
	font-size:16px;
}
.il-13 {
	font-size:11px;
	color:var(--text-muted);
}
#profile-rig {
	font-size:12px;
}
#profile-antenna {
	font-size:12px;
}
#profile-locator {
	font-size:12px;
}
.il-14 {
	color:var(--text-muted);
	cursor:pointer;
}
.il-15 {
	font-size:10px;
	text-transform:uppercase;
	letter-spacing:0.5px;
	color:var(--text-muted);
	margin-bottom:9px;
	margin-top:15px;
	font-weight:600;
}
.il-16 {
	background:var(--bg-card);
	border:1px solid var(--border);
	border-radius:var(--radius);
	overflow:hidden;
}
.il-17 {
	color:var(--gold);
	width:18px;
}
.il-18 {
	font-size:13px;
	color:var(--text-primary);
}
.il-19 {
	color:var(--text-muted);
	margin-left:auto;
	font-size:11px;
}
#adif-import-input {
	display:none;
}
.il-20 {
	color:var(--danger);
	width:18px;
}
.il-21 {
	font-size:13px;
	color:var(--danger);
}
.il-22 {
	margin-top:18px;
	text-align:center;
	font-size:10px;
	color:var(--text-muted);
	font-family:'Space Mono',monospace;
}
#qso-duration {
	background:var(--bg-card2);
	color:var(--text-secondary);
}
.il-23 {
	position:relative;
}
#qso-call {
	text-transform:uppercase;
}
#qso-call-suggestions {
	display:none;
}
#qso-locator {
	text-transform:uppercase;
}
#qso-distance {
	background:var(--bg-card2);
	color:var(--text-secondary);
}
#qso-azimuth {
	background:var(--bg-card2);
	color:var(--text-secondary);
}
.il-24 {
	text-align:center;
}
#qso-notes {
	width:100%;
	min-height:80px;
	text-align:center;
	resize:vertical;
}
#qso-delete-btn {
	display:none;
	margin-top:7px;
}
#qd-notes {
	font-family:'Barlow',sans-serif;
	white-space:pre-wrap;
}
.il-25 {
	display:flex;
	gap:8px;
	margin-top:14px;
}
.il-26 {
	flex:1;
}
#mk-photo-input {
	display:none;
}
#mk-photo-hint {
	font-size:10px;
	color:var(--text-muted);
	margin-top:5px;
}
.il-27 {
	font-size:10px;
	color:var(--text-muted);
	margin-bottom:10px;
}
#mkd-carousel-wrap {
	display:none;
}
#mkd-price {
	font-family:'Space Mono',monospace;
	font-size:18px;
	color:var(--gold);
	font-weight:700;
	margin-bottom:8px;
}
.il-28 {
	display:flex;
	gap:6px;
	margin-bottom:10px;
}
#mkd-seller {
	font-size:11px;
	color:var(--text-secondary);
	margin-bottom:10px;
}
#mkd-desc {
	font-size:13px;
	line-height:1.55;
	color:var(--text-primary);
	white-space:pre-wrap;
}
#mkd-edit-btn {
	display:none;
	margin-top:10px;
}
#mkd-delete-btn {
	display:none;
	margin-top:8px;
}
#mkd-lightbox {
	align-items:center;
	justify-content:center;
	background:rgba(0,0,0,0.92);
}
#mkd-lightbox-img {
	max-width:94vw;
	max-height:90vh;
	object-fit:contain;
}
#post-delete-btn {
	display:none;
}
#dx-delete-btn {
	display:none;
}
#conv-avatar {
	width:38px;
	height:38px;
	font-size:11px;
}
.il-29 {
	flex:1;
	min-width:0;
}
#conv-callsign {
	font-family:'Space Mono',monospace;
	font-weight:700;
	color:var(--gold);
}
#conv-name {
	font-size:11px;
	color:var(--text-secondary);
}
.il-30 {
	color:var(--text-muted);
	cursor:pointer;
	padding:6px;
}
.il-31 {
	font-size:14px;
	line-height:1.6;
	color:var(--text-primary);
	margin-bottom:18px;
}
#ep-country-list {
	display:none;
}
#ep-timezone-display {
	margin-top:8px;
}
#ep-locator {
	text-transform:uppercase;
}
#edit-profile-error {
	margin-bottom:10px;
}
#locator-value {
	text-transform:uppercase;
}

/* ────────────────────────────────────────────── */
/* Styles extraits des templates JS (app.js)       */
/* ────────────────────────────────────────────── */
.il-tag-row {
	margin-bottom:7px;
}
.il-pad8 {
	padding:8px;
}
.il-pad-top30 {
	padding-top:30px;
}
.il-center-pad10 {
	text-align:center;
	padding:10px;
}
.il-center-pad14 {
	text-align:center;
	padding:14px;
}
.chat-av-sm {
	width:26px;
	height:26px;
	font-size:9px;
}
.chat-av-md {
	width:34px;
	height:34px;
	font-size:10px;
}
.dxc-row-mine {
	cursor:pointer;
}
.dxc-freq {
	color:var(--gold);
	font-family:'Space Mono',monospace;
	font-weight:700;
}
.dxc-date {
	font-size:9px;
	color:var(--text-muted);
}
.dxc-comment {
	white-space:normal;
	max-width:150px;
}
.dxc-hint {
	padding:0 14px 6px;
	font-size:10px;
	color:var(--text-muted);
}
.rep-freq-val-sm {
	font-size:13px;
}
.chat-search-name {
	font-size:12px;
	font-weight:700;
	color:var(--gold);
	font-family:'Space Mono',monospace;
}
.chat-search-sub {
	font-size:10px;
	color:var(--text-secondary);
}
#pull-refresh-indicator {
	position:absolute;
	top:0;
	left:50%;
	transform:translate(-50%,-50px);
	width:34px;
	height:34px;
	border-radius:50%;
	background:var(--bg-card);
	border:1px solid var(--gold);
	display:flex;
	align-items:center;
	justify-content:center;
	color:var(--gold);
	font-size:14px;
	z-index:50;
	transition:transform 0.15s ease;
	pointer-events:none;
}
@keyframes hhPullSpin {
	to { transform:rotate(360deg); }
}
.pull-spin {
	animation:hhPullSpin 0.6s linear infinite;
}
