* {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      font-family: Arial, sans-serif;
      background: #080808;
      color: #ffffff;
    }

    header {
      padding: 36px 20px 28px;
      text-align: center;
      border-bottom: 1px solid #262626;
    }

    header h1 {
      margin: 0 0 8px;
      font-size: 30px;
    }

    header p {
      margin: 0;
      color: #aaaaaa;
      font-size: 16px;
    }

    .container {
      max-width: 1180px;
      margin: auto;
      padding: 28px 18px 70px;
    }

    .box {
      background: #151515;
      border: 1px solid #292929;
      border-radius: 18px;
      padding: 22px;
      margin-bottom: 24px;
    }

    .grid-filtros {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 18px;
    }

    label {
      display: block;
      margin-bottom: 8px;
      color: #bbbbbb;
      font-size: 14px;
    }

    select,
    input {
      width: 100%;
      background: #0e0e0e;
      color: #ffffff;
      border: 1px solid #3a3a3a;
      border-radius: 11px;
      padding: 14px;
      font-size: 16px;
      outline: none;
    }

    select:focus,
    input:focus {
      border-color: #80602f;
    }

    .resumo-evento {
      margin-top: 18px;
      color: #bbbbbb;
      line-height: 1.6;
    }


    
    /* =====================================================
       MAPA INTERATIVO V3
       ===================================================== */
    .mapa-box {
      background: #10051c;
      border: 1px solid #392255;
      border-radius: 18px;
      padding: 18px;
      margin-bottom: 30px;
    }

    .mapa-titulo {
      margin-bottom: 14px;
    }

    .mapa-titulo h2 {
      margin: 0 0 6px;
      font-size: 23px;
    }

    .mapa-titulo p {
      margin: 0;
      color: #b9a9ca;
      font-size: 14px;
      line-height: 1.5;
    }

    .map-legend {
      display: flex;
      flex-wrap: wrap;
      gap: 10px 16px;
      margin: 12px 0 14px;
      font-size: 13px;
      color: #eee8f6;
    }

    .map-legend span {
      display: inline-flex;
      align-items: center;
      gap: 7px;
    }

    .map-legend i {
      width: 12px;
      height: 12px;
      border-radius: 50%;
      display: inline-block;
      box-shadow: 0 0 0 2px rgba(255,255,255,.15);
    }

    .mapa-interativo-wrap {
      position: relative;
      width: min(100%, 980px);
      margin: 0 auto;
      aspect-ratio: 790 / 690;
      border-radius: 14px;
      overflow: hidden;
      background: #06020b;
    }

    #mapaInterativo {
      display: block;
      width: 100%;
      height: auto;
      touch-action: manipulation;
    }

    .map-hotspot {
      stroke-width: 3;
      vector-effect: non-scaling-stroke;
      cursor: pointer;
      transition: filter .15s ease, opacity .15s ease, stroke-width .15s ease;
    }

    .map-hotspot[data-map-status="disponivel"] {
      fill: rgba(18, 185, 96, .94);
      stroke: #29f08d;
    }

    .map-hotspot[data-map-status="reservado"] {
      fill: rgba(244, 176, 28, .95);
      stroke: #ffd35a;
    }

    .map-hotspot[data-map-status="indisponivel"] {
      fill: rgba(224, 35, 57, .95);
      stroke: #ff596b;
    }

    .map-hotspot:hover,
    .map-hotspot.map-selected {
      filter: brightness(1.18);
      stroke-width: 5;
    }

    .map-label {
      pointer-events: none;
      fill: #ffffff;
      stroke: #151019;
      stroke-width: 4;
      paint-order: stroke;
      font-size: 18px;
      font-weight: 800;
      text-anchor: middle;
      dominant-baseline: middle;
    }

    .map-quick-card {
      position: fixed;
      left: 50%;
      bottom: max(14px, env(safe-area-inset-bottom));
      transform: translateX(-50%);
      width: min(92vw, 470px);
      z-index: 40;
      background: #ffffff;
      color: #17131c;
      border-radius: 18px;
      padding: 18px;
      box-shadow: 0 18px 60px rgba(0,0,0,.45);
      display: none;
    }

    .map-quick-card.aberto { display: block; }

    .map-quick-card h3 {
      margin: 0 0 5px;
      font-size: 22px;
    }

    .map-status-text {
      font-weight: 800;
      margin-bottom: 9px;
    }

    .map-status-text.disponivel { color: #169b53; }
    .map-status-text.reservado { color: #b87900; }
    .map-status-text.indisponivel { color: #d5243e; }

    .map-quick-info {
      color: #625a68;
      line-height: 1.55;
      margin-bottom: 12px;
    }

    .map-quick-info strong { color: #29232e; }

    .map-quick-actions {
      display: grid;
      grid-template-columns: .75fr 1.75fr;
      gap: 9px;
    }

    .map-quick-actions button {
      margin-top: 0;
    }

    .map-quick-actions .secundario {
      background: #eeeeef;
      color: #17131c;
    }

    .map-quick-actions .principal {
      background: #7227e6;
      color: #ffffff;
    }

    .map-note {
      margin-top: 12px;
      color: #9f91ae;
      font-size: 12px;
      text-align: center;
    }

    @media(max-width:700px) {
      .mapa-box { padding: 10px; }
      .mapa-titulo { padding: 4px 4px 0; }
      .map-label { font-size: 23px; }
      .map-hotspot { stroke-width: 2; }
      .map-quick-card { padding: 16px; }
      .map-quick-actions { grid-template-columns: 1fr; }
    }


    /* =====================================================
       CARDS
       ===================================================== */

    .resultado-topo {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
      margin: 30px 0 16px;
    }

    .resultado-topo h2 {
      margin: 0;
      font-size: 22px;
    }

    .quantidade-resultados {
      color: #999999;
      font-size: 14px;
    }

    .camarotes {
      display: grid;
      grid-template-columns:
        repeat(auto-fill, minmax(235px, 1fr));
      gap: 16px;
    }

    .card {
      background: #151515;
      border: 1px solid #255d36;
      border-radius: 16px;
      padding: 20px;
      transition: .2s;
    }

    .card:hover {
      transform: translateY(-3px);
      border-color: #22c55e;
    }

    .numero {
      font-size: 23px;
      font-weight: 700;
      margin-bottom: 10px;
    }

    .status {
      display: inline-block;
      padding: 5px 10px;
      border-radius: 20px;
      background: rgba(34,197,94,.14);
      color: #5de789;
      font-size: 12px;
      margin-bottom: 16px;
    }

    .info {
      color: #c7c7c7;
      font-size: 15px;
      line-height: 1.6;
    }

    .preco {
      font-size: 24px;
      font-weight: bold;
      margin: 13px 0 5px;
    }

    .micro {
      color: #888888;
      font-size: 12px;
      margin-bottom: 15px;
    }

    button {
      width: 100%;
      border: 0;
      border-radius: 11px;
      padding: 14px;
      margin-top: 12px;
      font-size: 15px;
      font-weight: 700;
      cursor: pointer;
      background: #ffffff;
      color: #111111;
    }

    button:hover {
      opacity: .92;
    }

    button:disabled {
      opacity: .5;
      cursor: wait;
    }

    .loading,
    .vazio {
      grid-column: 1 / -1;
      padding: 40px 20px;
      text-align: center;
      color: #999999;
      background: #121212;
      border: 1px solid #252525;
      border-radius: 16px;
    }


    /* =====================================================
       MODAL
       ===================================================== */

    .modal-fundo {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 100;
      overflow: auto;
      background: rgba(0,0,0,.86);
      padding: 20px;
    }

    .modal {
      max-width: 610px;
      margin: 30px auto;
      background: #171717;
      border: 1px solid #333333;
      border-radius: 18px;
      padding: 26px;
    }

    .fechar {
      float: right;
      cursor: pointer;
      color: #aaaaaa;
      font-size: 27px;
      line-height: 1;
    }

    .modal h2 {
      margin-top: 0;
      font-size: 28px;
    }

    .modal h3 {
      margin-top: 28px;
      margin-bottom: 16px;
    }

    .campo {
      margin-bottom: 14px;
    }

    .detalhe-preco {
      padding: 18px;
      margin: 18px 0;
      background: #0f0f0f;
      border: 1px solid #2d2d2d;
      border-radius: 13px;
      line-height: 1.5;
    }

    .detalhe-preco strong {
      display: block;
      margin-top: 5px;
      font-size: 28px;
    }

    .aviso-reserva {
      padding: 16px;
      margin: 18px 0;
      border-radius: 12px;
      background: #222222;
      color: #dddddd;
      font-size: 14px;
      line-height: 1.6;
    }

    .info-importante {
      margin: 22px 0;
      padding: 20px;
      background: #101010;
      border: 1px solid #303030;
      border-radius: 14px;
    }

    .info-importante h3 {
      margin: 0 0 18px;
      font-size: 20px;
    }

    .info-bloco {
      padding: 0 0 17px;
      margin-bottom: 17px;
      border-bottom: 1px solid #292929;
    }

    .info-bloco:last-child {
      margin-bottom: 0;
      padding-bottom: 0;
      border-bottom: 0;
    }

    .info-bloco-titulo {
      font-size: 15px;
      font-weight: 700;
      margin-bottom: 7px;
      color: #ffffff;
    }

    .info-bloco p {
      margin: 4px 0;
      color: #c6c6c6;
      font-size: 14px;
      line-height: 1.55;
    }

    .central-card {
      margin-top: 12px;
      padding: 14px;
      background: #181818;
      border: 1px solid #2e2e2e;
      border-radius: 10px;
    }

    .central-card strong {
      display: block;
      margin-bottom: 6px;
      color: #ffffff;
    }

    .destaque {
      color: #ffffff;
      font-weight: 700;
    }

    .alerta-sem-open {
      padding: 13px 14px;
      border-radius: 9px;
      background: #1e1e1e;
      color: #d5d5d5;
      line-height: 1.5;
    }

    .sucesso {
      text-align: center;
      padding: 22px 8px;
    }

    .sucesso h2 {
      color: #58de84;
    }

    .codigo-reserva {
      display: inline-block;
      background: #101010;
      border: 1px solid #333333;
      border-radius: 9px;
      padding: 10px 14px;
      margin: 5px 0 12px;
      font-weight: 700;
    }


    @media(max-width:700px) {

      .grid-filtros {
        grid-template-columns: 1fr;
      }

      .resultado-topo {
        display: block;
      }

      .quantidade-resultados {
        margin-top: 6px;
      }

      .mapa-box {
        padding: 14px;
      }

      .modal {
        padding: 20px;
      }

    }

  
    /* LISTA DE CAMAROTES RECOLHIDA */
    .lista-toggle-wrap{
      display:flex;
      justify-content:center;
      margin:18px 0 8px;
    }
    .lista-toggle{
      width:min(100%,560px);
      border:1px solid #8c4dff;
      border-radius:999px;
      padding:15px 22px;
      background:linear-gradient(90deg,#5e20d8,#7d2cf0);
      color:#fff;
      font-weight:800;
      font-size:16px;
      cursor:pointer;
      box-shadow:0 10px 30px rgba(104,37,224,.24);
    }
    .lista-toggle:hover{filter:brightness(1.08)}
    .lista-camarotes-collapsible{
      display:none;
      margin-top:22px;
    }
    .lista-camarotes-collapsible.aberta{display:block}
    @media(max-width:700px){
      .lista-toggle{font-size:15px;padding:14px 18px}
    }

  
    .map-hotspot[data-map-status="carregando"] {
      fill: rgba(70, 70, 78, .78);
      stroke: #8a8a94;
      cursor: default;
    }