/**
 * Единый стиль действий: жирный подчёркнутый текст, зона нажатия ≥44×44.
 * Подключается последним (после Bootstrap и extra_css) — мобилка и десктоп.
 */

:root {
  --action-color: var(--text, #1f2937);
  --action-color-hover: var(--primary, #2563eb);
  --action-color-danger: #dc2626;
  --action-color-success: #15803d;
  --action-touch: 44px;
  --action-font-size: 15px;
  --action-font-weight: 800;
}

/* Сброс переменных Bootstrap 5 — иначе на десктопе остаются синие/белые плашки */
.btn,
.btn-primary,
.btn-secondary,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info,
.btn-light,
.btn-dark,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-success,
.btn-outline-danger,
.btn-outline-warning,
.btn-outline-info,
.btn-outline-light,
.btn-outline-dark {
  --bs-btn-color: var(--action-color);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: transparent;
  --bs-btn-hover-color: var(--action-color-hover);
  --bs-btn-hover-bg: transparent;
  --bs-btn-hover-border-color: transparent;
  --bs-btn-focus-shadow-rgb: 37, 99, 235;
  --bs-btn-active-color: var(--action-color-hover);
  --bs-btn-active-bg: transparent;
  --bs-btn-active-border-color: transparent;
  --bs-btn-active-shadow: none;
  --bs-btn-disabled-color: var(--action-color);
  --bs-btn-disabled-bg: transparent;
  --bs-btn-disabled-border-color: transparent;
  --bs-btn-padding-x: 12px;
  --bs-btn-padding-y: 10px;
  --bs-btn-font-size: var(--action-font-size);
  --bs-btn-font-weight: var(--action-font-weight);
  --bs-btn-line-height: 1.25;
  --bs-btn-border-radius: 0;
  --bs-btn-box-shadow: none;
}

.btn-primary,
.btn-outline-primary {
  --bs-btn-color: var(--action-color-hover);
  --bs-btn-hover-color: var(--action-color-hover);
  --bs-btn-active-color: var(--action-color-hover);
}

.btn-danger,
.btn-outline-danger {
  --bs-btn-color: var(--action-color-danger);
  --bs-btn-hover-color: #b91c1c;
  --bs-btn-active-color: #b91c1c;
}

.btn-success,
.btn-outline-success {
  --bs-btn-color: var(--action-color-success);
  --bs-btn-hover-color: #166534;
  --bs-btn-active-color: #166534;
}

/* ——— Базовый вид кнопок ——— */
.btn:not([style*="rgba("]):not(.btn--chrome):not(.miravi-carousel__btn),
label.btn:not([style*="rgba("]),
a.btn:not([style*="rgba("]):not(.btn--chrome),
button.btn:not([style*="rgba("]):not(.btn--chrome):not(.miravi-carousel__btn),
input.btn,
.btn-primary,
a.btn-primary,
button.btn-primary,
input.btn-primary,
.btn-secondary,
.btn-light,
.btn-dark,
.btn-outline-primary,
.btn-outline-secondary,
.btn-outline-danger,
.btn-outline-success,
.btn-success,
.btn-danger,
.btn-warning,
.btn-info,
.btn-secondary:not(.btn) {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px;
  box-sizing: border-box;
  min-height: var(--action-touch) !important;
  min-width: var(--action-touch);
  padding: 10px 12px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: var(--action-color) !important;
  box-shadow: none !important;
  font-family: inherit !important;
  font-size: var(--action-font-size) !important;
  font-weight: var(--action-font-weight) !important;
  line-height: 1.25 !important;
  letter-spacing: normal;
  text-align: center;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  text-transform: none;
  white-space: normal;
  vertical-align: middle;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
  appearance: none;
}

.btn-primary,
.btn-outline-primary,
a.btn-primary,
button.btn-primary,
.btn-primary:not(.btn) {
  color: var(--action-color-hover) !important;
}

.btn:not([style*="rgba("]):not(.btn--chrome):hover,
.btn:not([style*="rgba("]):not(.btn--chrome):focus,
.btn:not([style*="rgba("]):not(.btn--chrome):focus-visible,
.btn:not([style*="rgba("]):not(.btn--chrome):active,
.btn.active:not([style*="rgba("]),
.btn-check:checked + .btn,
label.btn:hover,
a.btn:not([style*="rgba("]):hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-light:hover,
.btn-outline-primary:hover,
.btn-outline-secondary:hover,
.btn-outline-danger:hover,
.btn-outline-success:hover,
.btn-success:hover,
.btn-danger:hover,
.btn-secondary:not(.btn):hover {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  color: var(--action-color-hover) !important;
  border: 0 !important;
  box-shadow: none !important;
  text-decoration: underline !important;
  outline: none;
}

.btn-danger:hover,
.btn-outline-danger:hover {
  color: #b91c1c !important;
}

.btn:disabled,
.btn.disabled,
fieldset:disabled .btn {
  opacity: 0.45;
  cursor: not-allowed;
  pointer-events: none;
}

.btn-sm,
.btn-lg {
  min-height: var(--action-touch) !important;
  padding: 10px 12px !important;
  font-size: var(--action-font-size) !important;
  border-radius: 0 !important;
}

.btn.w-100,
a.btn.w-100,
button.btn.w-100 {
  width: auto !important;
  max-width: 100%;
  align-self: flex-start;
}

.btn-link {
  color: var(--action-color) !important;
  text-decoration: underline !important;
  font-weight: var(--action-font-weight) !important;
  --bs-btn-color: var(--action-color);
  --bs-btn-bg: transparent;
}

.btn-link:hover,
.btn-link:focus {
  color: var(--action-color-hover) !important;
}

.btn.p-0,
.btn.btn-link.p-0,
.topbar-right .dropdown > .btn,
.topbar-right .dropdown > .btn.p-0 {
  min-width: var(--action-touch) !important;
  min-height: var(--action-touch) !important;
  padding: 0 !important;
  text-decoration: none !important;
  border: 0 !important;
  background: transparent !important;
}

.btn-close {
  min-width: var(--action-touch);
  min-height: var(--action-touch);
  padding: 0;
  opacity: 0.75;
  background: transparent !important;
}

.miravi-carousel__btn,
.btn.btn-sm.btn-light[style*="position:absolute"] {
  min-width: var(--action-touch) !important;
  min-height: var(--action-touch) !important;
  padding: 0 !important;
  border-radius: 50% !important;
  background: rgba(255, 255, 255, 0.92) !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  color: var(--action-color) !important;
}

/* Submit / button без .btn */
form button[type="submit"]:not(.btn-close):not(.miravi-carousel__btn):not(.btn--chrome):not(.feed-delete-cross):not(.pub-hero-cta-submit):not(.pub-hero-cta-link):not(.cta-link):not([style*="rgba("]),
form input[type="submit"]:not(.btn-close),
button[type="submit"]:not(.btn-close):not(.btn--chrome):not(.feed-delete-cross):not(.pub-hero-cta-submit):not(.pub-hero-cta-link):not(.cta-link):not([style*="rgba("]):not(.btn) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--action-touch);
  min-width: var(--action-touch);
  padding: 10px 12px;
  border: 0 !important;
  border-radius: 0;
  background: transparent !important;
  color: var(--action-color-hover);
  font-family: inherit;
  font-size: var(--action-font-size);
  font-weight: var(--action-font-weight);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  box-shadow: none;
}

.auth-guest-actions .btn,
.auth-guest-actions .btn:hover,
.auth-guest-actions .btn:focus,
.auth-guest-actions .btn:active {
  background: transparent !important;
  color: var(--action-color) !important;
  border: 0 !important;
  box-shadow: none !important;
  font-weight: var(--action-font-weight) !important;
  text-decoration: underline !important;
  padding: 10px 12px !important;
  border-radius: 0 !important;
}

.card-actions {
  justify-content: flex-start;
  gap: 8px;
  flex-wrap: wrap;
  padding: 10px 12px;
  background: transparent;
  border-top: 1px solid var(--border);
}

.card-actions .btn {
  width: auto !important;
}

.profile-catalog-action,
a.profile-catalog-action {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: var(--action-touch) !important;
  padding: 10px 12px !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: var(--action-color) !important;
  font-weight: var(--action-font-weight) !important;
  font-size: var(--action-font-size) !important;
  text-decoration: underline !important;
  text-underline-offset: 3px;
  text-align: center;
}

.profile-catalog-action:hover,
.profile-catalog-action--primary,
a.profile-catalog-action--primary {
  background: transparent !important;
  color: var(--action-color-hover) !important;
  border: 0 !important;
}

.home-section-more {
  display: inline-flex;
  align-items: center;
  min-height: var(--action-touch);
  padding: 10px 4px;
  font-weight: var(--action-font-weight);
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 720px) {
  body.hero-page .home-section-more {
    min-height: 0;
    padding: 0;
    text-underline-offset: 2px;
  }
}

.post-comment-action-btn,
.profile-feed-edit-link,
.messages-action-btn,
.owner-stats-action,
.dc-edit-link,
.home-news-main-read {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--action-touch);
  min-width: var(--action-touch);
  padding: 10px 8px;
  border: 0;
  background: transparent;
  color: var(--action-color);
  font-family: inherit;
  font-size: 14px;
  font-weight: var(--action-font-weight);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
  box-shadow: none;
}

.post-comment-action-btn:hover,
.profile-feed-edit-link:hover,
.messages-action-btn:hover {
  color: var(--action-color-hover);
  background: transparent;
}

.header-communication {
  min-height: var(--action-touch);
  min-width: var(--action-touch);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.post-smiley-grid .btn,
.post-smiley-grid .btn.btn-sm.btn-light,
[data-smiley-toggle] + .btn,
#kolobki-picker .btn {
  min-width: var(--action-touch) !important;
  min-height: var(--action-touch) !important;
  text-decoration: none !important;
}

.btn.btn--chrome,
.btn[style*="rgba("],
#muteBtn,
#storyMenuBtnPreview,
#selectMediaBtn,
#group-story-mute-btn,
#group-story-select-btn,
#adventureMuteBtn,
#adventureMenuBtnPreview,
#adventureSelectMediaBtn {
  min-width: var(--action-touch) !important;
  min-height: var(--action-touch) !important;
  text-decoration: none !important;
  border-radius: 50% !important;
}

.modal-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  justify-content: flex-start;
  border-top: 1px solid var(--border);
}

.modal-footer .btn {
  margin: 0;
}

.editor-tool-square,
.t-btn,
.img-tb-size,
.img-tb-collage-style,
.post-editor-toolbar .btn,
#create-post-toolbar .btn,
.editor-toolbar .btn {
  text-decoration: none !important;
  font-weight: 700 !important;
}

/* Inline «плашки» в шаблонах */
.btn[style*="var(--primary)"],
a.btn[style*="var(--primary)"],
button[style*="var(--primary)"]:not(.btn--chrome):not(.btn-close),
button.btn-primary[style],
a.btn-primary[style],
button[style*="background:#fff"]:not(.btn--chrome):not(.btn-close):not([style*="rgba("]),
button[style*="background: #fff"]:not(.btn--chrome):not(.btn-close):not([style*="rgba("]),
button[style*="background:var(--card)"]:not(.btn--chrome),
a.btn[style*="border:"][class*="btn"] {
  background: transparent !important;
  background-color: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: var(--action-color-hover) !important;
  border-radius: 0 !important;
}

.hero-overlay .btn,
.hero-banner .btn,
.pub-hero-copy .btn,
.role-hero-overlay .btn,
.adventure-cover-overlay .btn {
  color: #fff !important;
  text-decoration: underline !important;
}

.hero-overlay .btn:hover,
.pub-hero-copy .btn:hover,
.role-hero-overlay .btn:hover {
  color: rgba(255, 255, 255, 0.88) !important;
}

.btn-add-photo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--action-touch);
  min-width: var(--action-touch);
  padding: 10px 12px;
  border: 0;
  background: transparent;
  color: var(--action-color-hover);
  font-family: inherit;
  font-size: var(--action-font-size);
  font-weight: var(--action-font-weight);
  text-decoration: underline;
  text-underline-offset: 3px;
  cursor: pointer;
}

/* Dropdown-toggle с классом btn (домики и т.п.) */
.dropdown-toggle.btn::after {
  margin-left: 6px;
}

.btn-link.text-danger,
.btn.text-danger {
  color: var(--action-color-danger) !important;
}

.btn-link.text-danger:hover {
  color: #b91c1c !important;
}

/* Пунктирные заглушки — текст, не плашка */
button.btn[style*="dashed"],
.btn[style*="width: 100%"][style*="dashed"] {
  width: auto !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--muted, #6b7280) !important;
  text-decoration: none !important;
  cursor: default;
}

/* Уведомления */
.notifications-feed {
  max-width: 640px;
}

.notification-card {
  display: block;
  border: 1px solid var(--border, #e5e7eb);
  border-radius: 12px;
  background: var(--surface, #fff);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
}

.notification-card--link:hover {
  border-color: var(--primary, #2563eb);
}

.notification-card__body {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
}

.notification-card__avatar-link {
  flex-shrink: 0;
}

.notification-card__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
}

.notification-card__avatar--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg-muted, #f3f4f6);
  font-weight: 700;
}

.notification-card__text {
  flex: 1;
  min-width: 0;
}

.notification-card__title {
  font-weight: 800;
  margin-bottom: 4px;
}

.notification-card__preview {
  color: var(--muted, #6b7280);
  font-size: 14px;
  line-height: 1.4;
  word-break: break-word;
}

.notification-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}

.notification-card__btn--accept {
  color: var(--action-color-success) !important;
}

.notification-card__btn--decline {
  color: var(--action-color-danger) !important;
}

.notification-card--cover {
  position: relative;
  min-height: 120px;
}

.notification-card__cover {
  width: 100%;
  height: 140px;
  object-fit: cover;
  display: block;
}

.notification-card__cover--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 140px;
  background: linear-gradient(135deg, #1f2937, #374151);
  font-size: 40px;
}

.notification-card__text--on-cover {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 12px 14px;
  background: linear-gradient(transparent, rgba(0, 0, 0, 0.75));
  color: #fff;
}

.notification-card__text--on-cover .notification-card__preview {
  color: rgba(255, 255, 255, 0.9);
}

.notification-card--join .notification-card__cover-link {
  display: block;
  text-decoration: none;
}

.notification-card--join .notification-card__cover {
  height: 120px;
}

.notification-card--join .notification-card__cover-link:hover .notification-card__cover {
  opacity: 0.92;
}
