.bs-wrap {
        --bs-primary: #e63946; 
        --bs-primary-light: #ffe8eb;
        --bs-primary-dark: #d62828;
        --bs-text: #1a1a1a;
        --bs-gray: #757575;
        --bs-bg-light: #fafafa;
        --bs-border: #e8e8e8;
        --bs-radius: 16px;
        --bs-red: #e63946;
        --bs-accent: #ff6b6b;
        font-family: 'Prompt', sans-serif; color: var(--bs-text); box-sizing: border-box;
      }
      .bs-wrap *, .bs-wrap *::before, .bs-wrap *::after { box-sizing: inherit; }
      .material-symbols-rounded { font-family: 'Material Symbols Rounded'; font-size: 20px; line-height: 1; display: inline-block; vertical-align: middle; }
      
      .bs-section { margin: 60px auto; max-width: 1280px; padding: 0 24px; }
      .bs-header { margin-bottom: 48px; text-align:center; }
      .bs-title { font-size: 2.4rem; font-weight: 700; color: var(--bs-primary); margin: 0 0 12px 0; letter-spacing: -0.5px; }
      .bs-sub { font-size: 1.05rem; color: var(--bs-gray); margin: 0; font-weight: 400; line-height: 1.5; }
      .bs-loading, .bs-empty { padding: 80px 20px; text-align: center; background: #fff; border-radius: var(--bs-radius); border: 1px solid var(--bs-border); color: var(--bs-gray); font-size: 16px; }

      /* --- Skeleton Loading --- */
      .bs-card.skeleton { pointer-events: none; }
      .bs-card.skeleton .bs-img-area, 
      .bs-card.skeleton .bs-content div {
        background: #f0f0f0;
        background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
        background-size: 200% 100%;
        animation: bs-shimmer 1.5s infinite;
      }
      @keyframes bs-shimmer {
        0% { background-position: 200% 0; }
        100% { background-position: -200% 0; }
      }

      /* --- Pricing Cards --- */
      /* Base: Mobile First (Horizontal Scroll) */
      .bs-grid { display: flex; gap: 16px; overflow-x: auto; overflow-y: hidden; scroll-behavior: smooth; scroll-snap-type: x mandatory; padding: 0 16px 20px 16px; }
      .bs-grid::-webkit-scrollbar { height: 6px; }
      .bs-grid::-webkit-scrollbar-track { background: #f0f0f0; border-radius: 10px; }
      .bs-grid::-webkit-scrollbar-thumb { background: #ccc; border-radius: 10px; }
      .bs-grid::-webkit-scrollbar-thumb:hover { background: #999; }

      /* Desktop: Grid by default */
      @media (min-width: 769px) {
        .bs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 12px; overflow: visible; scroll-behavior: auto; scroll-snap-type: none; padding: 0; }
        
        /* Desktop: Scroll Mode (If selected in settings) */
        .bs-layout-scroll .bs-grid {
             display: flex;
             grid-template-columns: none;
             overflow-x: auto;
             scroll-snap-type: x mandatory;
             padding-bottom: 24px;
        }
        .bs-layout-scroll .bs-card {
             min-width: 320px;
             max-width: 350px;
        }
      }
      
      .bs-card { background: #fff; border-radius: var(--bs-radius); box-shadow: 0 2px 8px rgba(230, 57, 70, 0.08); border: 1px solid #efefef; display: flex; flex-direction: column; overflow: hidden; transition: none; flex: 0 0 auto; width:100%; max-width: 350px; scroll-snap-align: start; }
      .bs-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: var(--bs-primary); }
      
      .bs-img-area { height: 210px; position: relative; background: #fafafa; padding: 0; display:flex; align-items:center; justify-content:center; overflow:hidden; }
      .bs-img-area img { max-width: 100%; max-height: 100%; width: 80%; object-fit: cover; transition: none; transform: scale(1.1); mask-image: radial-gradient(circle, black 50%, transparent 100%); }

      /* Badges */
      .bs-badges { position: absolute; top: 16px; left: 16px; display: flex; flex-direction: row; gap: 6px; z-index:2; flex-wrap: wrap; }
      .bs-tag { padding: 5px 12px; border-radius: 50px; font-size: 11px; font-weight: 600; color: #fff; background: #333; display: inline-flex; align-items:center; width:fit-content; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
      .bs-tag.rec { background: var(--bs-primary); }
      .bs-tag.dark { background: #333; }
      .bs-tag.net-5g { background: #000; border: 1px solid #333; }
      
      /* Special Tags from CSV */
      .bs-tag.tag-best { background: linear-gradient(45deg, #FFD700, #FDB931); color: #000; text-shadow: 0 1px 0 rgba(255,255,255,0.4); }
      .bs-tag.tag-hot { background: linear-gradient(45deg, #ff6b6b, #ff0000); }
      .bs-tag.tag-popular { background: linear-gradient(45deg, #4dabf7, #339af0); }

      .bs-content { padding: 16px; flex: 1; display: flex; flex-direction: column; justify-content: space-between; background: #fff; }
      .bs-pkg-nm { font-size: 20px; font-weight: 700; margin: 0 0 8px 0; line-height: 1.3; min-height:56px; color: var(--bs-text); }
      
      .bs-flags { display: flex; align-items: center; margin-bottom: 8px; min-height: 0; }
      .bs-flag-icon { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.1); margin-left: -10px; background: #f0f0f0; }
      .bs-flags .bs-flag-icon:first-child { margin-left: 0; }
      .bs-flag-more { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: #e9ecef; font-size: 10px; font-weight: 700; color: var(--bs-gray); margin-left: -10px; border: 2px solid #fff; box-shadow: 0 1px 3px rgba(0,0,0,0.1); position: relative; cursor: pointer; user-select: none; }
      .bs-flag-tooltip { display: none; position: absolute; bottom: 120%; left: 50%; transform: translateX(-50%); background: #333; color: #fff; padding: 8px 12px; border-radius: 6px; font-size: 12px; line-height: 1.4; text-align: left; white-space: normal; max-width: 200px; z-index: 999; box-shadow: 0 2px 8px rgba(0,0,0,0.2); }
      .bs-flag-tooltip::after { content: ''; position: absolute; top: 100%; left: 50%; margin-left: -5px; border-width: 5px; border-style: solid; border-color: #333 transparent transparent transparent; }
      .bs-flag-more.active .bs-flag-tooltip { display: block; }

      .bs-features { display: grid; gap: 10px; margin-bottom: 24px; }
      .bs-feat-item { font-size: 13px; color: var(--bs-gray); display:flex; justify-content:space-between; align-items:center; padding: 4px 0; border-bottom: 1px solid #f5f5f5; }
      .bs-feat-val { font-weight: 600; color: var(--bs-primary); }

      .bs-price-row { display: flex; align-items: flex-end; justify-content: space-between; margin-top: auto; }
      .bs-price-wrap { display: flex; flex-direction: column; }
      .bs-p-old { font-size: 12px; text-decoration: line-through; color: var(--bs-text); opacity: 0.7; margin-bottom: 4px; font-weight: 500; }
      .bs-price-main { font-size: 28px; font-weight: 800; color: var(--bs-text); line-height: 1; letter-spacing: -0.5px; }
      .bs-price-main.promo { color: var(--bs-primary); }
      
      .bs-discount-badge {
        display: inline-block;
        margin-left: 8px;
        padding: 3px 6px;
        background-color: var(--bs-accent);
        color: #fff;
        border-radius: 4px;
        font-size: 10px;
        font-weight: 700;
        vertical-align: middle;
      }

      a.bs-btn { display: inline-flex; align-items: center; justify-content: center; padding: 11px 28px; background: var(--bs-primary); color: #fff; border-radius: 50px; font-weight: 600; text-decoration: none; font-size: 14px; transition: none; box-shadow: 0 4px 10px rgba(230, 57, 70, 0.2); border: none; cursor: pointer; }
      
      .bs-btn-view-more { display: inline-flex; padding: 13px 40px; border: 2px solid var(--bs-primary); border-radius: 50px; background: #fff; color: var(--bs-primary); text-decoration: none; margin-top: 40px; font-size: 14px; font-weight: 600; transition: all 0.2s ease; cursor: pointer; }
      .bs-btn-view-more:hover { background: var(--bs-primary); color: #fff; transform: translateY(-2px); }

      /* --- Modal Styles --- */
      .bs-modal-overlay { position: fixed; top: 0; left: 0; right: 0; bottom: 0; background: rgba(0,0,0,0.6); display: none; align-items: center; justify-content: center; z-index: 1000; padding: 20px; }
      .bs-modal-overlay.active { display: flex; }
      .bs-modal-content { background: var(--bs-bg-light); border-radius: var(--bs-radius); padding: 24px; width: 100%; max-width: 1100px; max-height: 90vh; overflow-y: auto; position: relative; box-shadow: 0 10px 30px rgba(0,0,0,0.2); }
      @media (min-width: 769px) { .bs-modal-content { padding: 36px; } }
      .bs-modal-close { position: absolute; top: 12px; right: 16px; cursor: pointer; font-size: 32px; line-height: 1; color: var(--bs-gray); transition: color 0.2s; }
      .bs-modal-close:hover { color: var(--bs-text); }
      .bs-modal-header { margin-bottom: 24px; padding-bottom: 16px; border-bottom: 1px solid var(--bs-border); }
      .bs-modal-title { font-size: 1.8rem; font-weight: 700; margin: 0; color: var(--bs-primary); }
      .bs-modal-body .bs-grid { display: flex; flex-direction: column; gap: 16px; padding: 0; }
      .bs-modal-body .bs-card { width: 100%; } /* Override mobile card width inside modal */


      /* --- NEW COMPARISON DESIGN (Clean & Centered) --- */
      .bs-comp-box { 
          background: #fff;
          border-radius: var(--bs-radius);
          box-shadow: 0 4px 16px rgba(230, 57, 70, 0.08);
          border: 1px solid #f0f0f0;
          padding: 48px 36px; 
          max-width: 1000px; 
          margin: 0 auto;
          position: relative;
      }
      
      /* Selectors */
      .bs-comp-ctrl { display: flex; gap: 20px; justify-content: center; margin-bottom: 48px; padding-left: 0; position: relative; z-index: 5; flex-wrap: wrap; align-items: center; }
      .bs-comp-col-h { flex: 0 1 260px; }
      .bs-select {
          width: 100%; padding: 12px 16px; border-radius: 10px; 
          border: 1px solid #ddd; 
          font-family: inherit; font-size: 14px; font-weight: 600; color: var(--bs-text);
          background-color: #fff; cursor: pointer; outline: none; appearance: none; 
          background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2724%27%20height%3D%2724%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23999%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpolyline%20points%3D%276%209%2012%2015%2018%209%27%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E"); 
          background-repeat: no-repeat; background-position: right 12px center; background-size: 16px auto; 
          transition: all 0.2s ease;
          box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
      }
      .bs-select option { color: #000; background: #fff; }
      .bs-select:hover:not(:disabled) { border-color: var(--bs-primary); }
      .bs-select:focus { border-color: var(--bs-primary); box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.1); outline: none; }
      .bs-select:disabled { opacity: 0.5; background-color: #f5f5f5; cursor: not-allowed; }

      /* --- Desktop Comparison --- */
      .bs-mobile-specs { display: none; }
      .bs-vs-grid { display: grid; grid-template-columns: 140px 1fr 1fr; gap: 40px; align-items: flex-start; margin-bottom: 36px; }
      .bs-vs-col { display: flex; flex-direction: column; align-items: center; text-align: center; position: relative; }
      .bs-vs-dummy { visibility: hidden; }

      .bs-vs-separator { display: flex; align-items: center; }
      .bs-vs-icon {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        border-radius: 50%;
        background-color: var(--bs-border);
        color: var(--bs-gray);
        font-weight: 700;
        font-size: 14px;
      }

      .bs-vs-img {
          height: 220px; width: 100%; display: flex; align-items: center; justify-content: center; margin-bottom: 20px; position: relative; 
      }
      .bs-vs-img img {
          max-width: 85%; max-height: 85%; object-fit: contain; 
          filter: drop-shadow(0 4px 8px rgba(230, 57, 70, 0.1)); 
          z-index: 1;
          border-radius: 8px;
          transition: transform 0.3s ease;
      }
      .bs-vs-col:hover .bs-vs-img img { transform: scale(1.04); }

      .bs-model-title { margin: 0; font-size: 18px; font-weight: 700; color: var(--bs-text); letter-spacing: -0.3px; }
      
      .bs-desktop-specs { border-top: 1px solid #e8e8e8; padding-top: 6px; }
      .bs-spec-row {
          display: grid; grid-template-columns: 140px 1fr 1fr; gap: 40px; 
          padding: 16px 20px; 
          border-radius: 8px;
          align-items: center; 
          transition: all 0.2s ease;
      }
      .bs-spec-row:nth-child(even) { background-color: #fafafa; }
      .bs-spec-row:hover { background-color: #f5f5f5; }

      .bs-spec-lbl {
          font-size: 12px; color: var(--bs-gray); font-weight: 600; text-transform: uppercase; 
          display: flex; align-items: center; gap: 8px; letter-spacing: 0.3px; 
      }
      .bs-icon-box {
          width: 32px; height: 32px; border-radius: 6px; background: #f0f0f0; 
          display: flex; align-items: center; justify-content: center; color: var(--bs-primary);
      }
      .bs-spec-val {
        font-size: 14px; 
        font-weight: 500; 
        color: var(--bs-text); 
        text-align: center;
        transition: all 0.2s ease-in-out;
      }
      .bs-spec-val.bs-spec-winner {
          font-weight: 700;
          color: var(--bs-primary);
          transform: scale(1.03);
      }
      .bs-spec-group-header {
        font-size: 16px;
        font-weight: 700;
        color: var(--bs-text);
        padding: 24px 0 8px 0;
        margin-top: 16px;
        border-bottom: 2px solid var(--bs-primary);
        grid-column: 1 / -1; /* Span all columns */
      }
      .bs-spec-group-header:first-of-type {
        margin-top: 0;
        padding-top: 0;
      }
      .bs-spec-bar-container {
        width: 100%;
        background: #f0f0f0;
        border-radius: 4px;
        height: 8px;
        margin-top: 4px;
        overflow: hidden;
      }
      .bs-spec-bar {
        height: 100%;
        background: var(--bs-accent);
        border-radius: 4px;
        transition: width 0.5s ease-in-out;
        width: 0%; /* Default width */
      }
      .bs-spec-val .bs-spec-bar-value {
        display: block;
        margin-bottom: 4px;
      }
      .bs-spec-winner .bs-spec-bar {
        background: var(--bs-primary);
      }
      .bs-winner-badge {
        display: inline-block;
        margin-left: 8px;
        color: #ffc107; /* Gold color for the crown */
        font-size: 1.2em;
        vertical-align: middle;
      }
      .bs-spec-val.bs-spec-winner {
        position: relative;
      }
      
      /* --- MOBILE SLIDE & ADJUSTMENTS --- */
      @media (max-width: 768px) {
        .bs-title { font-size: 1.8rem; }
        .bs-section { padding: 0 12px; margin: 40px auto; }
        .bs-comp-box { padding: 28px 16px; overflow-x: hidden; }
        
        /* Card image sizing on mobile */
        .bs-img-area { height: 180px; }
        
        /* Hide Desktop, Show Mobile */
        .bs-vs-grid, .bs-desktop-specs, .bs-specs-table { display: none; }
        .bs-mobile-specs { display: block; }
        
        .bs-comp-ctrl { gap: 12px; margin-bottom: 28px; flex-direction: column; }
        .bs-comp-col-h { flex: 1; min-width: 100%; }
        .bs-select { padding: 10px 12px; font-size: 13px; }

        /* Mobile Comparison Header */
        .bs-mobile-comp-header {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
            align-items: start;
            margin-bottom: 24px;
        }
        .bs-mobile-comp-col {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-align: center;
        }
        .bs-mobile-comp-header .bs-vs-img {
            height: 120px;
            margin-bottom: 12px;
            width: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
        }
        .bs-mobile-comp-header .bs-vs-img img {
            filter: drop-shadow(0 3px 6px rgba(230, 57, 70, 0.08));
        }
        .bs-mobile-comp-header .bs-model-title { font-size: 16px; }
        
        /* Accordion Spec List */
        .bs-spec-stacked-item {
            border-bottom: 1px solid var(--bs-border);
        }
        .bs-spec-stacked-item:last-child { border-bottom: none; }
        
        .bs-stacked-label {
            font-size: 12px;
            font-weight: 600;
            color: var(--bs-gray);
            padding: 16px 0;
            display: flex;
            align-items: center;
            gap: 8px;
            position: relative;
            cursor: pointer;
        }
        .bs-stacked-label .material-symbols-rounded { font-size: 18px; }

        .bs-stacked-label::after {
            content: '';
            position: absolute;
            right: 0;
            top: 50%;
            transform: translateY(-50%) rotate(0deg);
            transition: transform 0.3s ease;
            width: 24px;
            height: 24px;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23757575'%3E%3Cpath d='M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z'/%3E%3C/svg%3E");
            background-repeat: no-repeat;
            background-position: center;
        }
        .bs-spec-stacked-item.active .bs-stacked-label::after {
            transform: translateY(-50%) rotate(90deg);
        }

        .bs-stacked-values-wrapper {
            max-height: 0;
            overflow: hidden;
            transition: max-height 0.4s ease-out;
        }
        .bs-spec-stacked-item.active .bs-stacked-values-wrapper {
            max-height: 200px;
            transition: max-height 0.4s ease-in;
        }

        .bs-stacked-values {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 12px;
            align-items: start;
            text-align: center;
            padding-bottom: 20px;
        }
        .bs-stacked-value {
            font-size: 13px;
            font-weight: 500;
            line-height: 1.4;
        }
        .bs-stacked-dev-name {
            display: block;
            font-size: 11px;
            font-weight: 400;
            color: var(--bs-gray);
            margin-bottom: 4px;
        }
        .bs-stacked-value.bs-spec-winner {
            transform: scale(1.0);
        }
        .bs-stacked-value.bs-spec-winner .bs-stacked-val {
            font-weight: 700;
            color: var(--bs-primary);
        }
      }
      .bs-hidden { display: none; } 
 / *   - - -   C o m p a r i s o n   M o d e r n   T e m p l a t e   - - -   * /  
 . b s - c o m p - m o d e r n   {  
         b a c k g r o u n d :   l i n e a r - g r a d i e n t ( 1 8 0 d e g ,   # f 9 f 9 f 9   0 % ,   # f f f f f f   1 0 0 % ) ;  
         b o r d e r :   n o n e ;  
         b o x - s h a d o w :   0   1 0 p x   4 0 p x   r g b a ( 0 , 0 , 0 , 0 . 0 5 ) ;  
         p a d d i n g :   6 0 p x   4 0 p x ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - c o m p - c t r l   {  
         b a c k g r o u n d :   # f f f ;  
         p a d d i n g :   2 0 p x ;  
         b o r d e r - r a d i u s :   5 0 p x ;  
         b o x - s h a d o w :   0   4 p x   2 0 p x   r g b a ( 0 , 0 , 0 , 0 . 0 6 ) ;  
         m a r g i n - b o t t o m :   6 0 p x ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - v s - g r i d   {  
         g a p :   2 0 p x ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - v s - c o l   {  
         b a c k g r o u n d :   # f f f ;  
         b o r d e r - r a d i u s :   2 0 p x ;  
         p a d d i n g :   3 0 p x ;  
         b o x - s h a d o w :   0   4 p x   1 5 p x   r g b a ( 0 , 0 , 0 , 0 . 0 3 ) ;  
         t r a n s i t i o n :   t r a n s f o r m   0 . 3 s   e a s e ,   b o x - s h a d o w   0 . 3 s   e a s e ;  
         b o r d e r :   1 p x   s o l i d   # f 0 f 0 f 0 ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - v s - c o l : h o v e r   {  
         t r a n s f o r m :   t r a n s l a t e Y ( - 5 p x ) ;  
         b o x - s h a d o w :   0   1 5 p x   3 0 p x   r g b a ( 2 3 0 ,   5 7 ,   7 0 ,   0 . 1 ) ;  
         b o r d e r - c o l o r :   v a r ( - - b s - p r i m a r y - l i g h t ) ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - v s - i m g   {  
         h e i g h t :   1 8 0 p x ;  
         m a r g i n - b o t t o m :   2 0 p x ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - m o d e l - t i t l e   {  
         f o n t - s i z e :   2 2 p x ;  
         m a r g i n - b o t t o m :   1 0 p x ;  
 }  
  
 / *   M o d e r n   S p e c s   R o w   * /  
 . b s - c o m p - m o d e r n   . b s - s p e c - r o w   {  
         b a c k g r o u n d :   t r a n s p a r e n t   ! i m p o r t a n t ;  
         b o r d e r - b o t t o m :   1 p x   d a s h e d   # e 0 e 0 e 0 ;  
         p a d d i n g :   1 2 p x   0 ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - s p e c - l b l   {  
         f o n t - s i z e :   1 1 p x ;  
         c o l o r :   v a r ( - - b s - g r a y ) ;  
         l e t t e r - s p a c i n g :   1 p x ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - s p e c - v a l   {  
         f o n t - s i z e :   1 5 p x ;  
         f o n t - w e i g h t :   6 0 0 ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - s p e c - w i n n e r   {  
         c o l o r :   v a r ( - - b s - p r i m a r y ) ;  
         p o s i t i o n :   r e l a t i v e ;  
 }  
  
 . b s - c o m p - m o d e r n   . b s - s p e c - w i n n e r : : a f t e r   {  
         c o n t e n t :   ' � �& ' ;  
         f o n t - s i z e :   1 0 p x ;  
         v e r t i c a l - a l i g n :   t o p ;  
         m a r g i n - l e f t :   4 p x ;  
         c o l o r :   # f f d 7 0 0 ;  
 }  
 