 .ab {
     width: 100%;
     background: #1a1a2e;
     font-family: 'Cairo', sans-serif;
     direction: rtl;
     position: relative;
     box-sizing: border-box;
 }

 body.dark-mode .ab {
     background: #1b1e21;
 }

 .ab::after {
     content: '';
     position: absolute;
     bottom: 0;
     left: 0;
     right: 0;
     height: 4.5px;
     background: linear-gradient(90deg, transparent, var(--color-primary), transparent);
     opacity: 0.8;
 }

 body.dark-mode .ab::after {
     height: 2px;
 }

 .ab__row {
     display: flex;
     align-items: center;
     justify-content: space-between;
     max-width: 1400px;
     margin: 0 auto;
     padding: 10px 16px;
     min-height: 52px;
     gap: 10px;
     box-sizing: border-box;
 }

 .ab__label {
     flex-shrink: 0;
     display: flex;
     align-items: center;
     gap: 7px;
     white-space: nowrap;
 }

 .ab__pulse {
     width: 7px;
     height: 7px;
     border-radius: 50%;
     background: #e94560;
     position: relative;
     flex-shrink: 0;
 }

 .ab__pulse::before {
     content: '';
     position: absolute;
     inset: -3px;
     border-radius: 50%;
     border: 1px solid #e94560;
     animation: abPulse 2s ease-in-out infinite;
 }

 @keyframes abPulse {

     0%,
     100% {
         transform: scale(1);
         opacity: 0.45;
     }

     50% {
         transform: scale(1.7);
         opacity: 0;
     }
 }

 .ab__label-text {
     color: #ff7096;
     font-size: 11px;
     font-weight: 600;
     letter-spacing: 0.16em;
     text-transform: uppercase;
 }

 .ab__sep {
     width: 1px;
     height: 16px;
     background: rgba(233, 69, 96, 0.35);
 }

 .ab__center {
     flex: 1;
     min-width: 0;
     display: flex;
     align-items: center;
     justify-content: center;
     position: relative;
     min-height: 36px;
 }

 .ab__slide {
     position: absolute;
     inset: 0;
     display: flex;
     align-items: center;
     justify-content: center;
     opacity: 0;
     transform: translateY(10px);
     transition: opacity 0.3s ease, transform 0.3s ease;
     pointer-events: none;
 }

 .ab__slide.active {
     opacity: 1;
     transform: translateY(0);
     pointer-events: auto;

     position: relative;
     inset: auto;
 }

 .ab__slide.leaving {
     opacity: 0;
     transform: translateY(-10px);
     position: absolute;
     inset: 0;
 }

 .ab__text {
     font-size: 17.5px;
     font-weight: 400;
     color: #f0f0f0;
     line-height: 1.5;
     text-align: center;
     white-space: normal;
     word-break: keep-all;
     margin: 0;
     padding: 0;
 }

 .ab__text a {
     color: inherit;
     text-decoration: none;
 }

 .ab__accent {
     color: #ff7096;
     font-weight: 600;
 }

 .ab__controls {
     flex-shrink: 0;
     display: flex;
     align-items: center;
     gap: 10px;
 }

 /* dots */
 .ab__dots {
     display: flex;
     align-items: center;
     gap: 5px;
 }

 .ab__dot {
     all: unset;
     display: block;
     cursor: pointer;
     height: 6px;
     width: 6px;
     border-radius: 3px;
     background: rgba(255, 255, 255, 0.28);
     transition: background 0.3s ease, width 0.3s ease;
     -webkit-tap-highlight-color: transparent;
 }

 .ab__dot.active {
     background: var(--color-primary);
     width: 18px;
 }

 .ab__close {
     all: unset;
     cursor: pointer;
     width: 28px;
     height: 28px;
     display: flex;
     align-items: center;
     justify-content: center;
     color: rgba(255, 255, 255, 0.3);
     border-radius: 4px;
     transition: color 0.2s, background 0.2s;
     -webkit-tap-highlight-color: transparent;
 }

 .ab__close:hover,
 .ab__close:active {
     color: rgba(255, 255, 255, 0.75);
     background: rgba(255, 255, 255, 0.08);
 }

 .ab__close svg {
     display: block;
     width: 10px;
     height: 10px;
 }

 @keyframes abCollapse {
     to {
         height: 0;
         opacity: 0;
     }
 }

 .ab.closing {
     overflow: hidden;
     animation: abCollapse 0.35s ease forwards;
 }

 @media (max-width: 640px) {
     .ab__row {
         min-height: 46px;
         padding: 8px 12px;
         gap: 0;
     }

     .ab__center {
         min-height: 35px;
         justify-content: center;
     }

     .ab__label {
         display: none;
     }

     .ab__text {
         font-size: 15.8px;
         text-align: center;
         width: 100%;
     }

     .ab__dots {
         display: none;
     }

     .ab__controls {
         width: 36px;
         flex-shrink: 0;
         justify-content: flex-end;
     }

     .ab__row::before {
         content: '';
         display: block;
         width: 36px;
         flex-shrink: 0;
     }
 }