    body {
      font-family: 'Nunito Sans', sans-serif;
      margin: 0;
      padding: 0;
      min-height: 100vh;
      background:
        radial-gradient(circle at 15% 20%, rgba(46, 120, 255, 0.3) 0%, rgba(46, 120, 255, 0) 32%),
        radial-gradient(circle at 80% 15%, rgba(0, 191, 255, 0.22) 0%, rgba(0, 191, 255, 0) 36%),
        linear-gradient(155deg, #040815 0%, #07153a 45%, #02040d 100%);
      color: #eaf2ff;
      overflow-x: hidden;
      position: relative;
    }

    body::before,
    body::after {
      content: "";
      position: fixed;
      width: 60vw;
      height: 60vw;
      border-radius: 50%;
      filter: blur(90px);
      z-index: 0;
      pointer-events: none;
    }

    body::before {
      top: -18vw;
      left: -10vw;
      background: rgba(26, 102, 255, 0.24);
    }

    body::after {
      right: -15vw;
      bottom: -20vw;
      background: rgba(0, 170, 255, 0.18);
    }

    body>* {
      position: relative;
      z-index: 1;
    }

    header,
    footer {

      display: flex;
      align-items: center;
    }

    footer h2 {
      margin: 0%;
    }

    header {
      justify-content: space-between;
      /*background-color: #000e3a;*/
      color: white;
      height: 9vh;
      padding: 10px 20px;
      border-bottom: solid 1px #ffffff75;
    }

    .title {
      flex-grow: 1;
      text-align: center;
    }

    .title h3,
    .title h2 {
      padding: 2px;
      margin: 0;
    }

    .control {
      position: static;
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      justify-content: center;
      width: 100%;
      z-index: 1000;
      margin: 20px auto 0;
      /* sopra marker, loader, ecc. */
    }

    .control a {
      background-color: #ffffff;
      color: #000000;
      border: solid 1px #000e3a;
      padding: 8px 16px;
      font-size: 20px;
      font-weight: 600;
      border-radius: 10px;
      cursor: pointer;
      transition: background-color 0.2s ease;
      font-family: 'Nunito Sans', 'sans-serif';
      text-decoration: none;
    }

    .control a:hover {
      background-color: #ffcc26;
      /* un po’ più scuro */
    }

    /* From Uiverse.io by gharsh11032000 */
    .animated-button {
      position: relative;
      display: flex;
      align-items: center;
      gap: 4px;
      padding: 10px 36px;
      border: 4px solid;
      border-color: transparent;
      font-size: 16px;
      /*background-color: inherit;*/
      border-radius: 100px;
      font-weight: 600;
      color: #000e3a;
      box-shadow: 0 0 0 2px #c42027;
      cursor: pointer;
      overflow: hidden;
      transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
    }

    .animated-button svg {
      position: absolute;
      width: 24px;
      fill: #000e3a;
      z-index: 9;
      transition: all 0.8s cubic-bezier(0.23, 1, 0.32, 1);
    }

    .animated-button .arr-1 {
      right: 16px;
    }

    .animated-button .arr-2 {
      left: -25%;
    }

    .animated-button .circle {
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 20px;
      height: 20px;
      background-color: #000e3a;
      border-radius: 50%;
      opacity: 0;
      transition: all 0.8s cubic-bezier(0.23, 1, 0.32, 1);
    }

    .animated-button .text {
      position: relative;
      z-index: 1;
      transform: translateX(-12px);
      transition: all 0.8s cubic-bezier(0.23, 1, 0.32, 1);
    }

    .animated-button:hover {
      box-shadow: 0 0 0 12px transparent;
      color: white;
      border-radius: 12px;
    }

    .animated-button:hover .arr-1 {
      right: -25%;
    }

    .animated-button:hover .arr-2 {
      left: 16px;
    }

    .animated-button:hover .text {
      transform: translateX(12px);
    }

    .animated-button:hover svg {
      fill: white;
    }

    .animated-button:active {
      scale: 0.95;
      box-shadow: 0 0 0 4px #000e3a;
    }

    .animated-button:hover .circle {
      width: 320px;
      height: 220px;
      opacity: 1;
    }




    footer {
      justify-content: center;
      font-size: 0.9em;
      color: #ffffff;
      bottom: 0%;
      background-color: #c42027;
      position: fixed;
      width: 100%;
      bottom: 0px;
      padding-top: 3px;
      padding-bottom: 3px;
    }

    main {
      padding: 10px 40px 5px 40px;
      position: relative;
      min-height: 300px;
      padding-bottom: 16px;
      overflow-x: auto;
    }

    tbody {
      font-size: 1em;
    }

    table {
      border-collapse: separate;
      border-spacing: 0;
      display: none;
      border: 2px solid black;
      border-radius: 5px;
      text-align: center;
      box-shadow: 0px 0px 3px 3px #00000040;
      margin: auto;
      min-width: 720px;
      white-space: nowrap;
    }

    #data-table th,
    #data-table td {
      font-size: 0.95rem;
      padding: 0px 6px;
    }



    /* Reset body cell borders to none */
    td {
      border-top: solid rgb(100, 100, 100) 1px;
    }

    #data-table th,
    #data-table td {
      min-width: 8vw;
    }

    /* Bold first column */
    td:nth-child(1) {
      font-weight: bold;
      background-color: #000e3a;
      color: white;
      width: 9vw;
    }

    td:nth-child(2),
    td:nth-child(3),
    td:nth-child(4),
    td:nth-child(5),
    td:nth-child(6),
    td:nth-child(7) {
      width: 6vw;
    }

    td:nth-child(8) {
      width: 7vw;
      background-color: #ffffff;
      color: #000000;
    }




    /* First day wind column */
    th:nth-child(2),
    td:nth-child(2) {
      border-left: 2px solid black;
      border-right: 1px solid rgb(100, 100, 100)
    }

    /* Next day wind columns */
    th:nth-child(4),
    td:nth-child(4),
    th:nth-child(6),
    td:nth-child(6) {
      border-left: 2px solid rgb(0, 0, 0);
      border-right: 1px solid rgb(0, 0, 0);
    }

    th:nth-child(7),
    td:nth-child(7) {
      border-right: 2px solid rgb(0, 0, 0);
    }

    #table-head tr:first-child th:last-child {
      color: #000000;
    }

    #data-table th:last-child,
    #data-table td:last-child {
      padding: 0;
    }

    /* Wind cell color classes */
    .wind-violet {
      background-color: #9900ff;
      color: white;
    }

    .wind-red {
      background-color: red;
      color: white;
    }

    .wind-yellow {
      background-color: yellow;
      color: black;
    }

    .wind-green {
      background-color: #5edb61;
      color: black;
    }

    /* Sea cell color classes */
    .sea-violet {
      background-color: #9900ff;
      color: white;
    }

    .sea-red {
      background-color: red;
      color: white;
    }

    .sea-yellow {
      background-color: yellow;
      color: black;
    }

    .sea-green {
      background-color: #5edb61;
      color: black;
    }




    .legend-container .btn {
      display: inline-block;
      padding: 0px 10px;
      font-size: 1em;
      font-weight: 700;
      color: rgb(0, 0, 0);
      border: none;
      cursor: pointer;
      position: relative;
      background-color: transparent;
      text-decoration: none;
      overflow: hidden;
      z-index: 1;
      font-family: 'Nunito Sans', sans-serif;
      width: 100%;
    }

    .legend-container .btn::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0;
      width: 100%;
      height: 100%;
      background-color: #0972eb;
      transform: scaleX(0%);
      transition: all .3s;
      z-index: -1;

    }


    .legend-container .btn:hover {
      color: white;
    }

    .legend-container .btn:hover::before {
      transform: scaleX(100%);
    }

    /* From Uiverse.io by Cornerstone-04 - Open + top action buttons */
    #data-table .btn,
    .control .animated-button {
      height: auto;
      float: none;
      transition: .5s linear;
      position: relative;
      display: block;
      overflow: hidden;
      text-align: center;
      background: transparent;
      text-transform: uppercase;
      font-weight: 900;
      font-family: 'Nunito Sans', sans-serif;
      text-decoration: none;
      cursor: pointer;
      outline: none;
      border: none;
    }

    #data-table .btn {
      width: 100%;
      padding: 4px 6px;
      margin: 0;
      color: black;
    }

    .control .animated-button {
      min-width: 140px;
      width: auto;
      padding: 10px 16px;
      margin: 0 5px;
      color: #ffffff;
      border-radius: 0;
      box-shadow: none;
      background-color: #1c2f4f;
    }

    #data-table .btn:before,
    .control .animated-button:before {
      position: absolute;
      content: '';
      left: 0;
      bottom: 0;
      height: 4px;
      width: 100%;
      border-bottom: 4px solid transparent;
      border-left: 4px solid transparent;
      box-sizing: border-box;
      transform: translateX(100%);
    }

    #data-table .btn:after,
    .control .animated-button:after {
      position: absolute;
      content: '';
      top: 0;
      left: 0;
      width: 100%;
      height: 4px;
      border-top: 4px solid transparent;
      border-right: 4px solid transparent;
      box-sizing: border-box;
      transform: translateX(-100%);
    }

    #data-table .btn:hover,
    .control .animated-button:hover {
      box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
    }

    #data-table .btn:hover:before,
    .control .animated-button:hover:before {
      border-color: #d1001d;
      height: 100%;
      transform: translateX(0);
      transition: .2s transform linear, .2s height linear .2s;
    }

    #data-table .btn:hover:after,
    .control .animated-button:hover:after {
      border-color: white;
      height: 100%;
      transform: translateX(0);
      transition: .2s transform linear, .2s height linear .3s;
    }

    .control .animated-button svg,
    .control .animated-button .circle {
      display: none;
    }

    .control .animated-button .text {
      display: block;
      position: relative;
      z-index: 1;
      transform: none;
      transition: none;
      color: inherit;
    }


    .overlay {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background-color: rgba(0, 0, 255, 0.3);
      /* overlay blu semitrasparente */
      display: none;
      z-index: 999;
    }


    /* Loader styles */
    .loader-container {
      position: fixed;
      /* fix to viewport */
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 1000;
    }

    .container {
      width: 250px;
      height: 250px;
      padding: 15px;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .cloud {
      width: 250px;
    }

    .front {
      padding-top: 45px;
      margin-left: 25px;
      display: inline;
      position: absolute;
      z-index: 11;
      animation: clouds 8s infinite;
      animation-timing-function: ease-in-out;
    }

    .back {
      margin-top: -30px;
      margin-left: 150px;
      z-index: 12;
      animation: clouds 12s infinite;
      animation-timing-function: ease-in-out;
    }

    .right-front {
      width: 45px;
      height: 45px;
      border-radius: 50% 50% 50% 0%;
      background-color: #4c9beb;
      display: inline-block;
      margin-left: -25px;
      z-index: 5;
    }

    .left-front {
      width: 65px;
      height: 65px;
      border-radius: 50% 50% 0% 50%;
      background-color: #4c9beb;
      display: inline-block;
      z-index: 5;
    }

    .right-back {
      width: 50px;
      height: 50px;
      border-radius: 50% 50% 50% 0%;
      background-color: #4c9beb;
      display: inline-block;
      margin-left: -20px;
      z-index: 5;
    }

    .left-back {
      width: 30px;
      height: 30px;
      border-radius: 50% 50% 0% 50%;
      background-color: #4c9beb;
      display: inline-block;
      z-index: 5;
    }

    .sun {
      width: 120px;
      height: 120px;
      background: -webkit-linear-gradient(to right, #fcbb04, #fffc00);
      background: linear-gradient(to right, #fcbb04, #fffc00);
      border-radius: 60px;
      display: inline;
      position: absolute;
    }

    .sunshine {
      animation: sunshines 2s infinite;
    }

    @keyframes sunshines {
      0% {
        transform: scale(1);
        opacity: 0.6;
      }

      100% {
        transform: scale(1.4);
        opacity: 0;
      }
    }

    @keyframes clouds {
      0% {
        transform: translateX(15px);
      }

      50% {
        transform: translateX(0);
      }

      100% {
        transform: translateX(15px);
      }
    }

    #data-table tbody tr:hover td {
      background-color: #000000;
      color: white;
      cursor: pointer;
    }

    #data-table tbody tr:hover .btn {
      color: white;
    }

    .logo {
      position: relative;
      height: 100%;
    }

    /* Legend styling */
    #legend {
      display: none;
      position: absolute;
      bottom: 50px;
      left: 35px;
      padding: 10px;
      font-size: 0.85em;
      /* box-shadow: 0 0 5px rgba(0, 0, 0, 0.3); */
      z-index: 1001;
      border: solid 1px gray;
      border-radius: 5px;
      background-color: #ededed;
      box-shadow: 3px 3px 3px #00000082;
      width: max-content;
      color: black;
    }

    #legend div {
      display: flex;
      align-items: center;
      margin-bottom: 2px;
    }

    #legend span.box {
      width: 16px;
      height: 16px;
      display: inline-block;
      margin-right: 8px;
      border: 1px solid #000;
    }

    .legend-container:hover #legend {
      display: inline-block;
    }

    .legend-container {
      text-align: center;
      margin: 10px 0;
      position: absolute;
      bottom: 45px;
      display: inline-block;
      background-color: grey;
      padding: 10px;
      border-top-right-radius: 20px;
      border-bottom-right-radius: 20px;
    }

    @media (max-width: 1024px) {
      header {
        height: auto;
        padding: 10px 12px;
        gap: 8px;
      }

      .title h3 {
        font-size: 0.95rem;
      }

      .title h2 {
        font-size: 1.1rem;
      }

      main {
        padding: 8px 16px 20px;
      }

      .animated-button {
        font-size: 14px;
        padding: 8px 22px;
      }

      footer h2 {
        font-size: 0.9rem;
        text-align: center;
      }
    }

    @media (max-width: 768px) {
      header {
        flex-wrap: wrap;
      }

      .logo {
        height: 38px;
        width: auto;
      }

      .title {
        order: 3;
        width: 100%;
      }

      .title h3 {
        font-size: 0.78rem;
      }

      .title h2 {
        font-size: 0.92rem;
      }

      table {
        min-width: 640px;
      }

      #data-table th,
      #data-table td {
        font-size: 0.8rem;
        padding: 4px 4px;
      }

      .control {
        position: static;
        transform: none;
        margin: 16px auto 0;
        justify-content: center;
        width: 100%;
      }

      .animated-button {
        font-size: 13px;
        padding: 8px 16px;
      }

      .legend-container {
        position: static;
        margin: 14px auto 70px;
        border-radius: 14px;
      }

      #legend {
        left: 50%;
        transform: translateX(-50%);
        bottom: calc(100% + 6px);
        font-size: 0.75rem;
        max-width: calc(100vw - 32px);
        white-space: normal;
      }

      footer {
        padding: 6px 10px;
      }

      footer h2 {
        font-size: 0.72rem;
        line-height: 1.35;
        margin: 0;
      }
    }

    @media (max-width: 480px) {
      main {
        padding: 8px 8px 20px;
      }

      table {
        min-width: 560px;
      }

      #data-table th,
      #data-table td {
        font-size: 0.7rem;
        padding: 3px 3px;
      }

      #data-table .btn {
        font-size: 0.75rem;
        padding: 0 4px;
      }

      .animated-button {
        font-size: 12px;
        padding: 7px 14px;
      }
    }
