 #swassh-city {
      --swassh-city-background: hsl(0, 0%, 100%);
      --swassh-city-foreground: hsl(222.2, 84%, 4.9%);
      --swassh-city-card: hsl(0, 0%, 100%);
      --swassh-city-card-foreground: hsl(222.2, 84%, 4.9%);
      --swassh-city-border: hsl(214.3, 31.8%, 91.4%);
      --swassh-city-muted: hsl(210, 40%, 96%);
      --swassh-city-muted-foreground: hsl(215.4, 16.3%, 46.9%);
      --swassh-city-accent: hsl(210, 40%, 94%);
      --swassh-city-accent-foreground: hsl(222.2, 84%, 4.9%);
      --swassh-city-primary: hsl(0, 84%, 60%);
      --swassh-city-primary-foreground: hsl(0, 0%, 100%);
      --swassh-city-gradient-automotive: linear-gradient(
        135deg,
        hsl(0, 84%, 60%) 0%,
        hsl(84, 100%, 50%) 100%
      );
      --swassh-city-shadow-automotive: 0 10px 30px -10px
        hsl(0, 84%, 60%, 0.3);
    }

    /* ==========================
       Popup Overlay & Content
       ========================== */
    #swassh-city .swassh-city-overlay-popup {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background-color: rgba(0, 0, 0, 0.8);
      display: none;
      align-items: center;
      justify-content: center;
      z-index: 999;
      padding: 1rem;
    }

    #swassh-city .swassh-city-content-popup {
      background: var(--swassh-city-card);
      border-radius: 0.75rem;
      box-shadow: var(--swassh-city-shadow-automotive);
      border: 1px solid var(--swassh-city-border);
      width: 100%;
      max-width: 28rem;
      padding: 2rem;
      position: relative;
      animation: swassh-city-fade-in 0.3s ease-out;
    }

    @keyframes swassh-city-fade-in {
      from {
        opacity: 0;
        transform: scale(0.95) translateY(-10px);
      }
      to {
        opacity: 1;
        transform: scale(1) translateY(0);
      }
    }

    /* ==========================
       Header & Icons
       ========================== */
    #swassh-city .swassh-city-header-popup {
      text-align: center;
      margin-bottom: 1.5rem;
    }

    #swassh-city .swassh-city-icon-popup {
      width: 4rem;
      height: 4rem;
      background: var(--swassh-city-gradient-automotive);
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 1rem auto;
    }

    #swassh-city .swassh-city-map-pin {
      width: 2rem;
      height: 2rem;
      color: var(--swassh-city-primary-foreground);
    }

    #swassh-city .swassh-city-title-popup {
      font-size: 1.5rem;
      font-weight: 700;
      color: var(--swassh-city-foreground);
      margin: 0 0 0.5rem 0;
    }

    #swassh-city .swassh-city-subtitle {
      color: var(--swassh-city-muted-foreground);
      margin: 0 0 1rem 0;
      font-size: 0.875rem;
      line-height: 1.4;
    }

    /* ==========================
       Select & Inputs
       ========================== */
    #swassh-city .swassh-city-label {
      display: block;
      font-size: 0.875rem;
      font-weight: 500;
      color: var(--swassh-city-foreground);
      margin-bottom: 0.5rem;
    }

    #swassh-city .swassh-city-select-wrapper {
      position: relative;
      margin-bottom: 1.5rem;
    }

    #swassh-city .swassh-city-select {
    width: 100%;
    height: 3rem;
    padding: 0 2.5rem 0 0.75rem; /* fix vertical alignment */
    border: 2px solid var(--swassh-city-border);
    border-radius: 0.5rem;
    background: var(--swassh-city-background);
    color: var(--swassh-city-foreground);
    font-size: 0.875rem;
    line-height: 1.2; /* ensures text is centered */
    appearance: none;
    cursor: pointer;
    display: flex;
    align-items: center; /* fixes cross-browser vertical centering */
    box-sizing: border-box;
}

    #swassh-city .swassh-city-select:focus {
      outline: none;
      border-color: var(--swassh-city-primary);
      box-shadow: 0 0 0 3px hsl(0, 84%, 60% / 0.1);
    }

    #swassh-city .swassh-city-select:hover {
      border-color: var(--swassh-city-accent);
    }

    #swassh-city .swassh-city-arrow {
    position: absolute;
    right: 0.75rem;
    top: 50%;
    transform: translateY(-50%);
    width: 1rem;
    height: 1rem;
    color: var(--swassh-city-muted-foreground);
    pointer-events: none;
}

    /* ==========================
       Button
       ========================== */
    #swassh-city .swassh-city-button {
      width: 100%;
      height: 3rem;
      background: var(--swassh-city-gradient-automotive);
      color: var(--swassh-city-primary-foreground);
      border: none;
      border-radius: 0.5rem;
      font-weight: 600;
      font-size: 0.875rem;
      cursor: pointer;
      transition: all 0.3s ease;
    }

    #swassh-city .swassh-city-button:hover:not(:disabled) {
      box-shadow: var(--swassh-city-shadow-automotive);
      transform: translateY(-1px);
    }

    #swassh-city .swassh-city-button:disabled,
    #swassh-city .swassh-city-button-disabled {
      opacity: 0.5;
      cursor: not-allowed;
      transform: none !important;
      box-shadow: none !important;
    }

    /* ==========================
       Footer
       ========================== */
    #swassh-city .swassh-city-footer {
      text-align: center;
    }

    #swassh-city .swassh-city-note {
      font-size: 0.75rem;
      color: var(--swassh-city-muted-foreground);
      margin: 0;
    }

    /* ==========================
       Dark Mode
       ========================== */
    @media (prefers-color-scheme: dark) {
      #swassh-city {
        --swassh-city-background: hsl(222.2, 84%, 4.9%);
        --swassh-city-foreground: hsl(210, 40%, 98%);
        --swassh-city-card: hsl(222.2, 84%, 4.9%);
        --swassh-city-card-foreground: hsl(210, 40%, 98%);
        --swassh-city-border: hsl(217.2, 32.6%, 17.5%);
        --swassh-city-muted: hsl(217.2, 32.6%, 17.5%);
        --swassh-city-muted-foreground: hsl(215, 20.2%, 65.1%);
        --swassh-city-accent: hsl(217.2, 32.6%, 17.5%);
        --swassh-city-accent-foreground: hsl(210, 40%, 98%);
      }
    }

    /* ==========================
       Mobile Responsiveness
       ========================== */
    @media (max-width: 640px) {
      #swassh-city .swassh-city-content-popup {
        padding: 1.5rem;
        margin: 1rem;
      }

      #swassh-city .swassh-city-title-popup {
        font-size: 1.25rem;
      }
    }