/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --bg:        #0f1419;
  --surface:   #1a2028;
  --surface2:  #232d38;
  --border:    #2c3a47;
  --text:      #e8edf2;
  --text-dim:  #8a9bab;
  --accent:    #4caf50;
  --accent2:   #81c784;
  --danger:    #ef5350;
  --gold:      #ffd54f;
  --chat-mine: #1b3a20;
  --chat-other:#1e2a34;
  --radius:    12px;
  --shadow:    0 4px 24px rgba(0,0,0,.45);
}

html, body { height: 100%; }

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  background: var(--bg);
  color: var(--text);
  display: flex;
  flex-direction: column;
}

/* ===== AUTH SCREEN ===== */
.auth {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  background: linear-gradient(145deg, #0f1419 0%, #162020 50%, #0f1419 100%);
}
.auth__card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 2.5rem 2rem 2rem;
  width: 100%;
  max-width: 400px;
  box-shadow: var(--shadow);
  text-align: center;
}
.auth__logo { font-size: 3.5rem; margin-bottom: .25rem; animation: authBounce 1.2s ease; }
@keyframes authBounce {
  0%   { transform: scale(0) rotate(-20deg); opacity: 0; }
  60%  { transform: scale(1.15) rotate(5deg); }
  100% { transform: scale(1) rotate(0); opacity: 1; }
}
.auth__title { font-size: 1.6rem; font-weight: 700; margin-bottom: .2rem; }
.auth__subtitle { color: var(--text-dim); font-size: .9rem; margin-bottom: 1.5rem; }
.auth__form { display: flex; flex-direction: column; gap: .75rem; }
.auth__input {
  background: var(--surface2);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: .7rem 1rem;
  font-size: .95rem;
  outline: none;
  transition: border-color .2s;
}
.auth__input:focus { border-color: var(--accent); }
.auth__input::placeholder { color: var(--text-dim); }
.auth__btn {
  border: none;
  border-radius: 10px;
  padding: .75rem;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: .2s;
}
.auth__btn--primary { background: var(--accent); color: #fff; }
.auth__btn--primary:hover { background: var(--accent2); }
.auth__error { color: var(--danger); font-size: .82rem; min-height: 1.1em; }
.auth__switch { font-size: .82rem; color: var(--text-dim); }
.auth__switch a { color: var(--accent); text-decoration: none; font-weight: 600; }
.auth__switch a:hover { text-decoration: underline; }
.auth__photo-label {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  font-size: .82rem;
  font-weight: 600;
  color: var(--text-dim);
}
.auth__photo-area {
  width: 90px; height: 90px;
  border-radius: 50%;
  border: 2px dashed var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  overflow: hidden;
  transition: border-color .2s;
}
.auth__photo-area:hover { border-color: var(--accent); }
.auth__photo-ph { font-size: 1.8rem; text-align: center; line-height: 1.2; }
.auth__photo-prev {
  display: none;
  width: 100%; height: 100%;
  object-fit: cover;
  border-radius: 50%;
}

/* ===== HEADER ROLE BADGE ===== */
.header__role {
  font-size: .72rem;
  font-weight: 600;
  padding: .2rem .55rem;
  border-radius: 20px;
  white-space: nowrap;
}
.header__role--Лидер   { background: rgba(255,213,79,.18); color: var(--gold); }
.header__role--Активист { background: rgba(129,199,132,.18); color: var(--accent2); }
.header__role--Участник { background: rgba(76,175,80,.12); color: var(--accent); }
.header__role--Новичок  { background: rgba(138,155,171,.12); color: var(--text-dim); }

/* ===== APP LAYOUT ===== */
.app { display: flex; flex-direction: column; height: 100vh; }

.header {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .65rem 1.25rem;
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
  z-index: 10;
}
.header__logo { font-size: 1.25rem; font-weight: 700; white-space: nowrap; }
.header__nav { display: flex; gap: .35rem; margin-left: auto; }
.header__user {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-left: .75rem;
  font-size: .82rem;
  color: var(--text-dim);
  white-space: nowrap;
}
.header__logout {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-dim);
  border-radius: 6px;
  padding: .25rem .5rem;
  cursor: pointer;
  font-size: .9rem;
  transition: .2s;
}
.header__logout:hover { border-color: var(--danger); color: var(--danger); }

.tab-btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: .4rem .9rem;
  border-radius: 8px;
  cursor: pointer;
  font-size: .85rem;
  transition: .2s;
}
.tab-btn:hover { background: var(--surface2); color: var(--text); }
.tab-btn.active { background: var(--accent); color: #fff; border-color: var(--accent); }
.tab-btn--special { position: relative; }
.tab-btn--has-new { border-color: #ef5350; }
.tab-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #ef5350;
  color: #fff;
  font-size: .65rem;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  padding: 0 4px;
  margin-left: 4px;
  vertical-align: middle;
}

.tab-content { display: none; flex: 1; overflow: hidden; }
.tab-content.active { display: flex; flex-direction: column; }

/* ===== CHAT ===== */
.chat { display: flex; flex-direction: column; flex: 1; overflow: hidden; }
.chat__messages {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 1.25rem;
  display: flex;
  flex-direction: column;
  gap: .5rem;
}
.chat__welcome { margin: auto; text-align: center; color: var(--text-dim); }
.chat__welcome-icon { font-size: 3rem; margin-bottom: .5rem; }
.chat__welcome h2 { font-size: 1.15rem; color: var(--text); margin-bottom: .3rem; }
.chat__welcome p { font-size: .85rem; }
.msg {
  display: flex;
  gap: .6rem;
  max-width: 75%;
  animation: fadeIn .25s ease;
}
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } }
.msg__avatar {
  width: 36px; height: 36px;
  border-radius: 50%;
  background: var(--surface2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1rem;
  flex-shrink: 0;
  overflow: hidden;
}
.msg__avatar img { width: 100%; height: 100%; object-fit: cover; }
.msg__body { display: flex; flex-direction: column; gap: .15rem; }
.msg__author { font-size: .75rem; font-weight: 600; color: var(--accent2); }
.msg__author-role { font-weight: 400; color: var(--text-dim); font-size: .7rem; margin-left: .35rem; }
.msg__bubble {
  background: var(--chat-other);
  padding: .5rem .8rem;
  border-radius: 10px 10px 10px 2px;
  font-size: .9rem;
  line-height: 1.45;
  word-break: break-word;
}
.msg__time { font-size: .65rem; color: var(--text-dim); margin-top: .1rem; }
.chat__input-area {
  display: flex;
  gap: .5rem;
  padding: .75rem 1.25rem;
  background: var(--surface);
  border-top: 1px solid var(--border);
  align-items: center;
}
.chat__input {
  flex: 1;
  background: var(--surface2);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .55rem .8rem;
  font-size: .9rem;
  outline: none;
  transition: border-color .2s;
}
.chat__input:focus { border-color: var(--accent); }
.chat__input::placeholder { color: var(--text-dim); }
.chat__send-btn {
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: .55rem 1rem;
  font-size: 1rem;
  cursor: pointer;
  transition: .2s;
}
.chat__send-btn:hover { background: var(--accent2); }

/* ===== VISIT CARDS ===== */
.cards {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 1.25rem;
}
.cards__toolbar { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
.cards__add-btn, .adv__add-btn {
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: .5rem 1.1rem;
  font-size: .88rem;
  font-weight: 600;
  cursor: pointer;
  transition: .2s;
}
.cards__add-btn:hover, .adv__add-btn:hover { background: var(--accent2); }
.cards__empty { text-align: center; color: var(--text-dim); padding: 3rem 0; }
.cards__empty-icon { font-size: 3rem; margin-bottom: .5rem; }
.cards__empty p { font-size: .85rem; }

.cards__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 1rem;
}

.visit-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  animation: fadeIn .25s ease;
  transition: border-color .2s;
}
.visit-card:hover { border-color: var(--accent); }
.visit-card__banner {
  height: 70px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 0;
  position: relative;
}
.visit-card__banner--Лидер    { background: linear-gradient(135deg, #5c6bc0, #3f51b5); }
.visit-card__banner--Активист { background: linear-gradient(135deg, #66bb6a, #43a047); }
.visit-card__banner--Участник { background: linear-gradient(135deg, #42a5f5, #1e88e5); }
.visit-card__banner--Новичок  { background: linear-gradient(135deg, #78909c, #546e7a); }
.visit-card__avatar {
  width: 64px; height: 64px;
  border-radius: 50%;
  background: var(--surface);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  position: absolute;
  bottom: -32px;
  border: 3px solid var(--surface);
  overflow: hidden;
}
.visit-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.visit-card__body { padding: 2.5rem 1rem 1rem; text-align: center; }
.visit-card__name { font-weight: 700; font-size: 1.05rem; }
.visit-card__role {
  display: inline-block;
  font-size: .75rem;
  font-weight: 600;
  padding: .12rem .45rem;
  border-radius: 14px;
  margin-top: .3rem;
}
.visit-card__desc { font-size: .82rem; color: var(--text-dim); margin-top: .4rem; line-height: 1.4; }
.visit-card__footer {
  display: flex;
  gap: .5rem;
  justify-content: center;
  padding: .75rem 1rem;
  border-top: 1px solid var(--border);
}
.visit-card__btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-dim);
  border-radius: 8px;
  padding: .3rem .7rem;
  font-size: .78rem;
  cursor: pointer;
  transition: .2s;
}
.visit-card__btn:hover { border-color: var(--accent); color: var(--accent); }
.visit-card__btn--del:hover { border-color: var(--danger); color: var(--danger); }

.role-Лидер    { background: rgba(255,213,79,.18); color: var(--gold); }
.role-Активист { background: rgba(129,199,132,.18); color: var(--accent2); }
.role-Участник { background: rgba(76,175,80,.12); color: var(--accent); }
.role-Новичок  { background: rgba(138,155,171,.12); color: var(--text-dim); }

/* Card form */
.card-form-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.6);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 100;
  opacity: 0;
  pointer-events: none;
  transition: opacity .2s;
}
.card-form-overlay.open { opacity: 1; pointer-events: auto; }
.card-form, .adv-form {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 1.5rem;
  width: 90%;
  max-width: 420px;
  max-height: 90vh;
  overflow-y: auto;
}
.card-form h3, .adv-form h3 { margin-bottom: 1rem; font-size: 1.1rem; }
.card-form__label, .adv-form__label {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  font-size: .82rem;
  font-weight: 600;
  color: var(--text-dim);
  margin-bottom: .75rem;
}
.card-form__input, .card-form__textarea, .card-form__select,
.adv-form__input, .adv-form__textarea {
  background: var(--surface2);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .55rem .75rem;
  font-size: .9rem;
  outline: none;
  font-family: inherit;
  transition: border-color .2s;
}
.card-form__input:focus, .card-form__textarea:focus,
.adv-form__input:focus, .adv-form__textarea:focus { border-color: var(--accent); }
.card-form__textarea, .adv-form__textarea { resize: vertical; min-height: 70px; }
.card-form__photo-area {
  width: 100%; height: 140px;
  border: 2px dashed var(--border);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  overflow: hidden;
  transition: border-color .2s;
  position: relative;
}
.card-form__photo-area:hover { border-color: var(--accent); }
.card-form__photo-ph { font-size: .85rem; text-align: center; color: var(--text-dim); }
.card-form__photo-preview { display: none; width: 100%; height: 100%; object-fit: cover; }
.card-form__actions, .adv-form__actions {
  display: flex;
  gap: .5rem;
  justify-content: flex-end;
  margin-top: 1rem;
}
.card-form__cancel, .adv-form__cancel {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-dim);
  border-radius: 8px;
  padding: .5rem 1rem;
  cursor: pointer;
  font-size: .88rem;
}
.card-form__save, .adv-form__save {
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 8px;
  padding: .5rem 1.1rem;
  font-size: .88rem;
  font-weight: 600;
  cursor: pointer;
}

/* ===== ADVENTURES ===== */
.adv {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 1.25rem;
}
.adv__toolbar { display: flex; justify-content: flex-end; margin-bottom: 1rem; }
.adv__empty { text-align: center; color: var(--text-dim); padding: 3rem 0; }
.adv__empty-icon { font-size: 3rem; margin-bottom: .5rem; }
.adv__empty p { font-size: .85rem; }
.adv__list { display: flex; flex-direction: column; gap: .75rem; }

.adv-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  animation: fadeIn .25s ease;
  transition: border-color .2s;
}
.adv-card:hover { border-color: var(--accent2); }
.adv-card__header {
  display: flex;
  align-items: center;
  gap: .5rem;
  margin-bottom: .4rem;
}
.adv-card__emoji { font-size: 1.5rem; }
.adv-card__title { font-weight: 700; font-size: 1.05rem; }
.adv-card__location {
  font-size: .78rem;
  color: var(--accent2);
  margin-bottom: .3rem;
}
.adv-card__desc {
  font-size: .85rem;
  color: var(--text-dim);
  line-height: 1.4;
  margin-bottom: .5rem;
}
.adv-card__participants {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-bottom: .5rem;
}
.adv-card__chip {
  font-size: .75rem;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: .15rem .5rem;
  white-space: nowrap;
}
.adv-card__meta {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .75rem;
  color: var(--text-dim);
  border-top: 1px solid var(--border);
  padding-top: .5rem;
}
.adv-card__date, .adv-card__author { white-space: nowrap; }
.adv-card__actions { margin-left: auto; display: flex; gap: .3rem; }
.adv-card__btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-dim);
  border-radius: 6px;
  padding: .2rem .5rem;
  font-size: .8rem;
  cursor: pointer;
  transition: .2s;
}
.adv-card__btn:hover { border-color: var(--accent); color: var(--accent); }
.adv-card__btn--del:hover { border-color: var(--danger); color: var(--danger); }

/* Adventure form participants */
.adv-form__participants {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem;
}
.adv-form__chip {
  font-size: .8rem;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: .2rem .6rem;
  cursor: pointer;
  transition: .2s;
  user-select: none;
}
.adv-form__chip:hover { border-color: var(--accent); }
.adv-form__chip.selected {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

/* Adv photo */
.adv-form__photo-area {
  width: 100%; height: 140px;
  border: 2px dashed var(--border);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  overflow: hidden;
  transition: border-color .2s;
  position: relative;
}
.adv-form__photo-area:hover { border-color: var(--accent); }
.adv-form__photo-ph { font-size: .85rem; text-align: center; color: var(--text-dim); }
.adv-form__photo-preview { display: none; width: 100%; height: 100%; object-fit: cover; }

/* ===== APPLICATIONS ===== */
.apps {
  flex: 1;
  overflow-y: auto;
  padding: 1rem 1.25rem;
}
.apps__empty { text-align: center; color: var(--text-dim); padding: 3rem 0; }
.apps__empty-icon { font-size: 3rem; margin-bottom: .5rem; }
.apps__empty p { font-size: .9rem; }
.app-card {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 1rem 1.25rem;
  margin-bottom: .75rem;
  animation: fadeIn .25s ease;
  transition: border-color .2s;
}
.app-card:hover { border-color: #ef5350; }
.app-card__avatar {
  width: 48px; height: 48px;
  border-radius: 50%;
  background: var(--surface2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  flex-shrink: 0;
  overflow: hidden;
  border: 2px solid var(--border);
}
.app-card__avatar img { width: 100%; height: 100%; object-fit: cover; }
.app-card__body { flex: 1; min-width: 0; }
.app-card__name { font-weight: 700; font-size: 1rem; }
.app-card__meta {
  display: flex;
  gap: .75rem;
  font-size: .78rem;
  color: var(--text-dim);
  margin-top: .15rem;
}
.app-card__login { color: var(--accent2); }
.app-card__about {
  font-size: .82rem;
  color: var(--text-dim);
  margin-top: .3rem;
  line-height: 1.4;
}
.app-card__actions {
  display: flex;
  flex-direction: column;
  gap: .4rem;
  flex-shrink: 0;
}
.app-card__btn {
  border: none;
  border-radius: 8px;
  padding: .4rem .85rem;
  font-size: .82rem;
  font-weight: 600;
  cursor: pointer;
  transition: .2s;
  white-space: nowrap;
}
.app-card__btn--approve { background: var(--accent); color: #fff; }
.app-card__btn--approve:hover { background: var(--accent2); }
.app-card__btn--reject { background: var(--danger); color: #fff; }
.app-card__btn--reject:hover { background: #c62828; }

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--border); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--text-dim); }

/* ===== HEADER USERNAME BUTTON ===== */
.header__username-btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: .3rem .7rem;
  border-radius: 6px;
  cursor: pointer;
  font-size: .82rem;
  font-family: inherit;
  transition: .2s;
}
.header__username-btn:hover { border-color: var(--accent); color: var(--accent); }

/* ===== PROFILE ===== */
.profile { flex: 1; overflow-y: auto; padding: 1.5rem 1.25rem; display: flex; flex-direction: column; align-items: center; gap: 1.5rem; }
.profile__card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 2rem 1.5rem;
  width: 100%;
  max-width: 460px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}
.profile__avatar-area {
  width: 96px; height: 96px;
  border-radius: 50%;
  border: 2px dashed var(--border);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  overflow: hidden;
  position: relative;
  transition: border-color .2s;
}
.profile__avatar-area:hover { border-color: var(--accent); }
.profile__avatar {
  width: 100%; height: 100%;
  display: flex; align-items: center; justify-content: center;
  font-size: 2.5rem;
  background: var(--surface2);
  border-radius: 50%;
}
.profile__avatar img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.profile__avatar-hint {
  position: absolute; bottom: 2px; right: 2px;
  font-size: .75rem; background: var(--surface); border-radius: 50%;
  width: 24px; height: 24px; display: flex; align-items: center; justify-content: center;
  border: 1px solid var(--border);
}
.profile__label {
  width: 100%;
  display: flex; flex-direction: column; gap: .3rem;
  font-size: .8rem; font-weight: 600; color: var(--text-dim);
}
.profile__input, .profile__textarea {
  background: var(--surface2);
  color: var(--text);
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: .55rem .75rem;
  font-size: .9rem;
  outline: none;
  font-family: inherit;
  transition: border-color .2s;
  width: 100%;
}
.profile__input:focus, .profile__textarea:focus { border-color: var(--accent); }
.profile__textarea { resize: vertical; min-height: 60px; }
.profile__hint {
  font-size: .82rem;
  display: none;
  padding: .4rem .7rem;
  border-radius: 8px;
  width: 100%;
  text-align: center;
}
.profile__hint--warn { background: rgba(255,183,77,.12); color: #ffb74d; display: block; }
.profile__hint--ok { background: rgba(76,175,80,.12); color: var(--accent); display: block; }
.profile__save-btn {
  width: 100%;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 10px;
  padding: .7rem;
  font-size: .95rem;
  font-weight: 600;
  cursor: pointer;
  transition: .2s;
}
.profile__save-btn:hover { background: var(--accent2); }
.profile__role-line {
  font-size: .82rem;
  color: var(--text-dim);
  width: 100%;
  text-align: center;
}

/* ===== BIO REQUESTS (leader) ===== */
.bio-requests {
  width: 100%;
  max-width: 500px;
}
.bio-requests h3 {
  font-size: 1rem;
  margin-bottom: .75rem;
  color: var(--text);
}
.bio-requests__empty {
  text-align: center;
  color: var(--text-dim);
  font-size: .85rem;
  padding: 1rem;
}

/* ===== VISIT CARD INFO ===== */
.visit-card__info {
  font-size: .8rem;
  color: var(--text-dim);
  padding: 0 1rem .75rem;
  text-align: center;
  line-height: 1.4;
}
.visit-card__actions {
  display: flex;
  justify-content: center;
  gap: .5rem;
  padding: 0 1rem .75rem;
}
.visit-card__btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-dim);
  border-radius: 6px;
  padding: .25rem .6rem;
  font-size: .8rem;
  cursor: pointer;
  transition: .2s;
}
.visit-card__btn:hover { border-color: var(--accent); color: var(--accent); }
.visit-card__btn--del:hover { border-color: var(--danger); color: var(--danger); }

/* ===== ADV CHIPS ===== */
.adv-chip {
  display: inline-block;
  font-size: .8rem;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 20px;
  padding: .2rem .6rem;
  cursor: pointer;
  transition: .2s;
  user-select: none;
}
.adv-chip:hover { border-color: var(--accent); }
.adv-chip--active { background: var(--accent); color: #fff; border-color: var(--accent); }

/* ===== MSG OWN ===== */
.msg--own { align-self: flex-end; flex-direction: row-reverse; }
.msg--own .msg__header { text-align: right; }
.msg--own .msg__bubble { background: var(--chat-other); border-radius: 10px 10px 2px 10px; }
.msg__header { display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
.msg__name { font-size: .75rem; font-weight: 600; color: var(--accent2); }
.msg__role {
  font-size: .65rem;
  font-weight: 600;
  padding: .05rem .35rem;
  border-radius: 10px;
}
.msg__text { font-size: .88rem; line-height: 1.45; word-break: break-word; }
.msg__time { font-size: .62rem; color: var(--text-dim); margin-top: .1rem; }
