/* ============================================================
   circetapp shared shell (20260611)
   Injected by nginx into every module so navbar brand, footer
   and feedback tab look identical across the whole portal.
   ============================================================ */

/* ---- Navbar brand ---- */
.cx-brand { display: inline-flex !important; align-items: center; gap: 12px; padding-top: 2px; padding-bottom: 2px; text-decoration: none; }
.cx-brand-logo { display: block; height: 26px !important; width: auto !important; margin: 0 !important; }
.cx-brand-sep { width: 1px; height: 20px; background: rgba(255,255,255,.22); border-radius: 1px; }
.cx-brand-text { font-weight: 700; font-size: 1.08rem; letter-spacing: .01em; color: #fff; line-height: 1; font-family: 'Segoe UI', system-ui, -apple-system, sans-serif; }
.cx-brand-accent { color: #E8792B; font-weight: 600; }
.cx-brand:hover .cx-brand-accent { color: #ff9a4d; }
.cx-brand:hover { color: #fff; }
.cx-brand, .cx-brand:hover, .cx-brand:focus { text-decoration: none !important; }
.cx-brand:hover .cx-brand-text, .cx-brand:focus .cx-brand-text { color: #fff; text-decoration: none !important; }

/* ---- Shared footer ---- */
.cx-footer { position: relative; margin-top: auto; background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%); color: rgba(255,255,255,.6); }
.cx-footer::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, #E8792B, rgba(232,121,43,.15) 55%, rgba(232,121,43,0)); }
.cx-footer-inner { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 24px; }
.cx-footer-brand { display: inline-flex; align-items: center; gap: 10px; }
.cx-footer-dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(255,255,255,.3); }
.cx-footer-copy { font-size: .78rem; color: rgba(255,255,255,.45); }
.cx-footer-tag { display: inline-flex; align-items: center; gap: 8px; font-size: .74rem; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: rgba(255,255,255,.35); }
.cx-footer-pulse { width: 7px; height: 7px; border-radius: 50%; background: #E8792B; box-shadow: 0 0 0 0 rgba(232,121,43,.55); animation: cxPulse 3.2s ease-out infinite; }
@keyframes cxPulse { 0% { box-shadow: 0 0 0 0 rgba(232,121,43,.55); } 70% { box-shadow: 0 0 0 7px rgba(232,121,43,0); } 100% { box-shadow: 0 0 0 0 rgba(232,121,43,0); } }
@media (max-width: 576px) { .cx-footer-inner { flex-direction: column; gap: 6px; padding: 12px 16px; } }

/* ---- Navbar normalisation: keep menu pills vertically centered across modules ---- */
@media (min-width: 992px) {
  .navbar .navbar-collapse { align-items: center; }
  .navbar .navbar-nav { align-items: center; }
  .navbar .navbar-nav .nav-link { display: inline-flex; align-items: center; gap: 6px; }
}

/* ---- Page scaffold helper: pins the shared footer to the bottom of the viewport ---- */
.cx-body-flex { display: flex; flex-direction: column; min-height: 100vh; }
/* ---- Accent armor: survives local 'navbar-brand * { color:#fff !important }' rules ---- */
.cx-brand .cx-brand-text { color: #fff !important; }
.cx-brand .cx-brand-accent { color: #E8792B !important; }
.cx-brand:hover .cx-brand-accent, .cx-brand:focus .cx-brand-accent { color: #ff9a4d !important; }
