* {
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none!important;
}
@font-face {
    font-family: "TahomaWeb";
    src: url("https://db.onlinewebfonts.com/t/cd0381aa3322dff4babd137f03829c8c.eot");
    src: url("https://db.onlinewebfonts.com/t/cd0381aa3322dff4babd137f03829c8c.eot?#iefix")format("embedded-opentype"),
    url("https://db.onlinewebfonts.com/t/cd0381aa3322dff4babd137f03829c8c.woff2")format("woff2"),
    url("https://db.onlinewebfonts.com/t/cd0381aa3322dff4babd137f03829c8c.woff")format("woff"),
    url("https://db.onlinewebfonts.com/t/cd0381aa3322dff4babd137f03829c8c.ttf")format("truetype"),
    url("https://db.onlinewebfonts.com/t/cd0381aa3322dff4babd137f03829c8c.svg#Tahoma")format("svg");
}
:root {
  /* Palette ed effetti "XP CRT" */
  --xp-screen-background: #0f1419;
  --xp-screen-glow: rgba(0, 150, 150, .12);
  --xp-scanline-opacity: 0.15;
  --xp-scanline-width: 1px;
  --xp-scanline-gap: 1px;
  --xp-scanline-moving-color: hsla(0, 0%, 100%, .15);
  --xp-screen-flicker: 0.01;
  --xp-screen-text: rgba(120, 255, 120, .7);
  --xp-screen-curvature: 0px;
  --xp-screen-vignette: 0.15;
  --xp-aberration-offset: 1.2px;
  --xp-aberration-opacity: 0.05;
  --xp-scanline-moving-height: 0.6px;
  --xp-header-glow: rgba(120, 255, 150, .4);
}

.xp-monitor {
  position: relative; 
  background: var(--xp-screen-background);
  color: var(--xp-screen-text);
  overflow: hidden;
}

.xp-monitor::before {
  background: repeating-linear-gradient(
    0deg,
    rgba(0, 0, 0, var(--xp-scanline-opacity)),
    rgba(0, 0, 0, var(--xp-scanline-opacity)) var(--xp-scanline-width),
    transparent var(--xp-scanline-width),
    transparent calc(var(--xp-scanline-width) + var(--xp-scanline-gap))
  );
  content: "";
  display: block;
  height: 100%;
  inset: 0;
  mix-blend-mode: multiply;
  opacity: .7;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 100000;
}

.xp-monitor::after {
  background: repeating-linear-gradient(
    90deg,
    rgba(0, 0, 0, calc(var(--xp-scanline-opacity) * .7)),
    rgba(0, 0, 0, calc(var(--xp-scanline-opacity) * .7)) var(--xp-scanline-width),
    transparent var(--xp-scanline-width),
    transparent calc(var(--xp-scanline-width) + var(--xp-scanline-gap))
  );
  content: "";
  display: block;
  height: 100%;
  inset: 0;
  mix-blend-mode: multiply;
  opacity: .7;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 100000;
}

*,:after,:before {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale
}

body.brightness {
    filter: brightness(1.06) contrast(1.08) saturate(1.06);
}

body {
    font-family: "Tahoma", "TahomaWeb", Arial, sans-serif;
    font-size: 11px;
    height: 100%;
    line-height: 1.5;
    overflow: hidden;
    width: 100%;
}

/* Stato base: modal CHIUSO → torna a colori con ease-out 0.3s */
body > *:not(#logoff-dialog-container) {
  filter: grayscale(0) brightness(1);
  transition: filter 1s ease-in-out;
}

/* Stato attivo: modal APERTO → va in scala di grigi con delay e durata maggiori */
body.sfocato > *:not(#logoff-dialog-container) {
  filter: grayscale(100%) brightness(.7);
  transition: filter 1.2s ease-in-out .5s; /* durata 1.2s + delay .5s */
}


html, body {
    touch-action: none;
    overscroll-behavior: none;
    -webkit-user-select: none;
    user-select: none;
}

html {
    font-size: 100%;
    height: 100%;
    -webkit-text-size-adjust: 100%;
    -moz-text-size-adjust: 100%;
    text-size-adjust: 100%
}

#avvio {
    background-color: #000;
    opacity: 1;
    pointer-events: none;
}

#avvio, #accesso {
    align-items: center;
    display: flex;
    height: 100%;
    justify-content: center;
    left: 0;
    position: fixed;
    top: 0;
    width: 100%;
    z-index: 10000;
}

.caricamento {
    opacity: 1;
}

#logo, .contenitore, .caricamento {
    backface-visibility: hidden;
    transform: translateZ(0);
    transform-style: preserve-3d;
    will-change: opacity, transform;
}

#logo {
    display: block;
    height: auto;
    left: 20px;
    margin-bottom: 10px;
    position: relative;
    transition: opacity .5s ease;
    width: 400px;
}

.progresso-avvio {
    align-self: center;
    border: 2px solid #b2b2b2;
    border-radius: 7px;
    flex-shrink: 0;
    font-size: 0;
    height: 22px;
    margin: 0 auto;
    overflow: hidden;
    padding: 2px 1px;
    transition: opacity .5s ease;
    width: 180px;
}

.barra-avvio {
    animation: barraAvvio 2s infinite linear;
    background: linear-gradient(
      180deg,
      #2838c7 0,
      #5979ef 17%,
      #869ef3 32%,
      #869ef3 45%,
      #5979ef 59%,
      #2838c7
    );
    display: inline-block;
    height: 100%;
    margin-right: 2px;
    width: 9px;
}

@keyframes barraAvvio {
    0%   { transform: translateX(-30px); }
    100% { transform: translateX(180px); }
}

.sinistra {
    align-items: flex-start;
    bottom: 48px;
    color: #fff;
    display: flex;
    flex-direction: column;
    font-size: 16px;
    left: 100px;
    line-height: 1.4;
    position: absolute;
}

/* INIZIO LOGIN */

.schermata-accesso {
  display: block;
  background-color: #002d99;
  color: #fff;
  height: 100%;
  left: 0;
  overflow: hidden;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: 3000;
}

.destraImg {
    display: block;
    height: 32px;
    width: auto;
}

.destraPortfolio {
    bottom: 50px;
    position: absolute;
    right: 100px;
}

.portfolio {
    display: block;
    height: 32px;
    width: auto;
}

.schermata-accesso .schermata-accesso-interna {
  background-color: #587cdb;
  inset: 100px 0;
  position: absolute;
}

.schermata-accesso .schermata-accesso-interna:before {
    background: linear-gradient(90deg,transparent,#bad7f8,transparent,transparent);
    content: "";
    height: 3px;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: 100%
}

.schermata-accesso .schermata-accesso-interna:after {
    background: linear-gradient(90deg,transparent,#f8953d,transparent,transparent);
    bottom: 0;
    content: "";
    height: 3px;
    left: 0;
    position: absolute;
    right: 0;
    width: 100%
}

.schermata-accesso .schermata-accesso-centro {
    display: flex;
    height: 100%;
    position: relative;
    width: 100%;
}

.schermata-accesso .schermata-accesso-centro .sinistra-xp {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    left: 50%;
    position: absolute;
    top: 45%;
    transform: translate(calc(-100% - 72px), -50%);
}

.schermata-accesso .logo-xp {
    display: block;
    height: 170px;
    position: relative;
    right: 0;
    width: auto;
}

.schermata-accesso img {
    vertical-align: top;
}

.schermata-accesso .schermata-accesso-centro .sinistra-xp .testo-sinistra {
    font-size: 18px;
    font-weight: 500;
    letter-spacing: .25px;
    margin-right: 3px;
    margin-top: 15px;
    position: relative;
    right: 0;
}

.istruzione-desktop {
    display: inline;
}

.separatore-accesso {
    background: linear-gradient(90deg, rgba(88, 124, 219, 0), #bad7f8 40%, #bad7f8 60%, rgba(88, 124, 219, 0));
    border: none;
    height: 2px;
    max-width: 220px;
    opacity: 0.35;
    padding-right: 28px;
    width: 100%;
}

.solo-mobile {
    display: none;
}

.schermata-accesso .divisore-accesso {
    background: linear-gradient(180deg, rgba(186, 215, 248, 0) 0, #bad7f8 40%, #bad7f8 60%, rgba(186, 215, 248, 0));
    bottom: 20%;
    left: 50%;
    opacity: 0.35;
    pointer-events: none;
    position: absolute;
    top: 20%;
    transform: translateX(-50%);
    width: 2px;
    z-index: 0;
}

.schermata-accesso .schermata-accesso-centro .destra {
    align-items: center;
    display: flex;
    justify-content: flex-start;
    left: 50%;
    position: absolute;
    top: 45%;
    transform: translate(72px, -50%);
    width: auto;
}

.schermata-accesso .sfondo-gradiente {
    border-radius: 5px;
    display: flex;
    margin: 20px 0;
    min-width: 260px;
    opacity: 1;
    overflow: hidden;
    padding: 12px 18px;
    position: relative;
    transition: opacity .3s;
    width: auto;
    z-index: 0;
}

.schermata-accesso .sfondo-gradiente:hover:before {
    opacity: 1;
}

.schermata-accesso .sfondo-gradiente:before {
    background: linear-gradient(90deg, #113fa6, #113fa6, #587cdb);
    border-radius: inherit;
    content: "";
    height: 100%;
    left: 0;
    opacity: 0;
    position: absolute;
    top: 0;
    transition: opacity .3s ease;
    width: 100%;
    z-index: -1;
}

.cursore-interattivo, .interattivo {
    cursor: pointer !important;
}

.schermata-accesso .sfondo-gradiente .utente img {
    border: 3px solid #fff;
    border-radius: 5px;
    transition: border-color .3s;
    width: 70px;
}

.schermata-accesso .sfondo-gradiente:hover .utente img {
    border: 3px solid #fdbd32;
}

.schermata-accesso .testo-avvolto {
    margin-left: 20px;
    width: 200px;
}

.schermata-accesso .testo-avvolto .nome {
    font-size: 25px;
    font-weight: 500;
    letter-spacing: .25px;
    margin-bottom: .5px;
}

.schermata-accesso .testo-avvolto .titolo-utente {
    color: navy;
    font-size: 13px;
    font-weight: bold;
    line-height: 1;
    margin-top: 0px;
    transition: color .3s;
}

.schermata-accesso .sfondo-gradiente:hover .titolo-utente {
    color: #fdbd32;
}

.schermata-accesso .spegni {
    align-items: center;
    bottom: 35px;
    display: flex;
    left: 50px;
    position: absolute;
}

.schermata-accesso .spegni:hover #icona-spegnimento {
    opacity: 1;
}

#icona-spegnimento {
    height: 32px;
    margin-right: 8px;
    opacity: .8;
    transition: opacity .2s ease;
    width: 32px;
}

.schermata-accesso .testo-spegnimento {
    color: #eff1ed;
    font-size: 16px;
    font-weight: 500;
}

.schermata-accesso .destra-basso {
    bottom: 30px;
    display: flex;
    flex-direction: column;
    position: absolute;
    right: 50px;
}

.schermata-accesso .destra-basso span {
    font-size: 14px;
    margin-top: 1px;
}

.dettaglio-mobile-basso {
    display: none;
}

/* MODAL */

#logoff-dialog-container {
    align-items: center;
    inset: 0;
    justify-content: center;
    position: fixed;
    z-index: 10001;
    display: flex;
    opacity: 0;
    pointer-events: none;
}

#logoff-dialog-container.visible {
    opacity: 1;
    pointer-events: auto;
}


#context-menu-container,
#logoff-dialog-container,
.tooltip {
    filter: none !important;
}

.finestra-spegnimento {
    background-color: #ece9d8;
    border: 1px solid #000;
    border-bottom: 1px solid #2b2b2b;
    border-left: 1px solid #2b2b2b;
    border-right: 1px solid #2b2b2b;
    border-top: 1px solid #2b2b2b;
    box-shadow: 0 0 10px rgba(0, 0, 0, .5);
    color: #000;
    font-size: 11px;
    padding: 0;
    position: relative;
    width: 350px;
    z-index: 2;
}

.corpo-finestra-spegnimento {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    padding: 0;
}

.intestazione-finestra-spegnimento {
    align-items: center;
    background: linear-gradient(90deg, #002a8c, #0039a9 50%, #002a8c);
    box-sizing: border-box;
    color: #fff;
    display: flex;
    font-size: 18px;
    font-weight: 500;
    height: 50px;
    justify-content: space-between;
    letter-spacing: .1px;
    padding: 4px 4px 4px 16px;
    position: relative;
}

.icona-intestazione-spegnimento {
    height: 36px;
    margin-right: 10px;
    order: 2;
    width: 36px;
}

.intestazione-finestra-spegnimento:after {
    background: linear-gradient(90deg, transparent 25%, #bad7f8 45%, #bad7f8 55%, transparent 75%);
    bottom: -1px;
    content: "";
    height: 2px;
    left: 0;
    pointer-events: none;
    position: absolute;
    right: 0;
    width: 100%;
}

.testo-intestazione-spegnimento {
    flex-grow: 1;
    order: 1;
}

.barra-separatrice-spegnimento {
    background-color: #3e5890;
    box-sizing: border-box;
    height: auto;
    width: 100%;
}

.contenitore-pulsanti-spegnimento {
    align-items: center;
    background: linear-gradient(90deg, #587cdb, #688ceb 50%, #587cdb);
    display: flex;
    flex-grow: 1;
    justify-content: space-evenly;
    margin: 0;
    padding: 36px 0;
    width: auto;
}

.pulsante-spegnimento {
    align-items: center;
    background: none !important;
    border: none !important;
    color: #fff;
    display: flex;
    flex-direction: column;
    text-align: center;
    width: 80px;
}

.pulsante-spegnimento img {
    background: none !important;
    border: none !important;
    filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, .4));
    height: 40px;
    margin-bottom: 6px;
    transition: filter .15s ease-in-out;
    width: 40px;
}

.pulsante-spegnimento:hover img {
    filter: brightness(1.06) drop-shadow(1px 1px 2px rgba(0, 0, 0, .5));
}

.pulsante-spegnimento span {
    color: #fff;
    font-family: Tahoma, Arial, sans-serif;
    font-size: 13.5px;
    line-height: 1.2;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, .4);
}

.barra-separatrice-spegnimento-inferiore {
    align-items: center;
    background: linear-gradient(90deg, #002a8c, #0039a9 50%, #002a8c);
    box-sizing: border-box;
    display: flex;
    height: 50px;
    justify-content: flex-end;
    padding: 0 15px;
    position: relative;
}

.footer-finestra-spegnimento {
    display: flex;
    align-items: center;
    gap: 10px;
}

/* FASE 4 */
.sfondo-predefinito{
    opacity: 1;
    pointer-events: auto;
    background-image: url(../img/xp.jpg);
}

.scrivania {
    background-position: 50%;
    background-size: cover;
    height: 100%;
    inset: 0 !important;
    overflow: hidden !important;
    position: fixed !important;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    width: 100%;
}

.icone-scrivania{
    display: grid;
    grid-auto-rows: 100px;
    grid-template-columns: 100px;
    padding: 15px 0 0 15px;
    grid-gap: 10px;
    height: calc(100% - 30px);
    place-content: start start;
}

.sovrapposizione-selezione {
    height: calc(100% - 30px);
    left: 0;
    pointer-events: auto;
    position: fixed;
    top: 0;
    touch-action: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
    width: 100%;
}

/* ICONE DESKTOP */

.icona-scrivania {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 3px;
    display: flex;
    flex-direction: column;
    height: 100px;
    justify-content: center;
    padding: 8px;
    position: relative;
    width: 100px;
    z-index: 5;
}

.icona-scrivania img {
    height: 50px;
    margin-bottom: 0px;
    transform: translateY(2px);
    width: 50px;
}

.icona-scrivania span {
    color: #fff;
    display: block;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: .3px;
    line-height: 18px;
    max-width: 100%;
    overflow: visible;
    text-align: center;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, .9), 0 0 3px rgba(0, 0, 0, .8);
    transform: translateY(2px);
    white-space: normal;
}

.icona-scrivania:hover {
    background-color: rgb(49 106 197 / 22%);
}

.icona-scrivania.selezionata:hover {
    background-color: rgba(49, 106, 197, .384);
}

.icona-scrivania.selezionata {
    background-color: rgb(49 106 197 / 50%);
    border: 1px dotted hsla(0, 0%, 100%, .5);
}

canvas, img, video {
    -webkit-user-drag: none !important;
    touch-action: none !important;
}

.riquadro-selezione {
    background-color: rgba(49,106,197,.15);
    border: 1px dotted hsla(0,0%,100%,.5);
    border-radius: 3px;
    pointer-events: none;
    position: absolute
}

/* START */
.barra-attivita {
    align-items: center;
    background-repeat: repeat-x;
    background-size: auto 100%;
    background-image: url(../img/bar.webp);
    bottom: 0;
    display: flex;
    height: 30px;
    left: 0;
    overflow: hidden;
    position: fixed;
    width: 100%;
    z-index: 500;
}

.pulsante-start {
    background: transparent;
    border: none !important;
    box-shadow: none !important;
    height: 30px;
    margin: 0;
    padding: 0;
    position: relative;
    transition: filter .1s ease;
    width: auto;
    -webkit-tap-highlight-color: transparent;
    flex-shrink: 0;
}

.pulsante-start, .pulsante-start:active {
    background: transparent !important;
    border: none !important;
    filter: brightness(.9);
}

.pulsante-start{
    outline: none !important;
}

.pulsante-start:hover {
    filter: brightness(1.15);
}
.pulsante-start.active:hover {
    filter: brightness(.9) !important;
}


.pulsante-start img {
    border: none;
    display: block;
    height: 30px;
    -webkit-user-drag: none;
}

/*APERTURA PROGRAMMI*/

.taskbar-programs {
    align-items: center;
    display: flex;
    flex-grow: 1;
    height: 100%;
    margin: 0 4px;
    min-width: 0;
    overflow: hidden;
    padding: 0;
}

.taskbar-item:first-child {
    margin-left: 0;
}

.taskbar-item img {
    display: block;
    flex-shrink: 0;
    height: 15px;
    margin-right: 6px;
    position: relative;
    width: 15px;
}

.taskbar-item {
    align-items: center;
    background: linear-gradient(180deg, #3ba0e7 0, #3295eb 50%, #3389d4);
    border: 1px solid #0e63ad;
    border-radius: 4px;
    box-shadow: inset 0 1px 1px hsla(0, 0%, 100%, .2);
    color: #fff;
    display: flex;
    flex-shrink: 1;
    font-size: 11px;
    width: 168px;
    height: 26px;
    justify-content: flex-start;
    overflow: hidden;
    padding: 0 10px;
    position: relative;
    text-overflow: ellipsis;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, .3);
    transition: width .15s, background .18s, box-shadow .18s, border-color .18s;
    white-space: nowrap;
}

.taskbar-item.active {
    background: linear-gradient(0deg, #1a5a99 0, #2176c7);
    border: 1px solid #174a7c;
    box-shadow: inset 1px 1px 1px rgba(0, 0, 0, .4), inset -1px -1px 0 hsla(0, 0%, 100%, .05);
    color: #fff;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, .4);
}

#windows-container {
    position: absolute;
    z-index: 100;
}

.app-window {
  transition: transform 0.1s ease-out, filter 0.1s ease-in;
}


/* ---------- Animazioni finestre XP originali ---------- */

/* Apertura finestra */
@keyframes windowOpenFadeSlide {
  0% {
    opacity: 0;
    transform: translate(-24px, -24px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}

.window-opening {
  animation: windowOpenFadeSlide 0.25s cubic-bezier(0.25, 0.1, 0.25, 1);
  transform-origin: var(--window-origin-x, center) var(--window-origin-y, bottom);
}


/* Chiusura finestra */
@keyframes windowCloseFade {
  0% { opacity: 1; }
  100% { opacity: 0; }
}

.window-closing {
  animation: windowCloseFade 0.15s ease-in forwards;
}

/* Minimizzazione */
@keyframes windowMinimizeZoom {
  0% {
    opacity: 1;
    transform: none;
  }
  100% {
    opacity: 0.5;
    transform: scale(0.55) translateY(30px);
  }
}

.window-minimizing {
  animation: windowMinimizeZoom 0.15s ease-in forwards;
  transform-origin: bottom center;
}

/* Ripristino */
@keyframes windowRestoreZoom {
  0% {
    opacity: 0.5;
    transform: scale(0.55) translateY(30px);
  }
  100% {
    opacity: 1;
    transform: none;
  }
}

.window-restoring {
  animation: windowRestoreZoom 0.15s ease-out;
  transform-origin: bottom center;
}

.lingua{
    margin-right: 10px;
    margin-left: 10px;
    background: #316ac5;
    padding-left: 5px;
    padding-right: 5px;
    color: white;
}

[data-tooltip]::after {
  transition-delay: 0.8s;
}


.app-window {
        background-color: #ece9d8;
    border: 2px solid #284ffd;
    border-radius: 8px 8px 0 0;
    border-top-width: 1.5px;
    display: flex;
    filter: drop-shadow(1px 1px 4px rgba(0, 0, 0, .5));
    flex-direction: column;
    max-height: 100vh;
    max-width: 100vw;
    min-height: 200px;
    min-width: 300px;
    overflow: hidden;
    position: relative;
    transition: filter .1s ease;
}

.app-window .title-bar {
    border-radius: 6px 6px 0 0;
    display: flex;
    justify-content: space-between;
    margin: 0 -1px;
    min-height: 30px;
    overflow: hidden;
    padding-bottom: 1px;
    position: relative;
    width: calc(100% + 2px);
}

.title-bar {
    font-family: Trebuchet MS;
    background: linear-gradient(180deg, #0997ff, #0053ee 8%, #0050ee 40%, #06f 88%, #06f 93%, #005bff 95%, #003dd7 96%, #003dd7);
    padding: 3px 5px 3px 3px;
    border-top: 1px solid #0831d9;
    border-left: 1px solid #0831d9;
    border-right: 1px solid #001ea0;
    border-top-left-radius: 8px;
    border-top-right-radius: 7px;
    font-size: 13px;
    text-shadow: 1px 1px #0f1089;
    height: 21px;
}

.app-window .title-bar-left {
    align-items: center;
    display: flex;
    padding-left: 3px;
}

.app-window .title-bar-icon {
    align-items: center;
    display: flex;
    margin-right: 4px;
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none;
}

.app-window .title-bar-icon img {
    height: 16px;
    width: 16px;
}

.app-window .title-bar-text {
    color: #fff;
    flex-grow: 1;
    font-weight: 700;
    overflow: hidden;
    padding: 3px 5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.app-window .title-bar-controls {
    align-items: center;
    display: flex;
}

.title-bar-controls button {
    min-width: 21px;
    min-height: 21px;
    margin-left: 2px;
    background-repeat: no-repeat;
    background-position: 50%;
    box-shadow: none;
    background-color: #0050ee;
    transition: background .1s;
    border: none;
}

.title-bar-controls button {
    padding: 0;
    display: block;
    min-width: 16px;
    min-height: 14px;
}

.window-minimizing,
.window-restoring {
  animation-duration: 0.25s;
  animation-fill-mode: forwards;
  animation-timing-function: ease-in-out;
  transform-origin: var(--window-origin-x, center) var(--window-origin-y, bottom);
}


.app-window:not(.active) .window-inactive-mask {
  display: block;
  opacity: 1;
}


.window-inactive-mask {
    background-color: hsla(0, 0%, 100%, .25);
    border-radius: 8px 8px 0 0;
    display: none;
    height: 31px;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 10;
}

.app-window:not(.active) {
    border-color: #3d7bff;
}

.title-bar-controls button {
  min-width: 21px;
  min-height: 21px;
  margin-left: 2px;
  background-repeat: no-repeat;
  background-position: center;
  background-color: #0050ee;
  transition: background-color 0.15s ease, filter 0.15s ease;
  border: none;
  cursor: pointer;
}

.title-bar-controls button:active, .title-bar-controls button:focus, .title-bar-controls button:hover {
    box-shadow: none !important;
}

/* 🔹 MINIMIZE */
.title-bar-controls button[data-action="minimize"] {
  background-image: url("/assets/img/riduce.svg");
}
.title-bar-controls button[data-action="minimize"]:hover {
  background-image: url("/assets/img/riduci_hover.svg");
}

/* 🔹 MAXIMIZE */
.title-bar-controls button[data-action="maximize"] {
  background-image: url("/assets/img/ingrandisce.svg");
}
.title-bar-controls button[data-action="maximize"]:hover {
  background-image: url("/assets/img/ingrandisci_hover.svg");
}

/* 🔹 MAXIMIZED STATE → cambia icona a "ripristina" */
.app-window.maximized .title-bar-controls button[data-action="maximize"] {
  background-image: url("/assets/img/ripristina.svg");
}

.app-window.maximized .title-bar-controls button[data-action="maximize"]:hover {
  background-image: url("/assets/img/ripristina_hover.svg");
}

/* 🔹 CLOSE */
.title-bar-controls button[data-action="close"] {
  background-image: url("/assets/img/chiudi.svg");
}
.title-bar-controls button[data-action="close"]:hover {
  background-image: url("/assets/img/chiudi_hover.svg");
}



.resizer {
    background: transparent;
    height: 10px;
    position: absolute;
    width: 10px;
    z-index: 10
}

.resizer-n {
    cursor: ns-resize;
    height: 10px;
    left: 50%;
    top: -5px;
    transform: translateX(-50%);
    width: calc(100% - 10px)
}

.resizer-ne {
    cursor: nesw-resize;
    height: 10px;
    right: -5px;
    top: -5px;
    width: 10px
}

.resizer-e {
    cursor: ew-resize;
    height: calc(100% - 10px);
    right: -5px;
    top: 50%;
    transform: translateY(-50%);
    width: 10px
}

.resizer-se {
    bottom: -5px;
    cursor: nwse-resize;
    height: 10px;
    right: -5px;
    width: 10px
}

.resizer-s {
    bottom: -5px;
    cursor: ns-resize;
    height: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 10px)
}

.resizer-sw {
    bottom: -5px;
    cursor: nesw-resize;
    height: 10px;
    left: -5px;
    width: 10px
}

.resizer-w {
    cursor: ew-resize;
    height: calc(100% - 10px);
    left: -5px;
    top: 50%;
    transform: translateY(-50%);
    width: 10px
}

.resizer-nw {
    cursor: nwse-resize;
    height: 10px;
    left: -5px;
    top: -5px;
    width: 10px
}

.resizing-window {
    -webkit-user-select: none;
    -moz-user-select: none;
    user-select: none
}

.resizing-window iframe {
    pointer-events: none!important
}


.vassoio-di-sistema {
    align-items: center;
    display: flex;
    flex-grow: 0;
    flex-shrink: 0;
    height: 100%;
    margin-left: auto;
    min-width: 0;
    padding-right: 0;
    position: relative;
    width: auto;
}

.vassoio-di-sistema img.vassoio-sfondo {
    height: 30px;
    left: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: 1;
}

.vassoio-contenuto {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    height: 100%;
    justify-content: center;
    padding: 0 12px 0 12px;
    position: relative;
    width: 100%;
    z-index: 2;
}

.vassoio-icone {
    align-items: center;
    display: flex;
    gap: 6px;
    height: 100%;
    margin-right: 8px;
}

.vassoio-di-sistema img {
    display: block;
    height: 30px;
}

.vassoio-crt-toggle, .vassoio-icona-schermo-intero, .vassoio-icona-benvenuto {
    align-items: center;
    display: flex;
    height: 16px;
    margin: 1px 0 0 0;
    -o-object-fit: contain;
    object-fit: contain;
    position: relative;
    top: 0;
    transform: none;
    width: 16px;
    cursor: pointer;
}

.orologio {
    color: #fff;
    font-size: 11px;
    margin-right: 0;
    padding: 0 0 0 0;
    position: static;
    text-shadow: 1px 1px 1px rgba(0,0,0,.6);
    white-space: nowrap;
    z-index: 2;
}


/* MESSAGGIO DI BENVENUTO */
.tooltip-dinamico {    
    color: #222;
    background-color: #ffffe1;
    border: 1px solid #000;
    border-radius: 3px;
    box-shadow: 1px 1px 3px rgba(0,0,0,.2);
    display: none;
    font-size: 8pt;
    padding: 2px 5px;
    pointer-events: none;
    position: absolute;
    white-space: nowrap;
    z-index: 10000
}

#palloncino-root {
    position: absolute;
    display: none; /* parte nascosto */
}

.palloncino {
    animation: fadein 1s forwards;
    animation-delay: .1s;
    background-color: #ffffe1;
    border: 1px solid #000;
    border-radius: 7px;
    display: block;
    filter: drop-shadow(2px 2px 1px rgba(0,0,0,.4));
    font-size: 11.55px;
    opacity: 0;
    padding: 6px 10px 6px 10px;
    transform: scale(.93);
    white-space: nowrap;
    z-index: 10;
    color: #222;
}

.palloncino.chiudi {
    animation: fadeout 1s forwards
}

@keyframes fadein {
    0% {
        display: block;
        opacity: 0
    }

    to {
        display: block;
        opacity: 1
    }
}

@keyframes fadeout {
    0% {
        display: block;
        opacity: 1
    }

    99% {
        display: block;
        opacity: 0
    }

    to {
        display: none;
        opacity: 0
    }
}

.palloncino:before {
    border-color: transparent #000 transparent transparent;
    border-style: solid;
    border-width: 0 19px 19px 0;
    bottom: -19px;
    content: "";
    display: block;
    height: 0;
    position: absolute;
    right: 14px;
    width: 0
}

.palloncino:after {
    border-color: transparent #ffffe1 transparent transparent;
    border-style: solid;
    border-width: 0 18px 18px 0;
    bottom: -17px;
    content: "";
    display: block;
    height: 0;
    position: absolute;
    right: 15px;
    width: 0
}

.palloncino__chiudi {
    all: unset;
    background-color: transparent;
    border: 1px solid rgba(0,0,0,.1);
    border-radius: 3px;
    box-sizing: border-box;
    display: block;
    height: 16px;
    position: absolute;
    right: 4px;
    top: 4px;
    width: 16px
}

.palloncino__chiudi:active,.palloncino__chiudi:focus:active {
    background: #a00a0a!important;
    background-color: #a00a0a!important
}

.palloncino__chiudi:after,.palloncino__chiudi:before {
    background-color: #787878;
    content: "";
    height: 8px;
    left: 6px;
    position: absolute;
    top: 3px;
    width: 2px
}

.palloncino__chiudi:before {
    transform: rotate(45deg)
}

.palloncino__chiudi:after {
    transform: rotate(-45deg)
}

.palloncino__chiudi:hover {
    background-color: #e81123;
    border-color: rgba(0,0,0,.3);
    box-shadow: 0 1px 2px rgba(0,0,0,.2)
}

.palloncino__chiudi:hover:after,.palloncino__chiudi:hover:before {
    background-color: #fff
}

.palloncino__intestazione {
    align-items: center;
    display: flex;
    font-size: 12.6px;
    font-weight: 700
}

.palloncino__intestazione__img {
    height: 14.7px;
    margin-right: 8.4px;
    width: 14.7px
}

.palloncino__testo__primo,.palloncino__testo__secondo {
    font-size: 11.55px
}

.palloncino__testo__primo {
    line-height: 1.4;
    margin: 5px 0 0
}

.palloncino__testo__secondo {
    margin-top: 8px
}

/* APERTURA START */
.menu-avvio {
    background-color: #0f61cb;
    border: 1px solid rgba(0, 0, 0, .3);
    border-radius: 5px 5px 0 0;
    bottom: calc(30px + .5px);
    box-shadow: 0 -2px 8px rgba(0, 0, 0, .4), 2px 4px 10px rgba(0, 0, 0, .4), inset 0 0 55px hsla(0, 0%, 100%, .08);
    contain: paint;
    contain-intrinsic-size: 455px 335px;
    content-visibility: auto;
    display: flex;
    flex-direction: column;
    height: 455px;
    left: 0;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    transition: opacity 0s, visibility 0s;
    visibility: hidden;
    width: 335px;
    z-index: 1500;
}

.barra-superiore-menu {
    align-items: center;
    background: linear-gradient(180deg, #1868ce 0, #0e60cb 12%, #0e60cb 20%, #1164cf 32%, #1667cf 33%, #1b6cd3 47%, #1e70d9 54%, #2476dc 60%, #297ae0 65%, #3482e3 77%, #3786e5 79%, #428ee9 90%, #4791eb);
    border-radius: 5px 5px 0 0;
    box-shadow: inset 0 -2px 3px rgba(10, 36, 106, .4);
    display: flex;
    flex: 0 0 51px;
    height: 51px;
    position: relative;
    width: 100%;
}

.immagine-utente {
    border: 2px solid hsla(0, 0%, 100%, .7);
    border-radius: 3px;
    box-shadow: 0 0 0 1px rgba(0, 95, 184, .6), inset 0 0 2px 1px hsla(0, 0%, 100%, .35);
    height: 40px;
    margin: 7px 8px 8px;
    width: 40px;
}

.nome-utente {
    color: #fff;
    font-size: 13.5px;
    font-weight: 700;
    letter-spacing: .5px;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, .6);
}

.barra-superiore-menu:after {
    background: linear-gradient(90deg, rgba(255, 140, 0, .1) 0, rgba(255, 165, 0, .9) 30%, rgba(255, 165, 0, .9) 70%, rgba(255, 140, 0, .1));
    bottom: 0;
    box-shadow: 0 1px 2px hsla(0, 0%, 100%, .3);
    content: "";
    height: 2px;
    left: 0;
    position: absolute;
    right: 0;
}

.menu-avvio-centro {
    box-shadow: inset 0 6px 10px -6px rgba(0, 0, 0, .3);
    display: flex;
    flex: 1;
    overflow: hidden;
    width: 100%;
}

.colonna-sinistra {
    background-color: #fff;
    box-shadow: inset -2px 0 3px -1px rgba(0, 0, 0, .15), inset 0 3px 4px -3px rgba(0, 0, 0, .2);
    display: flex;
    flex-direction: column;
    width: 52%;
}

.colonna-sinistra .voce-menu {
    flex: 1;
    padding: 4px 8px;
}

.colonna-sinistra .voci-menu {
    display: flex;
    flex: 1;
    flex-direction: column;
    overflow: hidden;
}

.voce-menu {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    margin: 0;
    padding: 6px 8px;
    transition: background-color .05s ease;
    width: 100%;
    color: #222;
}

.voci-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    width: 100%;
}

.colonna-sinistra .voce-menu img {
    filter: drop-shadow(1px 1px 1px rgba(0, 0, 0, .3));
    height: 30px;
    margin-right: 7px;
    width: 30px;
}

.voce-menu:hover .descrizione-voce {
    color: #fff;
    text-shadow: 0 0 1px rgba(0, 0, 0, .3);
}

.voce-menu:hover .descrizione-voce, .voce-menu:hover .titolo-voce {
    color: #fff !important;
    text-shadow: 0 0 1px rgba(0, 0, 0, .3);
    transition: color .05s ease;
}

.voce-menu:hover {
    background-color: #2f71cd;
    box-shadow: inset 0 0 5px rgba(0, 0, 0, .2), 0 0 1px hsla(0, 0%, 100%, .3);
    color: #fff;
}

.voce-menu .descrizione-voce, .voce-menu .titolo-voce, .voce-menu img {
    transition: color .05s ease, filter .05s ease;
}

.colonna-destra .voce-menu img {
    height: 25px;
    margin-left: 1px;
    margin-right: 7px;
    width: 25px;
}

.contenuto-voce {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.separatore-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.voci-menu .separatore-menu .divisore {
    display: block;
    margin-left: 0;
    margin-right: 0;
    width: 100%;
}

.separatore-blu-scuro .divisore {
    background: linear-gradient(90deg, transparent 0, #a1c4fc 50%, transparent);
}

.divisore {
    background: linear-gradient(90deg, transparent 0, #d2d2d2 50%, transparent);
    border: 0;
    height: 1px;
    margin: 0;
    padding: 0;
    width: 100%;
}

.progetti-grassetto {
    font-weight: 700;
}

.descrizione-voce {
    color: #777;
    font-size: 9.5px;
    line-height: 1.2;
    margin-top: 1px;
}

.contenitore-tutti-programmi {
    display: flex;
    flex: 0 0 35px;
    flex-direction: column;
    width: 100%;
}

.pulsante-tutti-programmi {
    align-items: center;
    box-shadow: inset 0 1px 1px hsla(0, 0%, 100%, .3);
    display: flex;
    font-size: 12px;
    font-weight: 600;
    height: 35px;
    justify-content: center;
    padding-left: 10px;
    width: 100%;
    color: #222;
}

.pulsante-tutti-programmi span {
    line-height: 18px;
    margin-right: 10px;
}

.pulsante-tutti-programmi img {
    height: 18px;
    width: 18px;
}

.pulsante-tutti-programmi:hover {
    background-color: #2f71cd;
    box-shadow: inset 0 0 5px rgba(0, 0, 0, .2), 0 0 2px hsla(0, 0%, 100%, .2);
    color: #fff!important;
}

.colonna-destra {
    background-color: #d2e5fa;
    border-left: 1px solid #a6bbd6;
    box-shadow: inset 2px 0 3px -1px hsla(0, 0%, 100%, .7), inset 0 3px 4px -3px rgba(0, 0, 0, .15);
    display: flex;
    flex-direction: column;
    width: 48%;
}

.colonna-destra .voci-menu {
    display: flex;
    flex-direction: column;
    height: 100%;
    justify-content: flex-start;
}

.menu-avvio-piede {
    align-items: center;
    background-color: #0f61cb;
    border-bottom-right-radius: 0;
    border-top: 1px solid rgba(0, 0, 0, .3);
    box-shadow: inset 0 1px 4px rgba(0, 0, 0, .2);
    display: flex;
    flex: 0 0 46px;
    height: 46px;
    justify-content: flex-end;
    position: relative;
    width: 100%;
}

#menu-contact .titolo-voce, #menu-internet .titolo-voce, .colonna-destra #menu-behance .titolo-voce, .colonna-destra #menu-github .titolo-voce, .colonna-destra #menu-instagram .titolo-voce, .colonna-destra #menu-linkedin .titolo-voce, .colonna-destra #menu-program4 .titolo-voce {
    font-weight: 600;
}

.colonna-destra .voce-menu#menu-program1 .titolo-voce, .colonna-destra .voce-menu#menu-program10 .titolo-voce, .colonna-destra .voce-menu#menu-program11 .titolo-voce, .colonna-destra .voce-menu#menu-program2 .titolo-voce, .colonna-destra .voce-menu#menu-program3 .titolo-voce, .colonna-destra .voce-menu#menu-program4 .titolo-voce, .colonna-destra .voce-menu#menu-program5 .titolo-voce, .colonna-destra .voce-menu#menu-program6 .titolo-voce, .colonna-destra .voce-menu#menu-program7 .titolo-voce, .colonna-destra .voce-menu#menu-program8 .titolo-voce, .colonna-destra .voce-menu#menu-program9 .titolo-voce {
    font-weight: 400;
}

.colonna-destra .voce-menu .titolo-voce {
    font-size: 11.5px;
    letter-spacing: normal;
}

.attiva-sottomenu {
    background-color: #e5f3ff;
}

.menu-avvio-piede:before {
    background: linear-gradient(180deg, #428ee9 0, #3786e5 10%, #3482e3 21%, #297ae0 35%, #2476dc 40%, #1e70d9 46%, #1b6cd3 53%, #1667cf 67%, #1164cf 68%, #0e60cb 80%, #0e60cb 88%, #1868ce);
    content: "";
    inset: 0;
    position: absolute;
    z-index: 0;
}

.pulsante-piede:hover img {
    filter: brightness(1.2);
}

.pulsante-piede:hover {
    background-color: transparent;
    box-shadow: none;
}

.pulsanti-piede {
    align-items: center;
    display: flex;
    height: 100%;
    padding-right: 2px;
    position: relative;
    z-index: 1;
}

.pulsante-piede {
    align-items: center;
    box-shadow: none;
    color: #fff;
    display: inline-flex;
    font-size: 12.5px;
    height: 30px;
    margin: 0 5px;
    padding: 0;
    text-shadow: 1px 1px 1px rgba(0, 0, 0, .4);
    transition: none;
}

.pulsante-piede img {
    border-radius: 3px;
    box-shadow: none;
    height: 24px;
    transition: filter .1s ease;
    width: 24px;
}

.pulsante-piede span {
    padding: 0 6px;
}

/* PROGRAMMI RECENTI */
.menu-tutti-programmi, .menu-recenti {
    background: #f2f2f2;
    border: 1px solid #d0d0d0;
    box-shadow: 2px 2px 5px rgba(0, 0, 0, .15);
    display: none;
    min-width: 170px;
    padding: 2px;
    position: absolute;
    width: 180px;
    z-index: calc(1500 + 1);
}

.menu-tutti-programmi:before, .menu-recenti:before {
    background: linear-gradient(180deg, #1c57ad 0, #2a70ce 50%, #5b9fe2);
    bottom: 0;
    content: "";
    left: 0;
    position: absolute;
    top: 0;
    width: 2px;
    z-index: 1;
}

.elenco-tutti-programmi, .elenco-recenti {
    list-style: none;
    margin: 0;
    max-height: 380px;
    overflow-y: auto;
    padding: 0;
    width: 100%;
}

.voce-tutti-programmi:hover, .voce-recenti:hover {
    background-color: #2f71cd;
    color: #fff;
    padding-left: 30px;
}

.voce-tutti-programmi.disabilitato, .voce-recenti.disabilitato {
    background: none !important;
    box-shadow: none !important;
    color: #999 !important;
    filter: grayscale(.25) !important;
    opacity: .93 !important;
    position: relative;
}

.cursore-disabilitato, .disabilitato {
    cursor: not-allowed !important;
}

.voce-tutti-programmi, .voce-recenti {
    align-items: center;
    border: none;
    box-sizing: border-box;
    color: #000;
    display: flex;
    font-size: 11px;
    margin: 0;
    min-height: 20px;
    padding: 3px 8px 3px 30px;
    position: relative;
    white-space: nowrap;
    width: 100%;
}

.voce-tutti-programmi.disabilitato img, .voce-recenti.disabilitato img {
    filter: grayscale(.25) !important;
    opacity: .6 !important;
}

.voce-tutti-programmi img, .voce-recenti img {
    height: 16px;
    left: 8px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 16px;
    z-index: 2;
}

.voce-tutti-programmi>img, .voce-recenti>img {
    pointer-events: none;
}

.voce-tutti-programmi *, .voce-recenti * {
    transition: color .05s ease;
    z-index: 2;
}

.separatore-tutti-programmi, .separatore-recenti {
    background-color: #e0e0e0;
    border: none;
    flex-shrink: 0;
    height: 1px;
    margin: 3px 0;
    margin-left: 1px;
    padding: 0;
    width: calc(100% - 2px);
}

.app-window.maximized {
  border-width: 0 !important;
}


/* XS: <576px */
@media (max-width: 575.98px) { 
* {
    scrollbar-width: none;
    -ms-overflow-style: none;
    -webkit-tap-highlight-color: transparent !important;
    -webkit-focus-ring-color: transparent!important;
    outline: none !important;
}

#logo{
    left: auto;
    margin-bottom: 30px;
    margin-left: auto;
    margin-right: auto;
    width: 280px;
}

.sinistra{
    display: none!important;
}

.destraPortfolio{
    bottom: 30px;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
}

.destraImg {
    height: 26px;
}

.schermata-accesso .schermata-accesso-interna {
    inset: 80px 0;
}

.schermata-accesso-centro {
    display: flex !important;
    flex-direction: column !important;
    gap: 5vw !important;
    height: 100% !important;
    justify-content: center !important;
}

.sinistra-xp{
    align-items: center!important;
    bottom: auto!important;
    display: flex!important;
    flex-direction: column!important;
    left: auto!important;
    margin: 0 auto 0px auto!important;
    position: static!important;
    right: auto!important;
    top: auto!important;
    transform: none!important;
    width: auto!important;
}

.logo-xp{
    display: block;
    margin-left: auto;
    margin-right: auto;
    position: static!important;
    height: 155px!important;
    margin-top: 0;
    padding-left: 0px!important;
}

.testo-sinistra{
    margin-top: 0 !important;
    margin-left: auto!important;
    margin-right: auto!important;
    position: static!important;
    right: 0!important;
    text-align: center!important;
    display: block!important;
    font-size: 15px!important;
    font-weight: 400!important;
    letter-spacing: 0!important;
    margin-bottom: 0!important;
    margin-top: 0px !important;
    padding: 0 10px!important;
    text-align: center;
    width: auto;
}

.istruzione-desktop{
    display: none!important;
}

.divisore-accesso{
    display: none!important;
}

.solo-mobile{
    display: initial !important;
    margin-bottom: 0 !important;
    margin-top: 12px !important;
    transition: opacity .4s !important;
    background: linear-gradient(90deg, rgba(88, 124, 219, 0), #bad7f8 40%, #bad7f8 60%, rgba(88, 124, 219, 0));
    margin: 0 auto !important;
    max-width: 75%;
}

.schermata-accesso .schermata-accesso-centro .destra{
    align-items: center;
    bottom: auto;
    display: flex;
    flex-direction: column;
    left: auto;
    margin: 0 auto 32px auto;
    position: static;
    right: auto;
    top: auto;
    transform: none;
    width: auto;
    margin-bottom: 0;
}

.schermata-accesso .sfondo-gradiente{
    align-items: center;
    border-radius: 10px !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin: 0 auto;
    min-width: auto !important;
    padding: 24px !important;
    width: auto;
    text-align: center;
}

.utente{
    align-items: center;
    display: flex;
    justify-content: center;
    margin: 0 !important;
}

.testo-avvolto{
    align-items: center;
    display: flex;
    flex-direction: column;
    text-align: center;
    justify-content: center;
    margin: 0;
    margin-left: 0px!important;
    width: 100%!important;
}

.destra-basso{
    width: 100%;
    right: 0px!important;
}

.spegni{
    display: none!Important;
}

.dettaglio-desktop{
    display: none!important;
}

.dettaglio-mobile-basso{
    display: block!Important;
    text-align: center;
}

.messaggio-benvenuto{
      /* copre tutto e può centrarsi con flex (impostato dal JS al momento del fade-in) */
      position: fixed !important;
      inset: 0 !important;
      /* niente display qui: lo mette il JS → "flex" */
      align-items: center !important;
      justify-content: center !important;

      pointer-events: none !important;
      margin: 0 !important;
      padding: 0 !important;
      transform: none !important;
      z-index: 4000 !important;
      box-sizing: border-box !important;

      width: 100vw !important;
      height: 100vh !important;
      height: 100dvh !important; /* viewport dinamico: evita salti barra browser */
  }

  .messaggio-benvenuto-testo{
      font-size: 2.5rem !important;
      margin: 0 !important;
      padding: 0 !important;
      text-align: center !important;
  }





}

/* SM: ≥576px */
@media (min-width: 576px) and (max-width: 767.98px) {  }

/* MD: ≥768px */
@media (min-width: 768px) and (max-width: 991.98px) {  }

/* LG: ≥992px */
@media (min-width: 992px) and (max-width: 1199.98px) {  }

/* XL: ≥1200px */
@media (min-width: 1200px) and (max-width: 1399.98px) {  }

/* XXL: ≥1400px */
@media (min-width: 1400px) {  }











/* ============== WELCOME (desktop default) ============== */
.messaggio-benvenuto{
  /* stato iniziale: nascosto */
  display: none;
  opacity: 0;

  /* stile desktop */
  color: #fff;
  font-family: Tahoma, Arial, sans-serif;
  font-size: 3rem;
  letter-spacing: 2px;
  pointer-events: none;
  position: fixed;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  text-shadow: 1px 1px 3px #000;
  transition: opacity .6s ease; /* ~ DUR_WELCOME_IN */
  z-index: 4000;
}

/* quando il JS la mostra */
.messaggio-benvenuto.messaggio-benvenuto--show{
  display: block; /* desktop */
  opacity: 1;
}

/* testo interno (ok tenerlo) */
.messaggio-benvenuto-testo{
  font-size: 3rem;
  font-style: italic;
  font-weight: 700;
  letter-spacing: .3px;
  text-align: center;
  text-shadow: 0px 5px 5px #000a, 0 1px 0 #36c;
}

/* ============== MOBILE override ============== */
@media (max-width: 575.98px){
  .messaggio-benvenuto{
    /* full overlay e centratura via flex (ma resta nascosto finché non c'è --show) */
    position: fixed;
    inset: 0;
    left: auto;
    top: auto;
    transform: none;
    display: none;          /* iniziale */
    align-items: center;    /* si attivano solo con --show */
    justify-content: center;
  }
  .messaggio-benvenuto.messaggio-benvenuto--show{
    display: flex;          /* mobile */
  }
  .messaggio-benvenuto-testo{
    font-size: 2.5rem;
  }
}

/* ============== helper per nascondere SOLO il centro del login ============== */
.schermata-accesso-centro.login-centro--hidden{
  display: none !important; /* vince su qualsiasi display:flex !important del mobile */
}

/* (opzionale) se vuoi una dissolvenza trasparente al centro */
.schermata-accesso-centro.login-centro--fade{
  opacity: 0;
  transition: opacity .5s ease; /* ~ DUR_LOGIN_FADE */
}

/* helper generici per gli altri due elementi (power e testo in basso) */
.fade-out{
  opacity: 0 !important;
  transition: opacity .5s ease;
}
.is-hidden{
  display: none !important;
}