@charset "UTF-8";

/*
|--------------------------------------------------------------------------
| الملف: public_html/assets/css/shared/components/breadcrumbs.css
| الوصف:
|   أنماط مسار التنقل (Breadcrumbs) المشتركة في المنصة.
|
| الهدف:
|   - توحيد شكل وسلوك مسارات التنقل في جميع صفحات المنصة.
|   - دعم الروابط، العنصر الحالي، الفواصل، والأيقونات.
|   - دعم الأحجام المختلفة والعرض الأفقي والالتفاف عند الحاجة.
|   - دعم responsive behavior للشاشات الصغيرة بشكل عملي واحترافي.
|
| القواعد:
|   - هذا الملف خاص بمكونات breadcrumbs فقط.
|   - لا توضع فيه أنماط صفحات.
|   - لا توضع فيه أنماط layout عامة.
|   - يعتمد على tokens.css و base.css.
|--------------------------------------------------------------------------
*/

/* -------------------------------------------------------------------------
 * Base Breadcrumbs
 * ---------------------------------------------------------------------- */
.breadcrumbs {
  --breadcrumbs-gap: var(--space-2);
  --breadcrumbs-padding-x: 0;
  --breadcrumbs-padding-y: 0;
  --breadcrumbs-bg: transparent;
  --breadcrumbs-border: transparent;
  --breadcrumbs-radius: var(--radius-lg);
  --breadcrumbs-text: var(--color-text-muted);
  --breadcrumbs-link: var(--color-text-secondary);
  --breadcrumbs-link-hover: var(--color-text-primary);
  --breadcrumbs-current: var(--color-text-primary);
  --breadcrumbs-separator: var(--color-text-muted);
  --breadcrumbs-font-size: var(--font-size-sm);

  display: block;
  width: 100%;
  color: var(--breadcrumbs-text);
  background-color: var(--breadcrumbs-bg);
  border: var(--border-width-1) solid var(--breadcrumbs-border);
  border-radius: var(--breadcrumbs-radius);
}

.breadcrumbs__inner {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  padding: var(--breadcrumbs-padding-y) var(--breadcrumbs-padding-x);
}

.breadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--breadcrumbs-gap);
  min-width: 0;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumbs__item {
  display: inline-flex;
  align-items: center;
  gap: var(--breadcrumbs-gap);
  min-width: 0;
  max-width: 100%;
  font-size: var(--breadcrumbs-font-size);
  line-height: var(--line-height-snug);
  color: var(--breadcrumbs-text);
}

.breadcrumbs__item > * {
  min-width: 0;
}

.breadcrumbs__link,
.breadcrumbs__current {
  display: inline-flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0;
  max-width: 100%;
}

.breadcrumbs__link {
  color: var(--breadcrumbs-link);
  text-decoration: none;
  transition:
    color var(--duration-fast) var(--easing-in-out),
    opacity var(--duration-fast) var(--easing-in-out);
}

.breadcrumbs__link:hover {
  color: var(--breadcrumbs-link-hover);
  text-decoration: none;
}

.breadcrumbs__link:focus-visible {
  outline: none;
  box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
  border-radius: var(--radius-sm);
}

.breadcrumbs__current {
  color: var(--breadcrumbs-current);
  font-weight: var(--font-weight-semi-bold);
}

.breadcrumbs__label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.breadcrumbs__icon,
.breadcrumbs__link-icon,
.breadcrumbs__separator-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.breadcrumbs__icon svg,
.breadcrumbs__icon img,
.breadcrumbs__link-icon svg,
.breadcrumbs__link-icon img,
.breadcrumbs__separator-icon svg,
.breadcrumbs__separator-icon img {
  width: 1rem;
  height: 1rem;
}

.breadcrumbs__separator {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--breadcrumbs-separator);
  flex-shrink: 0;
  user-select: none;
}

.breadcrumbs__separator-text {
  font-size: var(--font-size-xs);
  line-height: 1;
}

.breadcrumbs__item:last-child .breadcrumbs__separator {
  display: none;
}

/* -------------------------------------------------------------------------
 * Variants
 * ---------------------------------------------------------------------- */
.breadcrumbs--boxed {
  --breadcrumbs-padding-x: var(--space-4);
  --breadcrumbs-padding-y: var(--space-3);
  --breadcrumbs-bg: var(--color-bg-surface);
  --breadcrumbs-border: var(--color-border-default);
}

.breadcrumbs--soft {
  --breadcrumbs-padding-x: var(--space-4);
  --breadcrumbs-padding-y: var(--space-3);
  --breadcrumbs-bg: var(--color-bg-surface-soft);
  --breadcrumbs-border: transparent;
}

.breadcrumbs--muted {
  --breadcrumbs-padding-x: var(--space-4);
  --breadcrumbs-padding-y: var(--space-3);
  --breadcrumbs-bg: var(--color-bg-surface-muted);
  --breadcrumbs-border: transparent;
}

.breadcrumbs--bordered {
  --breadcrumbs-padding-x: var(--space-4);
  --breadcrumbs-padding-y: var(--space-3);
  --breadcrumbs-border: var(--color-border-default);
}

.breadcrumbs--shadow {
  box-shadow: var(--shadow-xs);
}

.breadcrumbs--brand {
  --breadcrumbs-link: var(--color-brand-700);
  --breadcrumbs-link-hover: var(--color-brand-800);
  --breadcrumbs-current: var(--color-brand-900);
  --breadcrumbs-separator: var(--color-brand-400);
}

/* -------------------------------------------------------------------------
 * Sizes
 * ---------------------------------------------------------------------- */
.breadcrumbs--sm {
  --breadcrumbs-gap: var(--space-1);
  --breadcrumbs-font-size: var(--font-size-xs);
  --breadcrumbs-padding-x: var(--space-3);
  --breadcrumbs-padding-y: var(--space-2);
}

.breadcrumbs--md {
  --breadcrumbs-gap: var(--space-2);
  --breadcrumbs-font-size: var(--font-size-sm);
}

.breadcrumbs--lg {
  --breadcrumbs-gap: var(--space-3);
  --breadcrumbs-font-size: var(--font-size-md);
  --breadcrumbs-padding-x: var(--space-5);
  --breadcrumbs-padding-y: var(--space-4);
}

/* -------------------------------------------------------------------------
 * Density / Behavior Modifiers
 * ---------------------------------------------------------------------- */
.breadcrumbs--nowrap .breadcrumbs__list {
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
}

.breadcrumbs--truncate .breadcrumbs__item {
  max-width: 14rem;
}

.breadcrumbs--truncate .breadcrumbs__current,
.breadcrumbs--truncate .breadcrumbs__link {
  max-width: 100%;
}

.breadcrumbs--center .breadcrumbs__inner {
  justify-content: center;
}

.breadcrumbs--end .breadcrumbs__inner {
  justify-content: flex-end;
}

/* -------------------------------------------------------------------------
 * Slash / Chevron / Dot Separators
 * ---------------------------------------------------------------------- */
.breadcrumbs--slash .breadcrumbs__separator-text::before {
  content: "/";
}

.breadcrumbs--chevron .breadcrumbs__separator-text::before {
  content: "›";
  font-size: 0.9em;
}

.breadcrumbs--dot .breadcrumbs__separator-text::before {
  content: "•";
}

.breadcrumbs--dash .breadcrumbs__separator-text::before {
  content: "—";
}

/* -------------------------------------------------------------------------
 * Home / First Item Helpers
 * ---------------------------------------------------------------------- */
.breadcrumbs__item--home .breadcrumbs__label {
  white-space: nowrap;
}

.breadcrumbs__item--current .breadcrumbs__current {
  cursor: default;
}

/* -------------------------------------------------------------------------
 * Collapsed Breadcrumbs
 * ---------------------------------------------------------------------- */
.breadcrumbs__item--collapsed {
  position: relative;
}

.breadcrumbs__collapse-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  height: 2rem;
  padding: 0 var(--space-2);
  color: var(--breadcrumbs-link);
  background-color: transparent;
  border: 0;
  border-radius: var(--radius-md);
  cursor: pointer;
}

.breadcrumbs__collapse-button:hover {
  color: var(--breadcrumbs-link-hover);
  background-color: var(--color-gray-100);
}

.breadcrumbs__collapse-button:focus-visible {
  outline: none;
  box-shadow: 0 0 0 var(--focus-ring-width) var(--focus-ring-color);
}

.breadcrumbs__collapse-menu {
  position: absolute;
  top: calc(100% + var(--space-2));
  inset-inline-start: 0;
  z-index: var(--z-index-dropdown);
  display: none;
  min-width: 12rem;
  padding: var(--space-2);
  background-color: var(--color-bg-surface);
  border: var(--border-width-1) solid var(--color-border-default);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}

.breadcrumbs__item--collapsed.is-open .breadcrumbs__collapse-menu {
  display: block;
}

.breadcrumbs__collapse-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-1);
  margin: 0;
  padding: 0;
  list-style: none;
}

.breadcrumbs__collapse-link {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 2.25rem;
  padding: 0 var(--space-3);
  color: var(--color-text-secondary);
  border-radius: var(--radius-md);
  text-decoration: none;
}

.breadcrumbs__collapse-link:hover {
  color: var(--color-text-primary);
  background-color: var(--color-gray-100);
}

/* -------------------------------------------------------------------------
 * Page Header Context
 * ---------------------------------------------------------------------- */
.page-breadcrumbs {
  margin-bottom: var(--space-4);
}

.page-breadcrumbs:last-child {
  margin-bottom: 0;
}

/* -------------------------------------------------------------------------
 * Responsive Refinements
 * ---------------------------------------------------------------------- */
@media (max-width: 767.98px) {
  .breadcrumbs {
    --breadcrumbs-font-size: var(--font-size-xs);
  }

  .breadcrumbs--boxed,
  .breadcrumbs--soft,
  .breadcrumbs--muted,
  .breadcrumbs--bordered {
    --breadcrumbs-padding-x: var(--space-3);
    --breadcrumbs-padding-y: var(--space-2);
  }

  .breadcrumbs__list {
    gap: var(--space-1);
  }

  .breadcrumbs__item {
    gap: var(--space-1);
    max-width: 100%;
  }

  .breadcrumbs--truncate .breadcrumbs__item {
    max-width: 9rem;
  }

  .breadcrumbs__icon svg,
  .breadcrumbs__icon img,
  .breadcrumbs__link-icon svg,
  .breadcrumbs__link-icon img,
  .breadcrumbs__separator-icon svg,
  .breadcrumbs__separator-icon img {
    width: 0.875rem;
    height: 0.875rem;
  }

  .breadcrumbs__collapse-menu {
    min-width: 10rem;
    max-width: min(80vw, 16rem);
  }
}

@media (min-width: 768px) {
  .breadcrumbs--truncate .breadcrumbs__item--current,
  .breadcrumbs--truncate .breadcrumbs__item:last-child {
    max-width: 18rem;
  }
}

/* -------------------------------------------------------------------------
 * Reduced Motion
 * ---------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  .breadcrumbs,
  .breadcrumbs__link,
  .breadcrumbs__collapse-button,
  .breadcrumbs__collapse-link {
    transition: none !important;
  }
}