/* AiOps Glossary — Frontend Styles (Light / White background edition) */
:root {
  --aiops-bg:       #ffffff;
  --aiops-surface:  #ffffff;
  --aiops-surface2: #f8f9fb;
  --aiops-border:   #e2e6ea;
  --aiops-border2:  #cbd3da;
  --aiops-accent:   #2563eb;
  --aiops-accent2:  #7c3aed;
  --aiops-accent3:  #059669;
  --aiops-text:     #1a202c;
  --aiops-text2:    #4a5568;
  --aiops-muted:    #9ca3af;
  --aiops-radius:   8px;
  --aiops-font:     -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
  --aiops-mono:     'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
}

.aiops-glossary-wrap {
  font-family: var(--aiops-font);
  color: var(--aiops-text);
  max-width: 1200px;
  margin: 0 auto;
  padding: 24px 0 48px;
}

/* ── Search ─────────────────────────────────────────────────────────────── */
.aiops-search-wrap {
  position: relative;
  max-width: 480px;
  margin: 0 auto 24px;
}
.aiops-search-icon {
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 15px;
  pointer-events: none;
  color: var(--aiops-muted);
}
.aiops-search-input {
  width: 100%;
  background: #fff;
  border: 1.5px solid var(--aiops-border);
  border-radius: var(--aiops-radius);
  padding: 10px 40px 10px 38px;
  color: var(--aiops-text);
  font-size: 14px;
  font-family: var(--aiops-font);
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
}
.aiops-search-input::placeholder { color: var(--aiops-muted); }
.aiops-search-input:focus {
  border-color: var(--aiops-accent);
  box-shadow: 0 0 0 3px rgba(37,99,235,.1);
}
.aiops-search-clear {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  color: var(--aiops-muted);
  font-size: 18px;
  cursor: pointer;
  display: none;
  padding: 0;
  line-height: 1;
}
.aiops-search-clear.visible { display: block; }

/* ── Alphabet Nav ───────────────────────────────────────────────────────── */
.aiops-alpha-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  justify-content: center;
  margin-bottom: 20px;
}
.aiops-alpha-btn {
  min-width: 32px;
  height: 32px;
  padding: 0 6px;
  background: #fff;
  border: 1.5px solid var(--aiops-border);
  border-radius: 5px;
  color: var(--aiops-text2);
  font-family: var(--aiops-mono);
  font-size: 12px;
  cursor: pointer;
  transition: all .15s;
  display: flex;
  align-items: center;
  justify-content: center;
}
.aiops-alpha-btn:hover {
  border-color: var(--aiops-accent);
  color: var(--aiops-accent);
  background: rgba(37,99,235,.04);
}
.aiops-alpha-btn.active {
  background: var(--aiops-accent);
  border-color: var(--aiops-accent);
  color: #fff;
}

/* ── Stats / toolbar bar ────────────────────────────────────────────────── */
.aiops-stats-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 18px;
  padding: 10px 14px;
  background: var(--aiops-surface2);
  border: 1.5px solid var(--aiops-border);
  border-radius: var(--aiops-radius);
}
.aiops-count { font-size: 13px; color: var(--aiops-text2); }
.aiops-count-num { color: var(--aiops-accent); font-weight: 700; }

/* Layout switcher */
.aiops-layout-switcher {
  display: flex;
  gap: 4px;
}
.aiops-layout-btn {
  width: 32px;
  height: 32px;
  background: #fff;
  border: 1.5px solid var(--aiops-border);
  border-radius: 5px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: var(--aiops-muted);
  transition: all .15s;
  padding: 0;
}
.aiops-layout-btn:hover {
  border-color: var(--aiops-accent);
  color: var(--aiops-accent);
}
.aiops-layout-btn.active {
  background: var(--aiops-accent);
  border-color: var(--aiops-accent);
  color: #fff;
}

.aiops-toolbar-right {
  display: flex;
  align-items: center;
  gap: 10px;
}
.aiops-cat-select {
  background: #fff;
  border: 1.5px solid var(--aiops-border);
  border-radius: 5px;
  color: var(--aiops-text);
  padding: 5px 10px;
  font-size: 13px;
  font-family: var(--aiops-font);
  cursor: pointer;
  outline: none;
}
.aiops-cat-select:focus { border-color: var(--aiops-accent); }

/* ── Grid layout ────────────────────────────────────────────────────────── */
.aiops-terms-container.aiops-layout-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

/* ── List layout ────────────────────────────────────────────────────────── */
.aiops-terms-container.aiops-layout-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1.5px solid var(--aiops-border);
  border-radius: var(--aiops-radius);
  overflow: hidden;
}
.aiops-layout-list .aiops-term-card {
  border-radius: 0;
  border: none;
  border-bottom: 1.5px solid var(--aiops-border);
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 16px;
  padding: 12px 20px;
}
.aiops-layout-list .aiops-term-card:last-child { border-bottom: none; }
.aiops-layout-list .aiops-term-card:hover { transform: none; box-shadow: none; background: var(--aiops-surface2); }
.aiops-layout-list .aiops-featured-badge { display: none; }
.aiops-layout-list .aiops-card-category { display: none; }
.aiops-layout-list .aiops-card-related { display: none; }
.aiops-layout-list .aiops-card-acronym { display: none; }
.aiops-layout-list .aiops-card-title {
  min-width: 180px;
  max-width: 200px;
  margin-bottom: 0;
  font-size: 14px;
}
.aiops-layout-list .aiops-card-definition {
  flex: 1;
  -webkit-line-clamp: 1;
  margin-bottom: 0;
  font-size: 13px;
}
.aiops-layout-list .aiops-read-more {
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Compact layout ─────────────────────────────────────────────────────── */
.aiops-terms-container.aiops-layout-compact {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 10px;
}
.aiops-layout-compact .aiops-term-card { padding: 14px 16px; }
.aiops-layout-compact .aiops-card-definition,
.aiops-layout-compact .aiops-card-related,
.aiops-layout-compact .aiops-card-acronym,
.aiops-layout-compact .aiops-featured-badge { display: none; }
.aiops-layout-compact .aiops-card-title { font-size: 14px; margin-bottom: 2px; }
.aiops-layout-compact .aiops-read-more { font-size: 11px; }

/* ── Term Card ──────────────────────────────────────────────────────────── */
.aiops-term-card {
  background: #fff;
  border: 1.5px solid var(--aiops-border);
  border-radius: var(--aiops-radius);
  padding: 20px;
  position: relative;
  overflow: hidden;
  transition: border-color .2s, box-shadow .2s;
  cursor: pointer;
}
.aiops-term-card:hover {
  border-color: var(--aiops-accent);
  box-shadow: 0 4px 16px rgba(37,99,235,.08);
}
/* Left accent strip — solid color, no gradient */
.aiops-term-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px; height: 100%;
  background: var(--aiops-border2);
  transition: background .2s;
}
.aiops-term-card:hover::before {
  background: var(--aiops-accent);
}
.aiops-term-card.aiops-featured {
  border-color: rgba(37,99,235,.3);
}
.aiops-term-card.aiops-featured::before {
  background: var(--aiops-accent);
}

.aiops-featured-badge {
  font-size: 10px;
  font-family: var(--aiops-mono);
  color: #d97706;
  background: #fef3c7;
  border: 1px solid #fde68a;
  border-radius: 3px;
  padding: 2px 7px;
  display: inline-block;
  margin-bottom: 8px;
}
.aiops-card-category {
  font-size: 10px;
  font-family: var(--aiops-mono);
  color: var(--aiops-accent2);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 6px;
}
.aiops-card-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--aiops-text);
  margin: 0 0 4px;
  line-height: 1.3;
}
.aiops-card-acronym {
  font-size: 12px;
  color: var(--aiops-muted);
  margin-bottom: 8px;
}
.aiops-card-definition {
  font-size: 13px;
  color: var(--aiops-text2);
  line-height: 1.6;
  margin-bottom: 12px;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.aiops-card-related {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-bottom: 10px;
  align-items: center;
}
.aiops-related-label {
  font-size: 11px;
  color: var(--aiops-muted);
}
.aiops-related-tag {
  font-size: 11px;
  font-family: var(--aiops-mono);
  color: var(--aiops-accent);
  background: rgba(37,99,235,.06);
  border: 1px solid rgba(37,99,235,.2);
  padding: 2px 8px;
  border-radius: 3px;
  cursor: pointer;
  transition: all .15s;
}
.aiops-related-tag:hover {
  background: rgba(37,99,235,.12);
  border-color: var(--aiops-accent);
}
.aiops-read-more {
  font-size: 12px;
  color: var(--aiops-accent);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-family: var(--aiops-font);
  font-weight: 500;
  transition: opacity .15s;
}
.aiops-read-more:hover { opacity: .7; }

/* ── No results ─────────────────────────────────────────────────────────── */
.aiops-no-results { text-align: center; padding: 48px 20px; color: var(--aiops-muted); }
.aiops-reset-search {
  background: none;
  border: 1.5px solid var(--aiops-border);
  color: var(--aiops-accent);
  padding: 6px 14px;
  border-radius: 5px;
  cursor: pointer;
  font-family: var(--aiops-font);
  font-size: 13px;
  margin-left: 8px;
  transition: all .15s;
}
.aiops-reset-search:hover { border-color: var(--aiops-accent); }

/* Hidden */
.aiops-term-card.aiops-hidden { display: none !important; }

/* ── Modal — position: fixed relative to VIEWPORT ───────────────────────── */
/* 
   The overlay must be appended to <body> so that position:fixed works correctly
   even when parent elements use transform, will-change, or filter (which create
   a new containing block for fixed children). JS handles the body append.
*/
.aiops-modal-overlay {
  display: none;
  position: fixed;
  inset: 0;                  /* top/right/bottom/left all 0 — bulletproof */
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,.45);
  z-index: 999999;
  align-items: center;
  justify-content: center;
  padding: 20px;
  box-sizing: border-box;
  overflow-y: auto;          /* if modal is taller than screen, scroll the overlay */
}
.aiops-modal-overlay.open { display: flex; }

.aiops-modal-inner {
  background: #fff;
  border: 1.5px solid var(--aiops-border);
  border-radius: 10px;
  max-width: 620px;
  width: 100%;
  max-height: 88vh;
  overflow-y: auto;
  padding: 32px;
  position: relative;
  box-shadow: 0 20px 60px rgba(0,0,0,.15);
  animation: aiopsSlideIn .2s ease;
  box-sizing: border-box;
}
@keyframes aiopsSlideIn {
  from { opacity: 0; transform: scale(.97) translateY(8px); }
  to   { opacity: 1; transform: scale(1) translateY(0); }
}
.aiops-modal-close {
  position: absolute;
  top: 14px; right: 14px;
  background: var(--aiops-surface2);
  border: 1.5px solid var(--aiops-border);
  color: var(--aiops-text2);
  width: 30px; height: 30px;
  border-radius: 50%;
  font-size: 18px;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .15s;
  padding: 0;
  line-height: 1;
}
.aiops-modal-close:hover {
  background: #fee2e2;
  border-color: #fca5a5;
  color: #dc2626;
}
.aiops-modal-loading { text-align: center; color: var(--aiops-muted); padding: 40px; }

/* ── Modal content ──────────────────────────────────────────────────────── */
.aiops-modal-category {
  font-size: 11px;
  font-family: var(--aiops-mono);
  color: var(--aiops-accent2);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 8px;
}
.aiops-modal-title {
  font-size: 24px;
  font-weight: 700;
  color: var(--aiops-text);
  margin: 0 0 6px;
  line-height: 1.25;
  padding-right: 36px;
}
.aiops-modal-acronym {
  font-size: 13px;
  color: var(--aiops-muted);
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.aiops-difficulty-badge {
  font-size: 11px;
  font-family: var(--aiops-mono);
  padding: 2px 8px;
  border-radius: 3px;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  color: var(--aiops-text2);
}
.aiops-difficulty-badge.diff-beginner     { background: #f0fdf4; border-color: #86efac; color: #166534; }
.aiops-difficulty-badge.diff-intermediate { background: #eff6ff; border-color: #93c5fd; color: #1d4ed8; }
.aiops-difficulty-badge.diff-advanced     { background: #faf5ff; border-color: #c4b5fd; color: #6d28d9; }

.aiops-modal-definition {
  font-size: 15px;
  color: var(--aiops-text2);
  line-height: 1.7;
  padding-bottom: 18px;
  border-bottom: 1.5px solid var(--aiops-border);
  margin-bottom: 18px;
}
.aiops-modal-full-content {
  font-size: 14px;
  color: var(--aiops-text2);
  line-height: 1.75;
  margin-bottom: 18px;
}
.aiops-modal-section-title {
  font-size: 11px;
  font-family: var(--aiops-mono);
  color: var(--aiops-text2);
  text-transform: uppercase;
  letter-spacing: 1.5px;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-bottom: 1px solid var(--aiops-border);
}
.aiops-modal-related {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 20px;
}
.aiops-modal-related-btn {
  font-size: 12px;
  font-family: var(--aiops-mono);
  color: var(--aiops-accent);
  background: rgba(37,99,235,.06);
  border: 1px solid rgba(37,99,235,.2);
  padding: 5px 12px;
  border-radius: 4px;
  cursor: pointer;
  transition: all .15s;
}
.aiops-modal-related-btn:hover {
  background: rgba(37,99,235,.12);
  border-color: var(--aiops-accent);
}
.aiops-modal-use-cases {
  list-style: none;
  padding: 0;
  margin: 0 0 18px;
}
.aiops-modal-use-cases li {
  font-size: 13px;
  color: var(--aiops-text2);
  padding: 6px 0;
  border-bottom: 1px solid #f3f4f6;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.aiops-modal-use-cases li:last-child { border-bottom: none; }
.aiops-modal-use-cases li::before {
  content: '▸';
  color: var(--aiops-accent3);
  flex-shrink: 0;
  margin-top: 1px;
}
.aiops-modal-reference {
  margin-top: 4px;
}
.aiops-modal-reference a {
  color: var(--aiops-accent);
  font-size: 13px;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.aiops-modal-reference a:hover { text-decoration: underline; }

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .aiops-terms-container.aiops-layout-grid,
  .aiops-terms-container.aiops-layout-compact {
    grid-template-columns: 1fr;
  }
  .aiops-layout-list .aiops-term-card {
    grid-template-columns: 1fr;
    gap: 6px;
  }
  .aiops-modal-inner { padding: 20px; }
  .aiops-modal-title { font-size: 20px; }
  .aiops-stats-bar { flex-direction: column; align-items: flex-start; }
}

/* ── Modal share strip ──────────────────────────────────────────────────── */
.aiops-modal-share {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  padding-top: 18px;
  border-top: 1px solid var(--aiops-border);
  flex-wrap: wrap;
}
.aiops-modal-share-input {
  flex: 1;
  min-width: 0;
  border: 1.5px solid var(--aiops-border);
  border-radius: 6px;
  padding: 7px 10px;
  font-size: 12px;
  color: var(--aiops-text2);
  background: var(--aiops-surface2);
  cursor: text;
  font-family: var(--aiops-mono);
}
.aiops-modal-copy-btn {
  flex-shrink: 0;
  background: var(--aiops-accent);
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 7px 14px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
}
.aiops-modal-copy-btn:hover { background: #1d4ed8; }
.aiops-modal-copy-feedback {
  font-size: 12px;
  color: var(--aiops-accent3);
  white-space: nowrap;
}

/* ── Vote bar ──────────────────────────────────────────────────────────── */
.aiops-vote-bar {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 22px;
    padding: 12px 16px;
    background: #f8faff;
    border: 1.5px solid #e0e7ff;
    border-radius: 10px;
    flex-wrap: wrap;
}
.aiops-vote-label {
    font-size: 13px;
    color: var(--aiops-muted, #64748b);
    font-weight: 500;
    margin-right: 4px;
}
.aiops-vote-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 6px 14px;
    border-radius: 20px;
    border: 1.5px solid #e0e7ff;
    background: #fff;
    color: #4b5563;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s, transform 0.1s;
    line-height: 1;
}
.aiops-vote-btn:hover:not(:disabled) {
    transform: translateY(-1px);
    border-color: #a5b4fc;
    background: #eef2ff;
    color: #4338ca;
}
.aiops-vote-btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
}
.aiops-vote-up.aiops-vote-active  { background: #f0fdf4; border-color: #4ade80; color: #15803d; }
.aiops-vote-down.aiops-vote-active { background: #fef2f2; border-color: #f87171; color: #b91c1c; }

/* Hide both vote buttons once voted */
.aiops-voted .aiops-vote-btn:not(.aiops-vote-active) {
    opacity: 0.35;
    pointer-events: none;
}

.aiops-vote-count { font-size: 12px; font-variant-numeric: tabular-nums; }

.aiops-vote-feedback {
    font-size: 12px;
    margin-left: auto;
}
.aiops-vote-feedback.success { color: #15803d; }
.aiops-vote-feedback.error   { color: #b91c1c; }

/* ── Downvote panel ────────────────────────────────────────────────────── */
.aiops-downvote-panel {
    margin-top: 14px;
    padding: 16px;
    background: #fffbeb;
    border: 1.5px solid #fde68a;
    border-radius: 10px;
}
.aiops-downvote-prompt {
    font-size: 13px;
    color: #92400e;
    margin: 0 0 10px;
    font-weight: 500;
}
.aiops-downvote-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}
.aiops-chip {
    padding: 4px 12px;
    border-radius: 16px;
    border: 1.5px solid #fcd34d;
    background: #fff;
    color: #92400e;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.aiops-chip:hover    { background: #fef3c7; border-color: #f59e0b; }
.aiops-chip.selected { background: #f59e0b; border-color: #d97706; color: #fff; }

.aiops-downvote-textarea {
    width: 100%;
    padding: 8px 10px;
    border: 1.5px solid #fde68a;
    border-radius: 7px;
    font-size: 13px;
    resize: vertical;
    margin-bottom: 10px;
    background: #fff;
    font-family: inherit;
    box-sizing: border-box;
}
.aiops-downvote-textarea:focus {
    outline: none;
    border-color: #f59e0b;
    box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.12);
}

.aiops-downvote-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.aiops-btn-improve {
    padding: 7px 18px;
    background: linear-gradient(135deg, #7c3aed, #4f46e5);
    color: #fff;
    border: none;
    border-radius: 7px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity 0.15s, transform 0.1s;
}
.aiops-btn-improve:hover:not(:disabled) { opacity: 0.9; transform: translateY(-1px); }
.aiops-btn-improve:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }

.aiops-btn-skip-improve {
    background: none;
    border: none;
    color: #6b7280;
    font-size: 12px;
    cursor: pointer;
    text-decoration: underline;
    padding: 0;
}
.aiops-btn-skip-improve:hover { color: #374151; }

/* ── AI improvement result ─────────────────────────────────────────────── */
.aiops-improve-result {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 13px;
    line-height: 1.6;
}
.aiops-improve-result.success {
    background: #f0fdf4;
    border: 1.5px solid #bbf7d0;
    color: #166534;
}
.aiops-improve-result.error {
    background: #fef2f2;
    border: 1.5px solid #fecaca;
    color: #b91c1c;
}
.aiops-improved-def {
    display: block;
    margin: 8px 0 6px;
    color: #1f2937;
    font-style: normal;
    line-height: 1.65;
}
