/* ============================================
   Bootstrap Complete - השלמת Bootstrap Classes
   תוכנית מעבר Bootstrap - השלמת classes חסרים
   ============================================
   
   קובץ זה משלים את כל ה-Bootstrap classes החסרים
   כדי שנוכל להסיר את Bootstrap CSS לחלוטין
   
   תאריך יצירה: 2025-01-27
   גרסה: 1.0.0
   ============================================ */

@layer components {
  /* ===== Button Group ===== */
  .btn-group {
    position: relative;
    display: inline-flex;
    vertical-align: middle;
  }
  
  .btn-group > .btn {
    position: relative;
    flex: 1 1 auto;
  }
  
  .btn-group > .btn:not(:first-child) {
    margin-inline-start: -1px;
  }
  
  .btn-group > .btn:not(:last-child):not(.dropdown-toggle) {
    border-start-end-radius: 0;
    border-end-end-radius: 0;
  }
  
  .btn-group > .btn:not(:first-child):not(.dropdown-toggle-split) {
    border-start-start-radius: 0;
    border-end-start-radius: 0;
  }
  
  .btn-group > .btn:hover,
  .btn-group > .btn:focus,
  .btn-group > .btn:active,
  .btn-group > .btn.active {
    z-index: 1;
  }
  
  /* תיקון: מניעת overflow ב-btn-group בתוך תאי טבלה */
  .table td .btn-group,
  table td .btn-group {
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
    max-width: none;
    min-width: auto;
    width: auto;
  }
  
  .table td .btn-group .btn,
  table td .btn-group .btn {
    overflow: visible;
    overflow-x: visible;
    overflow-y: visible;
    white-space: nowrap;
    flex-shrink: 0;
  }
  
  .btn-group-vertical {
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
  }
  
  .btn-group-vertical > .btn {
    width: 100%;
  }
  
  .btn-group-vertical > .btn:not(:first-child) {
    margin-top: -1px;
  }
  
  .btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle) {
    border-bottom-right-radius: 0;
    border-bottom-left-radius: 0;
  }
  
  .btn-group-vertical > .btn:not(:first-child):not(.dropdown-toggle-split) {
    border-top-right-radius: 0;
    border-top-left-radius: 0;
  }
  
  /* ===== Input Group ===== */
  .input-group {
    position: relative;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    width: 100%;
  }
  
  .input-group > .form-control,
  .input-group > .form-select,
  .input-group > .form-field {
    position: relative;
    flex: 1 1 auto;
    width: 1%;
    min-width: 0;
  }
  
  .input-group > .form-control:focus,
  .input-group > .form-select:focus,
  .input-group > .form-field:focus {
    z-index: 3;
  }
  
  .input-group-text {
    display: flex;
    align-items: center;
    padding: var(--space-3) var(--space-4);
    font-size: var(--fs-base);
    font-weight: 400;
    line-height: 1.5;
    color: var(--text-primary);
    text-align: center;
    white-space: nowrap;
    background-color: var(--surface-100);
    border: 1px solid var(--border-primary);
    border-radius: var(--radius-md);
  }
  
  .input-group-lg > .form-control,
  .input-group-lg > .form-select,
  .input-group-lg > .form-field,
  .input-group-lg > .input-group-text {
    padding: var(--space-4) var(--space-5);
    font-size: var(--fs-lg);
    border-radius: var(--radius-lg);
  }
  
  .input-group-sm > .form-control,
  .input-group-sm > .form-select,
  .input-group-sm > .form-field,
  .input-group-sm > .input-group-text {
    padding: var(--space-2) var(--space-3);
    font-size: var(--fs-sm);
    border-radius: var(--radius-sm);
  }
  
  /* ===== Badge ===== */
  .badge {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--text-inverse);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-full);
  }
  
  .badge:empty {
    display: none;
  }
  
  .badge-primary {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--text-inverse);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-full);
    background-color: var(--primary-500);
  }
  
  .badge-secondary {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--text-inverse);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-full);
    background-color: var(--secondary-500);
  }
  
  .badge-success {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--text-inverse);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-full);
    background-color: var(--accent-success);
  }
  
  .badge-danger {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--text-inverse);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-full);
    background-color: var(--accent-danger);
  }
  
  .badge-warning {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--text-main);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-full);
    background-color: var(--accent-warning);
  }
  
  .badge-info {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--text-inverse);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-full);
    background-color: var(--info-500);
  }
  
  .badge-light {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--text-main);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-full);
    background-color: var(--surface-100);
  }
  
  .badge-dark {
    display: inline-block;
    padding: var(--space-1) var(--space-2);
    font-size: var(--fs-xs);
    font-weight: 600;
    line-height: 1;
    color: var(--text-inverse);
    text-align: center;
    white-space: nowrap;
    vertical-align: baseline;
    border-radius: var(--radius-full);
    background-color: var(--secondary-900);
  }
  
  .badge-pill {
    padding-inline-start: var(--space-3);
    padding-inline-end: var(--space-3);
    border-radius: var(--radius-full);
  }
  
  /* ===== Collapse ===== */
  .collapse {
    display: none;
  }
  
  .collapse.show {
    display: block;
  }
  
  .collapsing {
    height: 0;
    overflow: hidden;
    transition: height 0.35s ease;
  }
  
  /* ===== Accordion ===== */
  .accordion {
    --bs-accordion-color: var(--text-main);
    --bs-accordion-bg: var(--bg-surface);
    --bs-accordion-transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out, border-radius 0.15s ease;
    --bs-accordion-border-color: var(--border-subtle);
    --bs-accordion-border-radius: var(--radius-lg);
    --bs-accordion-inner-border-radius: calc(var(--radius-lg) - 1px);
    --bs-accordion-btn-padding-x: var(--space-4);
    --bs-accordion-btn-padding-y: var(--space-3);
    --bs-accordion-btn-color: var(--text-main);
    --bs-accordion-btn-bg: var(--bg-surface);
    --bs-accordion-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    --bs-accordion-btn-icon-width: 1.25rem;
    --bs-accordion-btn-icon-transform: rotate(-180deg);
    --bs-accordion-btn-icon-transition: transform 0.2s ease-in-out;
    --bs-accordion-btn-active-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    --bs-accordion-btn-focus-border-color: var(--primary-500);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 0.25rem rgba(59, 130, 246, 0.25);
    --bs-accordion-body-padding-x: var(--space-4);
    --bs-accordion-body-padding-y: var(--space-3);
    --bs-accordion-active-color: var(--primary-500);
    --bs-accordion-active-bg: var(--primary-50);
  }
  
  .accordion-item {
    color: var(--bs-accordion-color);
    background-color: var(--bs-accordion-bg);
    border: 1px solid var(--bs-accordion-border-color);
  }
  
  .accordion-item:not(:first-of-type) {
    border-top: 0;
  }
  
  .accordion-item:first-of-type {
    border-top-left-radius: var(--bs-accordion-border-radius);
    border-top-right-radius: var(--bs-accordion-border-radius);
  }
  
  .accordion-item:last-of-type {
    border-bottom-right-radius: var(--bs-accordion-border-radius);
    border-bottom-left-radius: var(--bs-accordion-border-radius);
  }
  
  .accordion-header {
    margin-bottom: 0;
  }
  
  .accordion-button {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    padding: var(--bs-accordion-btn-padding-y) var(--bs-accordion-btn-padding-x);
    font-size: var(--fs-base);
    color: var(--bs-accordion-btn-color);
    text-align: start;
    background-color: var(--bs-accordion-btn-bg);
    border: 0;
    border-radius: 0;
    overflow-anchor: none;
    transition: var(--bs-accordion-transition);
  }
  
  .accordion-button:not(.collapsed) {
    color: var(--bs-accordion-active-color);
    background-color: var(--bs-accordion-active-bg);
    box-shadow: inset 0 calc(-1 * 1px) 0 var(--bs-accordion-border-color);
  }
  
  .accordion-button:not(.collapsed)::after {
    background-image: var(--bs-accordion-btn-active-icon);
    transform: var(--bs-accordion-btn-icon-transform);
  }
  
  .accordion-button::after {
    flex-shrink: 0;
    width: var(--bs-accordion-btn-icon-width);
    height: var(--bs-accordion-btn-icon-width);
    margin-inline-start: auto;
    content: "";
    background-image: var(--bs-accordion-btn-icon);
    background-repeat: no-repeat;
    background-size: var(--bs-accordion-btn-icon-width);
    transition: var(--bs-accordion-btn-icon-transition);
  }
  
  .accordion-button:hover {
    z-index: 2;
  }
  
  .accordion-button:focus {
    z-index: 3;
    border-color: var(--bs-accordion-btn-focus-border-color);
    outline: 0;
    box-shadow: var(--bs-accordion-btn-focus-box-shadow);
  }
  
  .accordion-body {
    padding: var(--bs-accordion-body-padding-y) var(--bs-accordion-body-padding-x);
  }
  
  /* ===== Form Check ===== */
  .form-check {
    display: block;
    min-height: 1.5rem;
    padding-inline-start: 1.5em;
    margin-bottom: 0.125rem;
  }
  
  .form-check-input {
    float: right;
    width: 1em;
    height: 1em;
    margin-top: 0.25em;
    margin-inline-start: -1.5em;
    vertical-align: top;
    background-color: var(--bg-surface);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    border: 1px solid var(--border-primary);
    appearance: none;
    print-color-adjust: exact;
  }
  
  .form-check-input[type="checkbox"] {
    border-radius: 0.25em;
  }
  
  .form-check-input[type="radio"] {
    border-radius: 50%;
  }
  
  .form-check-input:active {
    filter: brightness(90%);
  }
  
  .form-check-input:focus {
    border-color: var(--primary-500);
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(59, 130, 246, 0.25);
  }
  
  .form-check-input:checked {
    background-color: var(--primary-500);
    border-color: var(--primary-500);
  }
  
  .form-check-input:checked[type="checkbox"] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
  }
  
  .form-check-input:checked[type="radio"] {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e");
  }
  
  .form-check-input[type="checkbox"]:indeterminate {
    background-color: var(--primary-500);
    border-color: var(--primary-500);
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e");
  }
  
  .form-check-input:disabled {
    pointer-events: none;
    filter: none;
    opacity: 0.5;
  }
  
  .form-check-input:disabled ~ .form-check-label,
  .form-check-input[disabled] ~ .form-check-label {
    opacity: 0.5;
  }
  
  .form-check-label {
    cursor: pointer;
  }
  
  .form-check-input.is-valid ~ .form-check-label {
    color: var(--accent-success);
  }
  
  .form-check-input.is-invalid ~ .form-check-label {
    color: var(--accent-danger);
  }
  
  .form-check-inline {
    display: inline-block;
    margin-inline-end: 1rem;
  }
  
  /* ===== Utilities ===== */
  .btn-close {
    box-sizing: content-box;
    width: 1em;
    height: 1em;
    padding: 0.25em 0.25em;
    color: #000;
    background: transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath d='M.293.293a1 1 0 0 1 1.414 0L8 6.586 14.293.293a1 1 0 1 1 1.414 1.414L9.414 8l6.293 6.293a1 1 0 0 1-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 0 1-1.414-1.414L6.586 8 .293 1.707a1 1 0 0 1 0-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;
    border: 0;
    border-radius: 0.25rem;
    opacity: 0.5;
  }
  
  .btn-close:hover {
    color: #000;
    text-decoration: none;
    opacity: 0.75;
  }
  
  .btn-close:focus {
    outline: 0;
    box-shadow: 0 0 0 0.25rem rgba(0, 0, 0, 0.25);
    opacity: 1;
  }
  
  .btn-close:disabled,
  .btn-close.disabled {
    pointer-events: none;
    user-select: none;
    opacity: 0.25;
  }
  
  .btn-close-white {
    filter: invert(1) grayscale(100%) brightness(200%);
  }

  /* ===== List Group ===== */
  .list-group {
    display: flex;
    flex-direction: column;
    padding-inline-start: 0;
    margin-bottom: 0;
    border-radius: var(--radius-md);
  }

  .list-group-item {
    position: relative;
    display: block;
    padding: var(--space-3) var(--space-4);
    color: var(--text-primary);
    text-decoration: none;
    background-color: var(--card-bg);
    border: 1px solid var(--border-subtle);
  }

  .list-group-item:first-child {
    border-top-left-radius: inherit;
    border-top-right-radius: inherit;
  }

  .list-group-item:last-child {
    border-bottom-right-radius: inherit;
    border-bottom-left-radius: inherit;
  }

  .list-group-item:not(:last-child) {
    border-bottom: 0;
  }

  .list-group-item.disabled,
  .list-group-item:disabled {
    color: var(--text-disabled);
    pointer-events: none;
    background-color: var(--surface-50);
  }

  .list-group-item.active {
    z-index: 2;
    color: var(--text-inverse);
    background-color: var(--primary-500);
    border-color: var(--primary-500);
  }

  .list-group-item-action {
    width: 100%;
    color: var(--text-primary);
    text-align: inherit;
    cursor: pointer;
    transition: all var(--transition-base);
  }

  .list-group-item-action:hover,
  .list-group-item-action:focus {
    z-index: 1;
    color: var(--text-primary);
    text-decoration: none;
    background-color: var(--surface-100);
  }

  .list-group-item-action:active {
    color: var(--text-primary);
    background-color: var(--surface-200);
  }

  .list-group-item-primary {
    color: var(--text-inverse);
    background-color: var(--primary-500);
  }

  .list-group-item-primary.list-group-item-action:hover,
  .list-group-item-primary.list-group-item-action:focus {
    color: var(--text-inverse);
    background-color: var(--primary-600);
  }

  .list-group-item-primary.list-group-item-action.active {
    color: var(--text-inverse);
    background-color: var(--primary-700);
    border-color: var(--primary-700);
  }

  .list-group-item-secondary {
    color: var(--text-inverse);
    background-color: var(--secondary-500);
  }

  .list-group-item-secondary.list-group-item-action:hover,
  .list-group-item-secondary.list-group-item-action:focus {
    color: var(--text-inverse);
    background-color: var(--secondary-600);
  }

  .list-group-item-secondary.list-group-item-action.active {
    color: var(--text-inverse);
    background-color: var(--secondary-700);
    border-color: var(--secondary-700);
  }

  .list-group-item-success {
    color: var(--text-inverse);
    background-color: var(--success-500);
  }

  .list-group-item-success.list-group-item-action:hover,
  .list-group-item-success.list-group-item-action:focus {
    color: var(--text-inverse);
    background-color: var(--success-600);
  }

  .list-group-item-success.list-group-item-action.active {
    color: var(--text-inverse);
    background-color: var(--success-700);
    border-color: var(--success-700);
  }

  .list-group-item-danger {
    color: var(--text-inverse);
    background-color: var(--danger-500);
  }

  .list-group-item-danger.list-group-item-action:hover,
  .list-group-item-danger.list-group-item-action:focus {
    color: var(--text-inverse);
    background-color: var(--danger-600);
  }

  .list-group-item-danger.list-group-item-action.active {
    color: var(--text-inverse);
    background-color: var(--danger-700);
    border-color: var(--danger-700);
  }

  .list-group-item-warning {
    color: var(--text-main);
    background-color: var(--warning-500);
  }

  .list-group-item-warning.list-group-item-action:hover,
  .list-group-item-warning.list-group-item-action:focus {
    color: var(--text-main);
    background-color: var(--warning-600);
  }

  .list-group-item-warning.list-group-item-action.active {
    color: var(--text-main);
    background-color: var(--warning-700);
    border-color: var(--warning-700);
  }

  .list-group-item-info {
    color: var(--text-inverse);
    background-color: var(--info-500);
  }

  .list-group-item-info.list-group-item-action:hover,
  .list-group-item-info.list-group-item-action:focus {
    color: var(--text-inverse);
    background-color: var(--info-600);
  }

  .list-group-item-info.list-group-item-action.active {
    color: var(--text-inverse);
    background-color: var(--info-700);
    border-color: var(--info-700);
  }

  /* ===== Spinner ===== */
  .spinner-border {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: text-bottom;
    border: 0.25em solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: spinner-border 0.75s linear infinite;
  }

  .spinner-border-sm {
    width: 1rem;
    height: 1rem;
    border-width: 0.2em;
  }

  @keyframes spinner-border {
    to {
      transform: rotate(360deg);
    }
  }

  .spinner-grow {
    display: inline-block;
    width: 2rem;
    height: 2rem;
    vertical-align: text-bottom;
    background-color: currentColor;
    border-radius: 50%;
    opacity: 0;
    animation: spinner-grow 0.75s linear infinite;
  }

  .spinner-grow-sm {
    width: 1rem;
    height: 1rem;
  }

  @keyframes spinner-grow {
    0% {
      transform: scale(0);
    }
    50% {
      opacity: 1;
      transform: none;
    }
  }

  .spinner-border-primary {
    color: var(--primary-500);
  }

  .spinner-border-secondary {
    color: var(--secondary-500);
  }

  .spinner-border-success {
    color: var(--success-500);
  }

  .spinner-border-danger {
    color: var(--danger-500);
  }

  .spinner-border-warning {
    color: var(--warning-500);
  }

  .spinner-border-info {
    color: var(--info-500);
  }

  .spinner-grow-primary {
    color: var(--primary-500);
  }

  .spinner-grow-secondary {
    color: var(--secondary-500);
  }

  .spinner-grow-success {
    color: var(--success-500);
  }

  .spinner-grow-danger {
    color: var(--danger-500);
  }

  .spinner-grow-warning {
    color: var(--warning-500);
  }

  .spinner-grow-info {
    color: var(--info-500);
  }

  /* RTL Support for Spinner */
  [dir="rtl"] .spinner-border {
    animation-direction: reverse;
  }

  [dir="rtl"] .spinner-grow {
    animation-direction: reverse;
  }
}

