/* ==========================================================================
   1. GLOBAL DARK BASE & SYSTEM SUPPRESSION
   ========================================================================== */
html,
body {
  background-color: #05070c !important;
  background: #05070c !important;
  color: #f8fafc !important;
  margin: 0 !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  min-height: 100vh !important;
}

*, *::before, *::after {
  box-sizing: border-box !important;
}

/* Universal suppression of Joomla front-end edit button & metadata */
.icons,
.icon-edit,
.btn-group.float-end,
a.edit,
a[href*="task=article.edit"],
.article-info,
.article-info-term,
.item-info,
dl.article-info {
  display: none !important;
}

/* Universal suppression of blue title, tags, and category headers on Master Catalog */
.com-content-article .page-header,
.com-content-article .tags,
.com-content-article .tag,
.com-content-article .badge-tag,
.com-content-article .content-category,
.com-content-article .btn-toolbar,
.com-content-article .btn-group {
  display: none !important;
}

/* ==========================================================================
   2. OFFLINE LANDING PORTAL
   ========================================================================== */
.offline-card,
.view-login .card,
.card:has(#form-login) {
  width: 100% !important;
  max-width: 900px !important;
  margin: 40px auto !important;
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  color: #ffffff !important;
}

.offline-card .card-header,
.offline-card .card-body,
.offline-card .card-footer,
.offline-card > div {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

.offline-card img,
.card-header img {
  display: block !important;
  margin: 0 auto 16px auto !important;
  width: 100% !important;
  max-width: 650px !important;
  height: auto !important;
}

.offline-card .badge,
.offline-card [class*="badge"],
.offline-card [class*="circle"],
.offline-card hr,
.offline-card span:empty,
.offline-card div:empty,
.offline-card .alert:empty,
.offline-card #system-message-container:empty {
  display: none !important;
}

.offline-card .btn-close,
.offline-card button.btn-close,
.offline-card [data-bs-dismiss="alert"],
.offline-card .alert::before,
.offline-card .alert::after,
.offline-card joomla-alert::before,
.offline-card joomla-alert::after,
.offline-card .alert-heading,
.offline-card [class*="alert-icon"],
.offline-card [class*="icon"],
.offline-card svg {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
}

.offline-card #system-message-container,
.offline-card joomla-alert,
.offline-card .alert {
  display: block !important;
  background: transparent !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 auto 18px auto !important;
  text-align: center !important;
}

.offline-card .alert-message,
.offline-card .alert p,
.offline-card joomla-alert .alert-message,
.offline-card .alert > div {
  background: transparent !important;
  color: #facc15 !important;
  font-weight: 700 !important;
  font-size: 1.05rem !important;
  text-shadow: 0 0 10px rgba(250, 204, 21, 0.7) !important;
  text-align: center !important;
}

.offline-card h1,
.offline-card h2,
.offline-card h3 {
  font-size: clamp(1.75rem, 5vw, 3rem) !important;
  font-weight: 800 !important;
  letter-spacing: 2px !important;
  color: #ffffff !important;
  text-align: center !important;
  margin-bottom: 8px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
}

.offline-card h1::before,
.offline-card h2::before,
.offline-card h3::before {
  content: "" !important;
  display: inline-block !important;
  width: clamp(28px, 4.5vw, 42px) !important;
  height: clamp(28px, 4.5vw, 42px) !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M7 6c-1-2 0-3 1-4m3 4c-1-2 0-3 1-4m3 4c-1-2 0-3 1-4" stroke="%2371717a" stroke-width="1.2" stroke-linecap="round" stroke-dasharray="1 1.5"/><path d="M5 13.55a11 11 0 0 1 14.08 0" stroke="%23ea580c" stroke-width="2" stroke-linecap="round"/><path d="M1.42 10a16 16 0 0 1 21.16 0" stroke="%23ef4444" stroke-width="2" stroke-linecap="round"/><path d="M8.53 17.11a6 6 0 0 1 6.95 0" stroke="%23f97316" stroke-width="2" stroke-linecap="round"/><circle cx="12" cy="21" r="1.8" fill="%23facc15"/><path d="M12 17c1.5-2 0-3.5 1.5-4.5-1.5.5-2 2-1 4.5z" fill="%23fb923c"/></svg>') !important;
  animation: flameFlicker 1.8s infinite alternate ease-in-out !important;
}

.offline-card h1::after,
.offline-card h2::after,
.offline-card h3::after {
  content: "" !important;
  display: inline-block !important;
  width: clamp(28px, 4.5vw, 42px) !important;
  height: clamp(28px, 4.5vw, 42px) !important;
  background-size: contain !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M6 13c-1.5-2 0-3.5 1.5-4.5-1.8.8-2.2 2.5-1.5 4.5zm6-1c-1-2 0-3.5 1.2-4.5-1.5.6-2 2.2-1.2 4.5zm6 1c-1.2-2 0-3.5 1.5-4.5-1.7.7-2.1 2.3-1.5 4.5z" fill="%23f97316"/><path d="M8 7c-.8-2 0-3 .8-4m4 4c-.8-2 0-3 .8-4m4 4c-.8-2 0-3 .8-4" stroke="%2371717a" stroke-width="1.2" stroke-linecap="round" stroke-dasharray="1 1.5"/><rect width="20" height="7" x="2" y="15" rx="2" stroke="%23ef4444" stroke-width="1.8" fill="%23450a0a"/><circle cx="6" cy="18.5" r="1" fill="%23facc15"/><circle cx="10" cy="18.5" r="1" fill="%23facc15"/><circle cx="14" cy="18.5" r="1" fill="%23facc15"/><circle cx="18" cy="18.5" r="1" fill="%23facc15"/></svg>') !important;
  animation: flameFlicker 2.1s infinite alternate-reverse ease-in-out !important;
}

@keyframes flameFlicker {
  0% { transform: translateY(0) scale(1); filter: drop-shadow(0 0 2px #ef4444); }
  50% { transform: translateY(-1px) scale(1.04); filter: drop-shadow(0 0 5px #f97316); }
  100% { transform: translateY(0) scale(0.98); filter: drop-shadow(0 0 3px #dc2626); }
}

.offline-card p {
  color: #f8fafc !important;
  font-size: clamp(0.85rem, 2.5vw, 1.25rem) !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
  text-align: center !important;
  text-transform: uppercase !important;
  margin-bottom: 24px !important;
}

.offline-card form, form#form-login {
  position: relative !important;
  background: transparent !important;
  border: none !important;
  padding: 10px 0 !important;
}

.offline-card form::before, form#form-login::before {
  content: "" !important;
  position: absolute !important;
  inset: -20px -35px -25px -35px !important;
  z-index: 0 !important;
  border-radius: 28px !important;
  background: radial-gradient(ellipse at center, rgba(234, 88, 12, 0.55) 0%, rgba(220, 38, 38, 0.3) 50%, rgba(0, 0, 0, 0) 80%) !important;
  filter: blur(24px) !important;
  pointer-events: none !important;
  animation: heatPulse 2.5s infinite alternate ease-in-out !important;
}

@keyframes heatPulse {
  0% { opacity: 0.65; transform: scale(0.98); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.75; transform: scale(0.99); }
}

.offline-card label, .offline-card input, .offline-card button, .offline-card .btn-outline-secondary, .offline-card [class*="passkey"] {
  position: relative !important;
  z-index: 1 !important;
}

.offline-card label {
  color: #e2e8f0 !important;
  font-size: 0.95rem !important;
  font-weight: 600 !important;
  margin-bottom: 6px !important;
}

.offline-card input[type="text"], .offline-card input[type="password"] {
  background-color: #121212 !important;
  border: 1px solid #2a2a2a !important;
  border-radius: 8px !important;
  color: #ffffff !important;
  padding: 14px 18px !important;
  margin-bottom: 16px !important;
  -webkit-text-fill-color: #ffffff !important;
}

.offline-card input:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px #121212 inset !important;
  -webkit-text-fill-color: #ffffff !important;
}

.offline-card input[type="text"]:focus, .offline-card input[type="password"]:focus {
  background-color: #181818 !important;
  border-color: #f97316 !important;
  box-shadow: 0 0 12px rgba(249, 115, 22, 0.5) !important;
}

.offline-card .btn-primary, .offline-card button[type="submit"] {
  background-color: #1e3a8a !important;
  border: 1px solid #2563eb !important;
  border-radius: 8px !important;
  font-weight: 600 !important;
  padding: 14px !important;
  width: 100% !important;
  margin-top: 6px !important;
}

/* ==========================================================================
   3. INTERNAL DOCS PORTAL HEADER & SEARCH
   ========================================================================== */
.container-header {
  background: #0f172a !important;
  border-bottom: 2px solid #ea580c !important;
  padding: 18px 24px !important;
}

.container-header h1, .container-header .site-title a {
  color: #ffffff !important;
  font-weight: 800 !important;
  letter-spacing: 1px !important;
}

.container-header .site-description {
  color: #94a3b8 !important;
}

.container-header .mod-menu a {
  color: #e2e8f0 !important;
  font-weight: 600 !important;
}

.container-header .mod-menu a:hover,
.container-header .mod-menu .active a {
  color: #f97316 !important;
}

/* High-Contrast Search Bar */
.container-header .form-control,
.container-header input[type="search"],
.container-header input[type="text"] {
  background-color: #1e293b !important;
  border: 1px solid #475569 !important;
  color: #ffffff !important;
  border-radius: 8px !important;
  padding: 10px 16px !important;
  font-size: 0.95rem !important;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.4) !important;
}

.container-header input::placeholder,
.container-header .form-control::placeholder {
  color: #94a3b8 !important;
  opacity: 1 !important;
}

.container-header .form-control:focus,
.container-header input[type="search"]:focus,
.container-header input[type="text"]:focus {
  background-color: #0f172a !important;
  border-color: #f97316 !important;
  box-shadow: 0 0 10px rgba(249, 115, 22, 0.5) !important;
  outline: none !important;
}

/* ==========================================================================
   4. BREADCRUMBS WITH EMBER ACCENTS
   ========================================================================== */
.breadcrumb {
  background: transparent !important;
  padding: 8px 0 !important;
  margin-bottom: 20px !important;
  font-size: 0.9rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
}

.breadcrumb-item {
  color: #64748b !important;
  display: inline-flex !important;
  align-items: center !important;
}

.breadcrumb-item + .breadcrumb-item::before {
  content: "/" !important;
  color: #ea580c !important;
  font-weight: 700 !important;
  padding-right: 8px !important;
}

.breadcrumb-item a {
  color: #94a3b8 !important;
  text-decoration: none !important;
  font-weight: 500 !important;
  transition: color 0.15s ease !important;
}

.breadcrumb-item a:hover {
  color: #f97316 !important;
}

.breadcrumb-item.active {
  color: #f1f5f9 !important;
  font-weight: 600 !important;
}

/* ==========================================================================
   5. SIDEBAR INDEX, COLLAPSE ENGINE & CARD DARK THEME OVERRIDE
   ========================================================================== */
.container-sidebar-left {
  transition: all 0.3s ease !important;
}

/* When collapsed, hide sidebar and expand main content to full width */
body.sidebar-collapsed .container-sidebar-left {
  display: none !important;
}

body.sidebar-collapsed .site-grid {
  grid-template-columns: 1fr !important;
  grid-template-areas: "main" !important;
}

body.sidebar-collapsed .container-component {
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
}

/* Force Cassiopeia style="card" modules to dark theme */
.container-sidebar-left .card,
.container-sidebar-left .card-body,
.container-sidebar-left .card-header {
  background-color: #0f172a !important;
  background: #0f172a !important;
  border-color: #334155 !important;
  color: #f8fafc !important;
}

.container-sidebar-left .card {
  border-radius: 10px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4) !important;
}

.container-sidebar-left .card-header {
  border-bottom: 1px solid #334155 !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
}

/* Collapse Button inside Sidebar Header with Cyan Glow */
#sidebar_toggle_btn {
  background: transparent !important;
  border: 1px solid transparent !important;
  color: #38bdf8 !important;
  font-size: 18px !important;
  font-weight: bold !important;
  cursor: pointer !important;
  padding: 0 6px !important;
  border-radius: 4px !important;
  line-height: 1 !important;
  transition: all 0.2s ease !important;
}

#sidebar_toggle_btn:hover {
  background-color: #0f172a !important;
  border-color: #38bdf8 !important;
  color: #ffffff !important;
  text-shadow: 0 0 10px #38bdf8, 0 0 20px #38bdf8, 0 0 30px #38bdf8 !important;
  box-shadow: 0 0 12px rgba(56, 189, 248, 0.5) !important;
}

/* Floating Edge Expand Button with Cyan Glow */
#sidebar_expand_btn {
  position: fixed !important;
  top: 135px !important;
  left: 0px !important;
  z-index: 99999 !important;
  background-color: #0f172a !important;
  color: #38bdf8 !important;
  border: 1px solid #334155 !important;
  border-left: none !important;
  padding: 8px 10px 8px 6px !important;
  border-radius: 0 6px 6px 0 !important;
  cursor: pointer !important;
  font-size: 16px !important;
  font-weight: bold !important;
  box-shadow: 2px 2px 10px rgba(0, 0, 0, 0.5) !important;
  display: none !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.2s ease !important;
}

body.sidebar-collapsed #sidebar_expand_btn {
  display: flex !important;
}

#sidebar_expand_btn:hover {
  background-color: #1e293b !important;
  border-color: #38bdf8 !important;
  color: #ffffff !important;
  text-shadow: 0 0 10px #38bdf8, 0 0 20px #38bdf8, 0 0 30px #38bdf8 !important;
  box-shadow: 0 0 15px rgba(56, 189, 248, 0.6) !important;
}

.container-sidebar-left .card-body a {
  color: #cbd5e1 !important;
  text-decoration: none !important;
  display: block !important;
  padding: 6px 0 !important;
  font-weight: 500 !important;
  transition: all 0.15s ease !important;
}

.container-sidebar-left .card-body a:hover {
  color: #f97316 !important;
  transform: translateX(4px) !important;
}

/* ==========================================================================
   6. CATEGORY LIST TABLES (Dark Theme Override)
   ========================================================================== */
.com-content-category,
.category-list,
.com-content-category__table {
  background: transparent !important;
}

table,
table.category,
.com-content-category table,
.table-striped,
.table {
  --bs-table-bg: transparent !important;
  --bs-table-striped-bg: transparent !important;
  --bs-table-color: #f8fafc !important;
  background-color: #0f172a !important;
  border: 1px solid #334155 !important;
  border-radius: 10px !important;
  overflow: hidden !important;
  width: 100% !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.6) !important;
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

table > :not(caption) > * > *,
.table-striped > tbody > tr:nth-of-type(odd) > *,
.table-striped > tbody > tr:nth-of-type(even) > *,
table.category tbody tr td,
.com-content-category tbody tr td {
  background-color: #0f172a !important;
  color: #f8fafc !important;
  border-bottom: 1px solid #334155 !important;
  border-top: none !important;
  padding: 16px 20px !important;
  vertical-align: middle !important;
  box-shadow: none !important;
}

table.category thead tr th,
.com-content-category thead tr th {
  background-color: #1e293b !important;
  color: #ea580c !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  font-size: 0.85rem !important;
  letter-spacing: 1px !important;
  padding: 14px 20px !important;
  border-bottom: 2px solid #334155 !important;
  border-top: none !important;
}

table tbody tr:hover td {
  background-color: #1e293b !important;
}

/* Document Title Links */
table.category tbody td a,
.com-content-category table tbody td a,
.table tbody td a,
table td a {
  color: #f8fafc !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 10px !important;
  transition: color 0.15s ease, transform 0.15s ease !important;
}

table.category tbody td a::before,
.com-content-category table tbody td a::before,
.table tbody td a::before {
  content: "📄";
  font-size: 0.95rem;
  opacity: 0.85;
}

table.category tbody td a:hover,
.com-content-category table tbody td a:hover,
.table tbody td a:hover,
table td a:hover {
  color: #f97316 !important;
  text-decoration: none !important;
  transform: translateX(4px) !important;
}

/* Table Header Sorting Links */
table.category thead th a,
.com-content-category society th a,
.table thead th a,
table th a {
  color: #ea580c !important;
  text-decoration: none !important;
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
}

table.category thead th a:hover,
.com-content-category thead th a:hover {
  color: #fb923c !important;
}

/* Action / Edit Buttons */
table.category .btn,
.com-content-category .btn {
  background-color: #1e293b !important;
  border: 1px solid #475569 !important;
  color: #cbd5e1 !important;
  font-size: 0.85rem !important;
  padding: 6px 14px !important;
  border-radius: 6px !important;
}

table.category .btn:hover {
  background-color: #334155 !important;
  border-color: #f97316 !important;
  color: #ffffff !important;
}

/* New Article Button */
.btn-primary:not(.offline-card *) {
  background-color: #1e293b !important;
  border: 1px solid #475569 !important;
  color: #e2e8f0 !important;
  border-radius: 6px !important;
  font-weight: 600 !important;
  padding: 8px 16px !important;
  margin-top: 14px !important;
}

.btn-primary:not(.offline-card *):hover {
  background-color: #334155 !important;
  border-color: #ea580c !important;
  color: #ffffff !important;
}

/* ==========================================================================
   7. DASHBOARD QUICK LINK CARDS
   ========================================================================== */
.card.bg-dark {
  background-color: #0f172a !important;
  border: 1px solid #334155 !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4) !important;
}

.card.bg-dark ul,
.card.bg-dark li,
.card.bg-dark p {
  color: #cbd5e1 !important;
  font-size: 0.95rem !important;
  line-height: 1.6 !important;
}

.card.bg-dark strong {
  color: #ffffff !important;
  font-weight: 700 !important;
}

.card.bg-dark h3 {
  font-weight: 700 !important;
  letter-spacing: 0.5px !important;
}

.card.bg-dark h3.text-warning {
  color: #fb923c !important;
}

.card.bg-dark h3.text-info {
  color: #38bdf8 !important;
}

/* ==========================================================================
   8. DARK TAG BADGES
   ========================================================================== */
.tags a,
.tag-badge,
.badge.bg-info,
.badge.bg-secondary {
  background-color: #1e293b !important;
  border: 1px solid #475569 !important;
  color: #f97316 !important;
  text-decoration: none !important;
  font-weight: 600 !important;
  padding: 4px 10px !important;
  border-radius: 6px !important;
  display: inline-block !important;
  margin: 2px 4px 2px 0 !important;
  transition: all 0.15s ease !important;
}

.tags a:hover {
  background-color: #334155 !important;
  border-color: #ea580c !important;
  color: #ffffff !important;
}

/* ==========================================================================
   9. CLI CODE BLOCKS & COPY BUTTON
   ========================================================================== */
pre {
  position: relative !important;
  padding: 2.25rem 1.25rem 1.25rem 1.25rem !important;
  background-color: #0b1120 !important;
  border: 1px solid #334155 !important;
  border-radius: 8px !important;
  overflow-x: auto !important;
}

.code-copy-btn {
  position: absolute !important;
  top: 8px !important;
  right: 8px !important;
  background-color: #1e293b !important;
  color: #94a3b8 !important;
  border: 1px solid #475569 !important;
  border-radius: 5px !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  padding: 4px 8px !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  transition: all 0.2s ease !important;
  user-select: none !important;
  z-index: 10 !important;
}

.code-copy-btn:hover {
  background-color: #334155 !important;
  color: #f8fafc !important;
  border-color: #f97316 !important;
}

.code-copy-btn.copied {
  background-color: #065f46 !important;
  color: #34d399 !important;
  border-color: #10b981 !important;
}

/* ==========================================================================
   10. AUTO TABLE OF CONTENTS (TOC) COMPONENT
   ========================================================================== */
.runbook-toc {
  background-color: #0b1120 !important;
  border: 1px solid #334155 !important;
  border-left: 4px solid #f97316 !important;
  border-radius: 8px !important;
  padding: 1.25rem 1.5rem !important;
  margin: 1.5rem 0 2rem 0 !important;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.4) !important;
}

.runbook-toc-title {
  color: #f1f5f9 !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.05em !important;
  margin-bottom: 0.75rem !important;
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.runbook-toc-list,
.runbook-toc ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin-bottom: 0 !important;
}

.runbook-toc-list li,
.runbook-toc li {
  padding: 5px 0 !important;
}

.runbook-toc-list li a,
.runbook-toc li a,
.runbook-toc a {
  color: #e2e8f0 !important;
  text-decoration: none !important;
  font-size: 0.95rem !important;
  font-weight: 500 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  transition: all 0.15s ease !important;
}

.runbook-toc-list li a::before,
.runbook-toc a::before {
  content: "›" !important;
  color: #f97316 !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
}

.runbook-toc-list li a:hover,
.runbook-toc li a:hover,
.runbook-toc a:hover {
  color: #f97316 !important;
  transform: translateX(4px) !important;
}

/* ==========================================================================
   11. SMART SEARCH TAG CLOUD & FILTER CHIPS
   ========================================================================== */
.tagspopular ul,
.tagssimilar ul {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 6px !important;
  padding-left: 0 !important;
  list-style: none !important;
  margin-bottom: 0 !important;
}

.tagspopular ul li,
.tagssimilar ul li {
  margin: 0 !important;
  padding: 0 !important;
}

.tagspopular ul li a,
.tagssimilar ul li a {
  display: inline-flex !important;
  align-items: center !important;
  gap: 4px !important;
  background-color: #1e293b !important;
  color: #94a3b8 !important;
  border: 1px solid #334155 !important;
  border-radius: 6px !important;
  padding: 4px 10px !important;
  font-size: 0.8rem !important;
  font-weight: 600 !important;
  text-decoration: none !important;
  transition: all 0.2s ease-in-out !important;
}

.tagspopular ul li a:hover,
.tagssimilar ul li a:hover {
  background-color: rgba(249, 115, 22, 0.15) !important;
  color: #f97316 !important;
  border-color: #f97316 !important;
  transform: translateY(-1px) !important;
}

.tagspopular ul li a .badge,
.tagspopular ul li a span {
  background-color: #0f172a !important;
  color: #cbd5e1 !important;
  font-size: 0.7rem !important;
  padding: 2px 6px !important;
  border-radius: 4px !important;
  margin-left: 4px !important;
}

/* ==========================================================================
   12. MASTER TECHNICAL CATALOG (SCREEN & PRINT ENGINE)
   ========================================================================== */
.catalog-container {
  color: #f8f9fa;
  width: 100%;
}

.catalog-header {
  border-bottom: 3px solid #ffc107;
  padding-bottom: 1rem;
  margin-bottom: 1.5rem;
}

.table-catalog {
  font-size: 0.85rem;
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 2rem;
}

.table-catalog .section-head th {
  background-color: #212529 !important;
  color: #ffc107 !important;
  font-size: 0.95rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 0.75rem 0.8rem !important;
  border-left: 4px solid #ffc107 !important;
  text-align: left !important;
}

.table-catalog .col-head th {
  background-color: #1a1d20 !important;
  color: #dee2e6 !important;
  font-weight: 600;
  text-transform: uppercase;
  font-size: 0.75rem;
  white-space: nowrap;
  padding: 0.5rem 0.6rem !important;
  border: 1px solid #373b3e !important;
}

.table-catalog td {
  border: 1px solid #373b3e;
  padding: 0.55rem 0.65rem;
  vertical-align: middle;
}

/* Topology Diagram Wide-Screen Proportion Constraints */
#topology_diagram_container {
  max-height: 620px !important;
}
#main_topology_svg {
  max-height: 600px !important;
  height: auto !important;
}

/* ==========================================================================
   13. ITALFREDO & NEXWAVE SPLIT-SCREEN HOMEPAGE
   ========================================================================== */
.italfredo-split-wrapper {
  display: flex;
  width: 100vw;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 99999;
  background-color: #05070c;
  overflow: hidden;
}

.split-pane {
  flex: 1;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none !important;
  color: #ffffff !important;
  overflow: hidden;
  transition: flex 0.5s cubic-bezier(0.25, 1, 0.5, 1), filter 0.3s ease;
}

.split-pane:hover {
  flex: 1.3;
}

.left-pane {
  background: radial-gradient(circle at center, #0f172a 0%, #05070c 100%);
  border-right: 1px solid #1e293b;
}

.fiber-stars {
  position: absolute;
  top: -100%; left: -100%; width: 300%; height: 300%;
  background-image: 
      radial-gradient(2px 2px at 40px 60px, #ff1493 50%, transparent),
      radial-gradient(2px 2px at 200px 150px, #ffffff 50%, transparent),
      radial-gradient(3px 3px at 90px 250px, #00ffff 50%, transparent),
      radial-gradient(2px 2px at 300px 80px, #ff1493 50%, transparent),
      radial-gradient(2px 2px at 150px 300px, #ffffff 50%, transparent),
      radial-gradient(2px 2px at 250px 220px, #00ffff 50%, transparent);
  background-size: 350px 350px;
  animation: fiberDrift 60s linear infinite;
  opacity: 0.4;
  z-index: 0;
  pointer-events: none;
}

@keyframes fiberDrift {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-350px) rotate(15deg); }
}

.left-pane:hover {
  background: radial-gradient(circle at center, #1e293b 0%, #05070c 100%);
}

.left-pane:hover .fiber-stars {
  opacity: 0.7;
}

.right-pane {
  background: radial-gradient(circle at center, #020817 0%, #000000 100%);
  position: relative;
}

/* Animated Matrix Data-Vortex / Black Hole Background on Right Pane */
.right-pane::before {
  content: "";
  position: absolute;
  top: -50%; left: -50%; width: 200%; height: 200%;
  background-image: 
    radial-gradient(circle at center, rgba(0, 255, 128, 0.15) 0%, transparent 60%),
    linear-gradient(rgba(0, 255, 128, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 255, 128, 0.05) 1px, transparent 1px);
  background-size: 100% 100%, 30px 30px, 30px 30px;
  animation: matrixVortex 20s linear infinite;
  pointer-events: none;
  z-index: 1;
}

@keyframes matrixVortex {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(180deg) scale(1.15); }
  100% { transform: rotate(360deg) scale(1); }
}

.right-pane:hover::before {
  animation-duration: 10s;
}

.pane-content {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: 40px;
  max-width: 600px;
}

.globe-container {
  width: 350px;
  height: 350px;
  margin: 0 auto 40px auto;
  position: relative;
  transform-style: preserve-3d;
  animation: floatGlobe 6s ease-in-out infinite;
}

.globe-sphere {
  position: absolute;
  top: 0; left: 0; width: 100%; height: 100%;
  border-radius: 50%;
  background-color: #05070c;
  box-shadow: 
    inset -40px -40px 60px rgba(0, 0, 0, 0.9), 
    inset 15px 15px 40px rgba(255, 20, 147, 0.5), 
    inset -15px -15px 40px rgba(0, 255, 255, 0.3), 
    -20px -20px 60px rgba(255, 20, 147, 0.3), 
    20px 20px 60px rgba(0, 255, 255, 0.3);
  overflow: hidden;
  z-index: 10;
}

.globe-sphere::before {
  content: "";
  position: absolute;
  top: -50%; left: -50%; width: 200%; height: 200%;
  background-image: 
    linear-gradient(rgba(0, 255, 255, 0.08) 1px, transparent 1px),
    linear-gradient(90deg, rgba(0, 255, 255, 0.08) 1px, transparent 1px);
  background-size: 20px 20px;
  border-radius: 50%;
  animation: spinGrid 25s linear infinite;
}

.globe-logo {
  position: absolute;
  top: 50%; 
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 15;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  animation: electricFlicker 4s infinite;
}

.logo-w-left {
  position: absolute;
  font-family: 'Arial Black', Impact, sans-serif;
  font-size: 150px;
  font-weight: 900;
  font-style: italic;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 4px rgba(0, 255, 255, 0.8);
  z-index: 1;
  transform: translateX(-40px) translateY(10px);
  clip-path: polygon(0 0, 52% 0, 52% 100%, 0 100%);
}

.logo-n {
  font-family: 'Arial Black', Impact, sans-serif;
  font-size: 160px;
  font-weight: 900;
  font-style: italic;
  line-height: 1;
  color: #ffffff;
  position: relative;
  z-index: 2;
}

.logo-w-right {
  position: absolute;
  font-family: 'Arial Black', Impact, sans-serif;
  font-size: 150px;
  font-weight: 900;
  font-style: italic;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 4px rgba(0, 255, 255, 0.95);
  text-shadow: 0 0 15px rgba(0, 255, 255, 0.5);
  z-index: 3;
  transform: translateX(45px) translateY(10px);
  clip-path: polygon(52% 0, 100% 0, 100% 100%, 52% 100%);
}

@keyframes electricFlicker {
  0%, 100% { opacity: 1; filter: drop-shadow(0 0 10px #00ffff) drop-shadow(0 0 20px #00ffff) drop-shadow(0 0 50px #ea580c); }
  92% { opacity: 1; filter: drop-shadow(0 0 10px #00ffff) drop-shadow(0 0 20px #00ffff) drop-shadow(0 0 50px #ea580c); }
  93% { opacity: 0.6; filter: none; }
  94% { opacity: 1; filter: drop-shadow(0 0 15px #ff1493) drop-shadow(0 0 30px #ff1493); }
  95% { opacity: 0.4; filter: none; }
  96% { opacity: 1; filter: drop-shadow(0 0 10px #00ffff) drop-shadow(0 0 20px #00ffff) drop-shadow(0 0 50px #ea580c); }
}

.orbit-ring {
  position: absolute;
  top: -10%; left: -10%; width: 120%; height: 120%;
  border-radius: 50%;
  transform-style: preserve-3d;
  pointer-events: none;
  z-index: 5;
}

.data-packet {
  position: absolute;
  top: -4px; left: 50%;
  width: 8px; height: 8px;
  border-radius: 50%;
  margin-left: -4px;
}
.data-packet.sm { background: #facc15; box-shadow: 0 0 15px #facc15, 0 0 30px #facc15; }
.data-packet.mm { background: #00ffff; box-shadow: 0 0 15px #00ffff, 0 0 30px #00ffff; }

.ring-sm-1 { border: 4px solid rgba(250, 204, 21, 0.4); animation: rotateRingX 12s linear infinite; }
.ring-mm-1 { border: 4px solid rgba(0, 255, 255, 0.3); animation: rotateRingY 16s linear infinite; }
.ring-sm-2 { border-top: 5px solid rgba(250, 204, 21, 0.7); border-bottom: 5px solid transparent; border-left: 5px solid transparent; border-right: 5px solid transparent; animation: rotateRingZ 9s linear infinite; filter: drop-shadow(0 0 12px #facc15); }
.ring-mm-2 { border: 3px dashed rgba(0, 255, 255, 0.6); animation: rotateRingDiag 14s linear infinite; }

.satellite {
  position: absolute;
  top: 50%; left: 50%;
  width: 44px; height: 44px;
  margin: -22px 0 0 -22px;
  border-radius: 50%;
  background: rgba(15, 23, 42, 0.95);
  border: 2px solid;
  display: flex; align-items: center; justify-content: center;
  color: #ffffff;
  pointer-events: none;
}
.satellite svg { width: 22px; height: 22px; stroke: currentColor; }

.sat-server { animation: satOrbit1 14s linear infinite; border-color: #facc15; box-shadow: 0 0 15px rgba(250,204,21,0.8); color: #facc15; }
@keyframes satOrbit1 {
  0% { transform: rotateY(0deg) translateX(250px) rotateY(0deg); z-index: 20; }
  25% { z-index: 5; }
  50% { transform: rotateY(180deg) translateX(250px) rotateY(-180deg); z-index: 5; }
  75% { z-index: 20; }
  100% { transform: rotateY(360deg) translateX(250px) rotateY(-360deg); z-index: 20; }
}

.sat-wifi { animation: satOrbit2 18s linear infinite; border-color: #00ffff; box-shadow: 0 0 15px rgba(0,255,255,0.8); color: #00ffff; }
@keyframes satOrbit2 {
  0% { transform: rotateZ(20deg) rotateY(0deg) translateX(270px) rotateY(0deg) rotateZ(-20deg); z-index: 20; }
  25% { z-index: 5; }
  50% { transform: rotateZ(20deg) rotateY(180deg) translateX(270px) rotateY(-180deg) rotateZ(-20deg); z-index: 5; }
  75% { z-index: 20; }
  100% { transform: rotateZ(20deg) rotateY(360deg) translateX(270px) rotateY(-360deg) rotateZ(-20deg); z-index: 20; }
}

.sat-dish { animation: satOrbit3 22s linear infinite; border-color: #ff1493; box-shadow: 0 0 15px rgba(255,20,147,0.8); color: #ff1493; }
@keyframes satOrbit3 {
  0% { transform: rotateZ(-30deg) rotateY(0deg) translateX(240px) rotateY(0deg) rotateZ(30deg); z-index: 20; }
  25% { z-index: 20; }
  50% { transform: rotateZ(-30deg) rotateY(-180deg) translateX(240px) rotateY(180deg) rotateZ(30deg); z-index: 5; }
  75% { z-index: 5; }
  100% { transform: rotateZ(-30deg) rotateY(-360deg) translateX(240px) rotateY(360deg) rotateZ(30deg); z-index: 20; }
}

.sat-db { animation: satOrbit4 26s linear infinite; border-color: #38bdf8; box-shadow: 0 0 15px rgba(56,189,248,0.8); color: #38bdf8; }
@keyframes satOrbit4 {
  0% { transform: rotateX(65deg) rotateZ(0deg) translateX(280px) rotateZ(0deg) rotateX(-65deg); z-index: 20; }
  25% { z-index: 5; }
  50% { transform: rotateX(65deg) rotateZ(180deg) translateX(280px) rotateZ(-180deg) rotateX(-65deg); z-index: 5; }
  75% { z-index: 20; }
  100% { transform: rotateX(65deg) rotateZ(360deg) translateX(280px) rotateZ(-360deg) rotateX(-65deg); z-index: 20; }
}

.sat-cloud { animation: satOrbit5 20s linear infinite; border-color: #d946ef; box-shadow: 0 0 15px rgba(217,70,239,0.8); color: #d946ef; }
@keyframes satOrbit5 {
  0% { transform: rotateZ(45deg) rotateY(0deg) translateX(260px) rotateY(0deg) rotateZ(-45deg); z-index: 20; }
  25% { z-index: 5; }
  50% { transform: rotateZ(45deg) rotateY(180deg) translateX(260px) rotateY(-180deg) rotateZ(-45deg); z-index: 5; }
  75% { z-index: 20; }
  100% { transform: rotateZ(45deg) rotateY(360deg) translateX(260px) rotateY(-360deg) rotateZ(-45deg); z-index: 20; }
}

.sat-lock { animation: satOrbit6 16s linear infinite; border-color: #10b981; box-shadow: 0 0 15px rgba(16,185,129,0.8); color: #10b981; }
@keyframes satOrbit6 {
  0% { transform: rotateX(25deg) rotateY(0deg) translateX(230px) rotateY(0deg) rotateX(-25deg); z-index: 20; }
  25% { z-index: 5; }
  50% { transform: rotateX(25deg) rotateY(-180deg) translateX(230px) rotateY(180deg) rotateX(-25deg); z-index: 5; }
  75% { z-index: 20; }
  100% { transform: rotateX(25deg) rotateY(-360deg) translateX(230px) rotateY(360deg) rotateX(-25deg); z-index: 20; }
}

.sat-cpu { animation: satOrbit7 24s linear infinite; border-color: #f97316; box-shadow: 0 0 15px rgba(249,115,22,0.8); color: #f97316; }
@keyframes satOrbit7 {
  0% { transform: rotateZ(-55deg) rotateY(0deg) translateX(290px) rotateY(0deg) rotateZ(55deg); z-index: 20; }
  25% { z-index: 20; }
  50% { transform: rotateZ(-55deg) rotateY(-180deg) translateX(290px) rotateY(180deg) rotateZ(55deg); z-index: 5; }
  75% { z-index: 5; }
  100% { transform: rotateZ(-55deg) rotateY(-360deg) translateX(290px) rotateY(360deg) rotateZ(55deg); z-index: 20; }
}

.sat-activity { animation: satOrbit8 28s linear infinite; border-color: #ef4444; box-shadow: 0 0 15px rgba(239,68,68,0.8); color: #ef4444; }
@keyframes satOrbit8 {
  0% { transform: rotateX(-50deg) rotateY(0deg) translateX(245px) rotateY(0deg) rotateX(50deg); z-index: 20; }
  25% { z-index: 20; }
  50% { transform: rotateX(-50deg) rotateY(180deg) translateX(245px) rotateY(-180deg) rotateX(50deg); z-index: 5; }
  75% { z-index: 5; }
  100% { transform: rotateX(-50deg) rotateY(360deg) translateX(245px) rotateY(-360deg) rotateX(50deg); z-index: 20; }
}

@keyframes rotateRingX { 0% { transform: rotateX(70deg) rotateY(0deg) rotateZ(0deg); } 100% { transform: rotateX(70deg) rotateY(360deg) rotateZ(360deg); } }
@keyframes rotateRingY { 0% { transform: rotateX(110deg) rotateY(0deg) rotateZ(0deg); } 100% { transform: rotateX(110deg) rotateY(360deg) rotateZ(0deg); } }
@keyframes rotateRingZ { 0% { transform: rotateX(45deg) rotateY(45deg) rotateZ(0deg); } 100% { transform: rotateX(45deg) rotateY(45deg) rotateZ(360deg); } }
@keyframes rotateRingDiag { 0% { transform: rotateX(135deg) rotateY(0deg) rotateZ(45deg); } 100% { transform: rotateX(135deg) rotateY(360deg) rotateZ(45deg); } }
@keyframes spinGrid { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes floatGlobe { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-15px); } }

/* ==========================================================================
   RIGHT PANE: PERFECTLY CENTERED EMBLEM (Matches Left Pane 350px Scale)
   ========================================================================== */
.italfredo-logo-img {
  width: 350px;
  height: 350px;
  object-fit: contain;
  margin: 0 auto 40px auto;
  display: block;
  border-radius: 0;
  border: none;
  background: transparent;
  filter: drop-shadow(0 0 25px rgba(0, 255, 128, 0.45));
}

.split-pane h2 {
  font-size: clamp(1.8rem, 3vw, 2.5rem);
  font-weight: 800;
  letter-spacing: 1px;
  margin-bottom: 12px;
  color: #f8fafc !important;
}

.split-pane p {
  color: #94a3b8;
  font-size: 1rem;
  margin-bottom: 24px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.pane-cta {
  display: inline-block;
  padding: 10px 24px;
  background-color: rgba(30, 41, 59, 0.8);
  border: 1px solid #475569;
  border-radius: 8px;
  color: #38bdf8;
  font-weight: 600;
  transition: all 0.2s ease;
}

.split-pane:hover .pane-cta {
  background-color: #ea580c;
  border-color: #f97316;
  color: #ffffff;
  box-shadow: 0 0 15px rgba(234, 88, 12, 0.6);
}

@media (max-width: 768px) {
  .italfredo-split-wrapper {
    flex-direction: column;
    height: auto;
    position: relative;
  }
  .split-pane {
    padding: 60px 20px;
    min-height: 50vh;
  }
  .globe-container,
  .italfredo-logo-img {
    width: 220px;
    height: 220px;
  }
  .logo-n { font-size: 100px; }
  .logo-w-left, .logo-w-right { font-size: 90px; -webkit-text-stroke: 3px rgba(0, 255, 255, 0.9); }
  .satellite {
    width: 32px;
    height: 32px;
    margin: -16px 0 0 -16px;
  }
  .satellite svg {
    width: 16px;
    height: 16px;
  }
}

/* ==========================================================================
   14. HIGH-PRECISION PRINT & PDF GENERATION RULES
   ========================================================================== */
@media print {
  @page {
    size: letter portrait;
    margin: 0.35in !important;
  }

  html, body, .site, .site-grid, .container-component, 
  .container-main, main, #content, .com-content-article, .item-page {
    display: block !important;
    position: static !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #ffffff !important;
    color: #000000 !important;
    font-size: 6.5pt !important;
    line-height: 1.15 !important;
  }

  header, footer, nav, .navbar, .sidebar, aside,
  .container-header, .container-sidebar-left, .container-sidebar-right,
  .sidebar-left, .sidebar-right, .tagspopular, .tagssimilar,
  .btn, .breadcrumb, #sp-header, #sp-footer, .header, .footer, 
  .visually-hidden, .btn-toolbar, .btn-group, .icon-edit, 
  a[href*="task=article.edit"], [class*="badge-"], .icons, 
  dl.article-info, .runbook-toc, .offline-card form, button, 
  a[href^="javascript:"], .italfredo-split-wrapper {
    display: none !important;
    height: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .catalog-container {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .catalog-header {
    display: block !important;
    border-bottom: 1.5pt solid #000000 !important;
    margin-bottom: 0.35rem !important;
    padding-bottom: 0.2rem !important;
    page-break-after: avoid !important;
    break-after: avoid !important;
  }

  .catalog-header h1 {
    font-size: 11pt !important;
    color: #000000 !important;
    math-style: normal !important;
    margin: 0 !important;
    font-weight: bold !important;
  }

  .catalog-header p {
    font-size: 7pt !important;
    color: #333333 !important;
    margin: 2pt 0 0 0 !important;
  }

  .table-catalog {
    display: table !important;
    table-layout: fixed !important;
    width: 100% !important;
    border-collapse: collapse !important;
    margin-top: 0.2rem !important;
    margin-bottom: 0.35rem !important;
    color: #000000 !important;
  }

  .table-catalog th, 
  .table-catalog td {
    word-wrap: break-word !important;
    orphan: 2 !important;
  }

  .table-catalog th {
    background-color: #e9ecef !important;
    color: #000000 !important;
    border: 0.5pt solid #adb5bd !important;
    font-size: 6.5pt !important;
    font-weight: bold !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }

  .table-catalog td {
    background-color: #ffffff !important;
    color: #000000 !important;
    border: 0.5pt solid #dee2e6 !important;
  }

  .table-catalog tr {
    page-grid-inside: avoid !important;
    break-inside: avoid !important;
  }

  .catalog-footer {
    display: flex !important;
    flex-direction: row !important;
    justify-content: space-between !important;
    width: 100% !important;
    white-space: nowrap !important;
    font-size: 6.5pt !important;
    border-top: 0.5pt solid #000000 !important;
    padding-top: 3pt !important;
    margin-top: 6pt !important;
  }
}