/* ============================================================================
   Держава «Грид» — Модуль инспектора заметок к элементам (notes_inspector.css)
   Пакет: F22-GOAL-w2-g1-s2-r1 (Инспектор заметок Маэстро)
   Стандарты: WCAG 2.2 AAA · Чёткий контур · Linear Design · Токены tokens.css
   ============================================================================ */

/* 1. Режим инспекции для всего документа */
html.notes-inspect-active,
body.notes-inspect-active {
  cursor: crosshair !important;
  user-select: none !important;
}

html.notes-inspect-active *,
body.notes-inspect-active * {
  cursor: crosshair !important;
}

/* 2. Рамка периметра активного режима заметок */
.notes-inspector-viewport-border,
.maestro-notes-viewport-border {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9800;
  box-shadow: inset 0 0 0 2px var(--violet),
              inset 0 0 24px var(--violet-glow);
  opacity: 0;
  transition: opacity var(--dur-normal) cubic-bezier(0.16, 1, 0.3, 1);
  animation: notes-border-pulse var(--dur-pulse) infinite alternate ease-in-out;
}

.notes-inspector-viewport-border.active,
.maestro-notes-viewport-border.active {
  opacity: 1;
}

@keyframes notes-border-pulse {
  0% {
    box-shadow: inset 0 0 0 2px var(--violet),
                inset 0 0 18px var(--violet-glow);
  }
  100% {
    box-shadow: inset 0 0 0 2px var(--violet-light),
                inset 0 0 30px var(--violet-alpha-40);
  }
}

/* 3. Информационный бейдж режима инспекции */
#maestroModeBadge,
.notes-inspector-mode-badge,
.maestro-mode-badge {
  position: fixed;
  top: var(--sp-4);
  left: 50%;
  transform: translateX(-50%) translateY(-24px);
  z-index: 9850;
  pointer-events: none;
  background: var(--bg-glass);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--violet);
  padding: var(--sp-1-5) var(--sp-3);
  border-radius: var(--radius-md, var(--r-card, 12px)) !important;
  color: var(--tx);
  font-family: var(--sans);
  font-size: var(--fs-xs);
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  box-shadow: 0 8px 24px var(--black-alpha-50),
              0 0 16px var(--violet-glow);
  opacity: 0;
  transition: transform var(--dur-smooth) cubic-bezier(0.16, 1, 0.3, 1),
              opacity var(--dur-smooth) ease;
  user-select: none;
  max-width: min(calc(100vw - var(--sp-6)), 420px);
  white-space: nowrap;
  box-sizing: border-box;
}

.notes-inspector-mode-badge.active,
.maestro-mode-badge.active {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
}

.notes-inspector-mode-badge-dot,
.maestro-mode-badge-dot {
  width: var(--sp-2);
  height: var(--sp-2);
  border-radius: var(--r-circle);
  background: var(--violet);
  box-shadow: 0 0 var(--sp-2) var(--violet);
  animation: notes-dot-pulse var(--dur-pulse) infinite alternate ease-in-out;
}

@keyframes notes-dot-pulse {
  0% { transform: scale(0.85); opacity: 0.75; }
  100% { transform: scale(1.15); opacity: 1; }
}

.notes-inspector-mode-badge kbd,
.maestro-mode-badge kbd {
  background: var(--card2);
  border: 1px solid var(--line-light);
  border-radius: var(--r-xs);
  padding: var(--sp-0-5) var(--sp-1);
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  color: var(--tx2);
}

/* 4. Чёткий контур подсветки DOM-элементов при наведении (Highlighter) */
.notes-inspector-highlighter,
.maestro-highlighter {
  position: fixed;
  pointer-events: none;
  z-index: 9840;
  border: 2px solid var(--violet);
  outline: 1px solid var(--black-alpha-70);
  outline-offset: -1px;
  background: var(--violet-alpha-12);
  border-radius: var(--r-sm);
  box-shadow: 0 0 0 1px var(--white-alpha-20),
              0 0 18px var(--violet-glow),
              inset 0 0 12px var(--violet-alpha-15);
  transition: top var(--dur-fast) cubic-bezier(0.16, 1, 0.3, 1),
              left var(--dur-fast) cubic-bezier(0.16, 1, 0.3, 1),
              width var(--dur-fast) cubic-bezier(0.16, 1, 0.3, 1),
              height var(--dur-fast) cubic-bezier(0.16, 1, 0.3, 1);
  display: none;
  box-sizing: border-box;
}

.notes-inspector-highlighter.visible,
.maestro-highlighter.visible {
  display: block;
}

/* Плавающий бейдж с именем тега, селектором и размерами */
.notes-inspector-tag,
.maestro-highlighter-tag {
  position: absolute;
  top: -26px;
  left: -2px;
  background: var(--slate-950);
  border: 1px solid var(--violet);
  border-radius: var(--r-xs);
  padding: var(--sp-0-5) var(--sp-1);
  color: var(--tx);
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  line-height: 1.4;
  white-space: nowrap;
  pointer-events: none;
  max-width: 480px;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: var(--sp-1-5);
  box-shadow: 0 4px 12px var(--black-alpha-60),
              0 0 8px var(--violet-glow);
}

.notes-inspector-tag-dim,
.maestro-highlighter-dim {
  color: var(--violet-light);
  font-weight: 600;
  letter-spacing: 0.02em;
}

.notes-inspector-tag-text,
.maestro-highlighter-tag-text {
  color: var(--tx3);
  font-family: var(--sans);
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

/* 5. Дополнительная индикация целевых элементов при фокусе/наведении */
[data-notes-highlight="true"] {
  outline: 2px solid var(--violet) !important;
  outline-offset: 2px !important;
  box-shadow: 0 0 16px var(--violet-glow) !important;
}

/* 6. Адаптивность для мобильных и планшетов (<= 768px, включая 412px) */
@media (max-width: 768px) {
  .notes-inspector-tag,
  .maestro-highlighter-tag {
    top: -24px;
    font-size: var(--fs-sm);
    padding: var(--sp-0-5) var(--sp-1);
  }
  .notes-inspector-tag-text,
  .maestro-highlighter-tag-text {
    display: none;
  }
  #maestroModeBadge,
  .notes-inspector-mode-badge,
  .maestro-mode-badge {
    border-radius: var(--radius-md, var(--r-card, 12px)) !important;
    white-space: normal !important;
    max-width: calc(100vw - var(--sp-4)) !important;
    font-size: var(--fs-sm) !important;
  }
  #maestroModeBadge kbd,
  .notes-inspector-mode-badge kbd,
  .maestro-mode-badge kbd {
    display: none !important;
  }
  .file-kind-badge,
  .file-stats {
    font-size: var(--fs-sm) !important;
  }
}

/* 7. Перечень изменённых файлов в инспекторе (noteModalFilesSection) */
.note-modal-files-section {
  margin-top: var(--sp-4);
  padding-top: var(--sp-4);
  border-top: 1px dashed var(--line-glass);
}
.note-modal-files-title {
  font-size: var(--fs-xs);
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: var(--sp-2-5);
  font-family: var(--sans);
}
.note-modal-files-loading,
.note-modal-files-empty {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-size: var(--fs-xs);
  color: var(--text-muted);
  font-style: italic;
}
.note-modal-files-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-1);
}
.note-modal-file-item {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  padding: var(--sp-1-5) var(--sp-2-5);
  background: var(--bg-card);
  border: 1px solid var(--border-color);
  border-radius: var(--r-sm);
  font-size: var(--fs-xs);
  transition: background var(--dur-fast) ease;
}
.note-modal-file-item:hover {
  background: var(--bg-secondary);
}
.file-name {
  flex: 1;
  font-family: var(--mono);
  color: var(--text-primary);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.file-kind-badge {
  display: inline-flex;
  align-items: center;
  padding: 0 var(--sp-1-5);
  border-radius: var(--r-xs);
  font-family: var(--mono);
  font-size: var(--fs-2xs);
  font-weight: 600;
  text-transform: uppercase;
  color: var(--white);
}
.badge-js { background: var(--amber); color: var(--black); }
.badge-css { background: var(--violet); }
.badge-html { background: var(--amber); color: var(--black); }
.badge-py { background: var(--blue); }
.badge-gray { background: var(--text-muted); }

.file-stats {
  display: flex;
  align-items: center;
  gap: var(--sp-2);
  font-family: var(--sans);
  font-variant-numeric: tabular-nums;
  font-size: var(--fs-2xs);
  font-weight: 600;
}
.file-stats .ins { color: var(--green); }
.file-stats .del { color: var(--red); }
