.navbar-mobile-native{
    padding-bottom: env(safe-area-inset-bottom); 
}
.modal-dialog, .header-mobile-native{
    padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}

.notch-element-cover{
    display: block;
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: env(safe-area-inset-top);
    background: black;
    z-index: 9;
}

.pageMob {
    min-height: 100vh;
    padding-top: calc(60px + env(safe-area-inset-top));
    padding-bottom: calc(60px + env(safe-area-inset-bottom));
    padding-right: calc(env(safe-area-inset-right));
    padding-left: calc(env(safe-area-inset-left));
}

/* iOS può mantenere gli inset laterali del fullscreen landscape anche dopo
   il ritorno in portrait. Questi contenitori avvolgono tutte le pagine: in
   portrait gli inset laterali devono restare a zero per non stringere view,
   player e contenuti. Android conserva il proprio comportamento. */
@media (orientation: portrait) {
    html.ty-native:not(.ty-android) .pageMob {
        padding-left: 0;
        padding-right: 0;
    }

    html.ty-native:not(.ty-android) .modal-dialog,
    html.ty-native:not(.ty-android) .header-mobile-native {
        padding-left: 0;
        padding-right: 0;
    }
}

.pageMob-profile, .pageMob-search, pageMob-download{
    margin-left: 10px;
    margin-right: 10px;
}

.mobile-chromecast-icon{
    opacity:0.6;
}
   
    .fs-s{
        font-size:14px;
    }

    *:focus {
        outline: none !important;
    }
    .form-control:focus {
    border-color: inherit;
    -webkit-box-shadow: none;
    box-shadow: none;
    }

    html {
    -webkit-user-select: none; /* Safari 3.1+ */
    -moz-user-select: none;    /* Firefox 2+ */
    -ms-user-select: none;     /* IE 10+ */
    user-select: none;         /* Standard non prefissato */
    }

    html, body, .pageMob{
        /* overflow-x: hidden !important; */
    }

    /* input[type="text"] {
        -webkit-user-select: text !important;
    } */

    .mobile-list-page{
        display: flex;
        visibility: hidden;
        position: relative;
        margin-top: 5px;
        width: 100%;
        overflow-x: auto;
    }
    .mobile-list-page-init{
     min-height: 35px;
     visibility: visible;
    }
    .mobile-list-page div{
        padding: 8px 15px;
        vertical-align: top;
        background: transparent;
        border-radius: 17px;
        color: white;
        font-weight: 600;
        font-size: 13px;
        margin-right: 5px;
        align-items: center;
        white-space: nowrap;
    }
    .mobile-list-page div.active{
        background: white !important;
        color: black !important;
    }
    /*mobile rules*/
    .header { display: none; } footer { display: none; }
    /*mobl*/

    .button-primary, .button-secondary{
        width:100% !important;
    }

    .button-small {
        display: inline-block;
        padding: 10px 18px;
        font-size: 14px;
        width: auto !important;
    }

    .header-mobile-native-nav{
        display: inline-flex;
        width: 100%;
        padding-top: 10px;
    }
    html.ty-android .header-mobile-native-nav{
        padding-top: 22px;
    }
    .header-mobile-native-nav div{
        flex:1;
    }
    .header-mobile-native{
        position: fixed;
        display: inline-flex;
        min-height: 46px;
        flex-direction: column;
        padding-left:10px;
        left: 0px;
        width: 100%;
        align-items: center;
        text-align: center;
        z-index: 99999 !important;
        background-image: linear-gradient(to bottom, rgba(0, 0, 0, 1), rgba(0, 0, 0, 0));
    }
    .mobile-logo-native{
        flex:6 !important;
        text-align:left !important;
    }
    .mobile-logo-native-img{
        /* height: 100%; */
        max-width: 156px;
        max-height: 35px;
        text-align: center;
        margin: 0 auto;
    }
    .mobile-search{
        text-align:right;
        padding-right:10px;
    }
    .mobile-chromecast{
        text-align:right;
        padding-right:10px;
    }
    .header-mobile-native i{
        font-size:20px;
    }

    /*video*/
    .contentMedia{
        padding-top:0px !important;
    }
    /*dialog: bottone indietro con lo stesso vetro della capsula cast+avatar*/
    .modal-header .close{
        left: 10px;
        margin-top: 0px;
        top: auto;
        opacity: 1 !important;
        width: 40px;
        height: 40px;
        padding: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        font-size: 22px;
        border-radius: 50%;
        background: rgba(30, 30, 34, 0.55) !important;
        backdrop-filter: blur(36px) saturate(160%);
        -webkit-backdrop-filter: blur(36px) saturate(160%);
        box-shadow:
            inset 0 0 0 1px rgba(255, 255, 255, 0.08),
            inset 0 1px 0 -0.5px rgba(255, 255, 255, 0.18),
            0 6px 18px -8px rgba(0, 0, 0, 0.6);
        transition: transform .18s ease;
    }
    .modal-header .close:active{
        transform: scale(.9);
    }
    .modal-body{
        padding:0px;
    }
    #modal-mobile-subscribe-unique{
        padding-bottom: 20px;
    }
    .modal-header .close:before{
        font-family: 'remixicon';
        content: "\ea60";
    }
    .modal-dialog{
        margin-top:0px !important;
        width: 100% !important;
        max-width: 100% !important;
        margin:0px !important;
    }

    .modal-dialog:has(.videoFullScreen) {
        background: black;
    }

    .modal-content{
        margin-top: 0px !important;
        margin-left: 0px !important;
        margin-right: 0px !important;
        min-height: 100vh !important;
        padding-bottom: 40px;
        /* stesso vetro del bottone indietro (.header-back-liquid /
           .page-back-btn) e del dropdown dell'header web.
           !important perche' il tema iniettato a runtime da app.js
           dipingeva .modal-content col colore del canale. */
        background: rgb(30 30 34 / 50%) !important;
        backdrop-filter: blur(36px) saturate(160%);
        -webkit-backdrop-filter: blur(36px) saturate(160%);
        box-shadow:
            inset 0 0 0 1px rgba(255, 255, 255, 0.08),
            inset 0 1px 0 -0.5px rgba(255, 255, 255, 0.18),
            0 6px 18px -8px rgba(0, 0, 0, 0.6);
    }
    .modal-content, .modal-body, .pageMob, #mainLiveHomeMobile{
        overflow-x: hidden !important;
    }
    .modal{
        z-index: 9999999 !important;
    }

    /* .rightColDiv.mobile {
        max-height:30px;
    } */


    #modal-video-comment-content.box-right{
        height:65vh !important;
    }


     
.selectMobile{
	background: transparent;
    border: 0px;
    width: 90px;
    opacity: 0.7;
	width:90px;
}
/*mobile navbar*/
  .navbar-mobile-native{
	position: fixed !important;
	bottom: 0px;
	z-index: 9999999 !important;
	width: 100%;
    background: rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(30px);
    -webkit-backdrop-filter: blur(30px);
  }

  .navbar-mobile-native .menu {
	width: 100%;
	padding: 2px;
	display: flex;
	align-items: center;
	justify-content: center;
  }
  .navbar-mobile-native .menu .menu-item {
	display: flex;
    flex-direction: column;
    align-items: center;
    cursor: pointer;
    margin-right: 20px;
    padding: 2px;
    border-radius: 8px;
	background-color: transparent;
    flex:1;
  }
   .navbar-mobile-native .menu .menu-item:last-child {
	margin-right: 0px;
  }

   .navbar-mobile-native .menu .menu-item.active {
	background-color: rgba(255,255,255,0.1);
  }
 
   .navbar-mobile-native .menu .menu-item .menu-item__text {
	text-align: center;
	font-weight: 700;
	opacity: 1;
    font-size: 12px;
  }
.navbar-mobile-native .menu .menu-item-icon-active {
display: none; 
}

.navbar-mobile-native .menu  .menu-item.active .menu-item-icon {
display: none; 
}

.navbar-mobile-native .menu  .menu-item.active .menu-item-icon-active {
display: inline-block;
}


  .navbar-mobile-native .menu  .menu-item__icon {
	display: inline-block;
	text-align: center;
	font-size: 24px;
  }

    #mainLiveHomeMobile{
        min-height: 1px;
        padding-bottom: 5vh !important;
    }

    .sectionContainer {
        min-height: auto !important;
    }

    #searchMobile {
        position: relative;
    }

    .headerSearchGlobalInputMobile {
        padding-left: 50px !important;
        padding-right: 30px;
        width: 100%;
    }

    .headerSearchIcon,
    .headerSearchRemoveIcon,
    .headerSearchMicrophoneIcon {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        font-size: 20px;
    }

    .headerSearchIcon {
        left: 15px; /* Posiziona l'icona di ricerca a sinistra */
    }

    .headerSearchMicrophoneIcon{
        right: 10px; 
        background-color: #383838;
        border-radius: 50px;
        padding: 5px 10px;
    }

    .headerSearchMicrophoneIcon-hovered{
        padding: 10px 15px;
        background-color: rgb(112, 112, 112);
    }

    .headerSearchRemoveIcon {
        display: none;
        right: 60px; 
    }
    

    /*home*/
    .horizontalBrowserAll{
        position:absolute;
        right: 3%;
    }

    .resultsSearchTxt{
        display:none;
        margin-left:0px !important;
        padding-left:10px !important;
        font-size:16px !important;
    }

    .sectionContainer{
        display:block !important;
    }


/* categorie: box in vetro, stesso materiale di navbar e capsula header */
.mobile-list-categories {
    display: grid;
    grid-template-columns: 1fr 1fr; /* Two equal columns */
    gap: 10px;
    padding: 0;
}

.mobile-list-categories div {
    background: rgba(30, 30, 34, 0.55);
    backdrop-filter: blur(36px) saturate(160%);
    -webkit-backdrop-filter: blur(36px) saturate(160%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.08),
        inset 0 1px 0 -0.5px rgba(255, 255, 255, 0.18),
        0 6px 18px -8px rgba(0, 0, 0, 0.6);
    border-radius: 18px;
    padding: 10px 16px;
    text-align: center;
    font-weight: 700;
    font-size: 15px;
    min-height: 75px;
    display: flex;
    justify-content: center;
    align-items: center;
}

#headerSearchGlobalInputForm{
    position: relative;
    top: 10px;
}
    
#speech.btn {
  border: none;
  padding: 0;
  border-radius: 100%;
  width: 150px;
  height: 150px;
  font-size: 1.5em;
  color: #fff;
  padding: 0;
  margin: 0;
  background: #ff3d7f;
  position: relative;
  display: inline-block;
  line-height: 50px;
  text-align: center;
  white-space: nowrap;
  vertical-align: middle;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  background-image: none;
}

.pulse-ring {
  content: "";
  width: 150px;
  height: 150px;
  border: 5px solid #ff3d7f;
  border-radius: 50%;
  position: absolute;
  top: -5px;
  left: -5px;
  animation: pulsate infinite 2s;
}

@-webkit-keyframes pulsate {
  0% {
    -webkit-transform: scale(1, 1);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(1.2, 1.2);
    opacity: 0;
  }
}
.speech-to-text-container {
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: #3fb8af;
}

/*list video*/
.box-element-video{
    display: flex;
    padding: 0px;
    margin-bottom: 20px;
}
.detailsTypeVideoLiveInLive{
    left: 4px;
    bottom: 0px;
}
.img-container-vertical-list-video{
    flex: 1;
}
.box-element-video-details-info{
    flex: 1.5;
}

.box-title-video{
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
/* #htmlAccess{
    display:flex;
    width: 100%;
}
#htmlAccess a, #htmlAccess button{
    flex: 1;
}
.btn-start-now-collection{
    margin-bottom: 0px !important;
    flex: 8 !important;
} */
.nav.nav-tabs{
    display: flex;
    width: 100%;
}
.nav.nav-tabs li{
    flex: 1;
    text-align:center;
}

.collection-tab-select{
    padding:0 !important;
}

#loading_results_spinner{
	opacity:0.5;
    transform: scale(0.5);
}




/*downloaded*/
/* List component */
.download-offline-mode{
    display: none;
    padding: 20px;
}
#img-logo-offline{
    width: 100px;
    margin-top:20px;
    margin-bottom:20px;
}
.list{
    list-style: none;
    margin: 0;
    padding: 15px;
    border-radius: 2px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}

    .list .list-item{
        display: flex;
        padding: 10px 5px;
        marbin-bottom:10px;
    }
    .list .list-item:not(:last-child){
        border-bottom: 1px solid #383838;
    }

        /*list item image wrapper*/
        .list .list-item__image{
            flex-shrink: 0;
            height: 80px;
        }
            .list .list-item__image img{
                width: 150px;
                height: 80px;
                overflow: hidden;
                border-radius: 8px;
            }

        /*list item content*/
        .list .list-item__content{
            flex-grow: 1;
            padding: 0 20px;
        }

.progress-bar-wrapper {
    margin-top: 5px; /* Aggiungi il margine superiore per distanziare la barra di progresso dal titolo */
    display: flex;
}

.progress-bar-wrapper-value{
    font-size: 12px;
    padding-left: 5px;
    margin-top: -4px;
    width: 10%;
    font-weight: bold;
}
.progress-bar {
    width: 90%;
    height: 10px; /* Aumenta l'altezza della barra di progresso */
    background-color: rgba(255,255,255,.2);
    border-radius: 5px;
    margin-top: 0px; /* Aumenta il margine superiore per distanziare la barra di progresso */
}

.progress-bar__fill {
    height: 100%;
    background-color: rgba(255,255,255,1);
    border-radius: 5px;
}
/*downloaded*/

/* settings*/
.profile-settings{
    /* margin-left:10px;
    margin-right:10px; */
}
.profile-settings .container-box-flex,
#modal-body-generic .container-box-flex{
    align-items: center;
    background: rgba(255,255,255,0.05);
    border-radius: 12px;
    padding: 12px 14px;
    margin-bottom: 8px;
    transition: background-color .18s ease, transform .18s ease;
}
.profile-settings .container-box-flex:active,
#modal-body-generic .container-box-flex:active{
    background: rgba(255,255,255,0.1);
    transform: scale(.98);
}
.profile-settings .left-element{
    display: flex;
    align-items: center;
    min-width: 0;
}
.profile-settings .left-element label{
    margin-bottom: 0;
}
.profile-settings .right-element{
    display: flex;
    align-items: center;
    color: rgba(255,255,255,.55);
    font-size: 14px;
}
.profile-settings .right-element i{
    font-size: 20px;
}
.profile-settings p.gray{
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .07em;
    margin: 20px 4px 10px;
}
.settings-icon{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 34px;
    height: 34px;
    background: rgba(255,255,255,0.08);
    border-radius: 10px;
    margin-right: 12px;
    font-weight: normal !important;
    opacity: 1;
    font-size: 18px;
}

/* header profilo */
.profile-user-card{
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 4px 4px 16px;
}
.profile-avatar-wrap{
    position: relative;
    flex-shrink: 0;
}
.profile-user-card .image-profile-general{
    width: 72px;
    height: 72px;
    object-fit: cover;
}
.profile-avatar-edit{
    position: absolute;
    right: -2px;
    bottom: -2px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(60,60,60,.95);
    border: 2px solid #000;
    color: #fff;
    font-size: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.profile-user-name{
    font-size: 18px;
    font-weight: 700;
    margin: 0 0 2px;
}
.profile-user-email{
    color: rgba(255,255,255,.55);
    font-size: 13px;
    margin: 0;
    word-break: break-all;
}

/* settings charts */
.chart-container {
    width: 100%;
    margin: 0px auto;
}

.chart-chart {
    height: 10px;
    background-color: #f0f0f0;
    border-radius: 5px;
    overflow: hidden;
}

.chart-bar {
    display: flex;
    height: 100%;
}

.chart-free-space, .chart-app-space, .chart-user-space {
    flex-grow: 1;
    transition: width 0.5s;
}

.chart-free-space {
    background-color: lightgray;
}

.chart-user-space {
    background-color: gray;
}


.chart-labels {
    display: flex;
    justify-content: space-between;
    margin-top: 10px;
    font-size: 14px;
}

.chart-label {
    flex: 1;
    text-align: center;
}

/*settings*/


/*modal custom option*/
#modal-body-generic{
    margin-top: 45px;
}
.mod-custom-options {
    display: flex;
    flex-direction: column; /* Visualizza le opzioni una sotto l'altra */
}
.mod-custom-option {
    position: relative;
    padding: 10px 25px;
    margin: 10px 20px;
    cursor: pointer;
    border-radius: 7px;
}
.mod-custom-option.selected {
    background: rgba(255,255,255,0.2);
}

/*labels*/
.label-green {
	color: rgb(34 197 94/1);
	border: 1px solid rgba(34,197,94,.1);
	background: rgba(34,197,94,.1);
}
/*labels*/

#modal-mobile-subscribe .modal-body{
    margin-top: 30px;
    margin-left: 3%;
    margin-right: 3%;
}

.card{
    border-radius: 8px;
}

.card-bordered{
    border: 2px solid white;
}

.serie_title_main {
    width: 70%;
}



/* griglia risultati ricerca: gap UNIFORME fra le card (via il vecchio hack
   even/odd coi bordi trasparenti, pensato per 2 colonne: con 3-4 colonne
   faceva toccare gli elementi) e colonne responsive in base al device:
   2 di base (telefono), 3 da 768px, 4 da 1200px */
#mainLiveHomeMobile > div.thumb_content_preview {
    border: 0;
    padding: 0 6px 12px !important; /* .padding-0 nel markup è !important */
}
@media (min-width: 768px) {
    #mainLiveHomeMobile > div.thumb_content_preview { width: 33.3333%; }
}
@media (min-width: 1200px) {
    #mainLiveHomeMobile > div.thumb_content_preview { width: 25%; }
}



.top-position-custom{
    margin-top: -55px;
}

.standardHomeWithPages{
    padding-top: 90px;
}

#mobile-logo-native-label{
    font-weight: 700;
    font-size: 20px;
    display:  -webkit-box;
    overflow: hidden;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
}

#header-user-settings-icon{
    display:none;
}

/* ==================== animazioni ==================== */

/* modali: sheet stile iOS che sale dal basso a tutta altezza (override del
   fade bootstrap, che fa opacità + slide dall'alto). L'uscita deve stare nei
   320ms che ModalHide aspetta prima del display:none */
.modal.fade{
    opacity: 1 !important;
    transition: none !important;
}
.modal.fade:not(.in){
    overflow: hidden !important;
    pointer-events: none;
}
.modal.fade .modal-dialog{
    transform: translate3d(0, 100%, 0);
    transition: transform .3s cubic-bezier(.36,.66,.04,1);
    will-change: transform;
}
.modal.fade.in .modal-dialog{
    transform: translate3d(0, 0, 0);
    transition: transform .42s cubic-bezier(.32,.72,0,1);
}
/* il drag-to-close usa transform inline: niente transition durante il drag */
.modal .modal-dialog.dragging{
    transition: none !important;
}
.modal-backdrop.fade{
    transition: opacity .25s ease;
}

/* pagine: ingresso leggero */
@keyframes pageMobIn{
    from{ opacity: 0; transform: translateY(10px); }
    to{ opacity: 1; transform: none; }
}
.pageMob-enter{
    animation: pageMobIn .24s ease-out both;
}

/* header: fade fluido su scroll */
.header-mobile-native{
    transition: opacity .25s ease;
}

/* navbar: feedback sui tab */
.navbar-mobile-native .menu .menu-item{
    transition: background-color .2s ease;
    border-radius: 10px;
}
.navbar-mobile-native .menu .menu-item .menu-item__icon{
    transition: transform .18s ease;
}
.navbar-mobile-native .menu .menu-item:active .menu-item__icon{
    transform: scale(.85);
}
@keyframes navIconPop{
    0%{ transform: scale(1); }
    45%{ transform: scale(1.18); }
    100%{ transform: scale(1); }
}
.navbar-mobile-native .menu .menu-item.active .menu-item__icon{
    animation: navIconPop .3s ease;
}

/* pill delle pagine custom in home */
.mobile-list-page div{
    transition: background-color .2s ease, color .2s ease;
}

/* opzioni nelle modali (lingua, qualità download) */
.mod-custom-option{
    border-radius: 10px;
    transition: background-color .15s ease;
}
.mod-custom-option:active{
    background: rgba(255,255,255,0.08);
}

/* categorie nella ricerca: feedback di pressione */
.mobile-list-categories div{
    transition: background-color .15s ease, transform .15s ease;
}
.mobile-list-categories div:active{
    background: rgba(255, 255, 255, 0.16);
    transform: scale(.97);
}

/* ==================== navbar: liquid glass ==================== */
/* pill flottante staccata dai bordi, vetro con blur+saturazione e
   riflessi interni (inset). Niente filtri SVG displacement: nei WebView
   backdrop-filter url() non è affidabile */
.navbar-mobile-native{
    left: 14px;
    right: 14px;
    width: auto !important;
    bottom: calc(10px + env(safe-area-inset-bottom));
    padding-bottom: 0;
    background: transparent !important;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    display: flex;
    align-items: stretch;
    gap: 10px;
}
/* il vetro sta sui due blocchi: pill dei tab e cerchio della ricerca */
.navbar-mobile-native .menu,
.navbar-mobile-native .nav-search-detached{
    background: rgba(30, 30, 34, 0.55);
    backdrop-filter: blur(36px) saturate(160%);
    -webkit-backdrop-filter: blur(36px) saturate(160%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.08),
        inset 0 1.5px 0 -0.5px rgba(255, 255, 255, 0.18),
        0 10px 30px -10px rgba(0, 0, 0, 0.6);
    overflow: hidden;
}
.navbar-mobile-native .menu{
    flex: 1;
    min-width: 0;
    border-radius: 999px; /* pill piena, come la tab bar iOS */
    padding: 5px 6px;
    position: relative;
}
/* cerca staccato: cerchio a parte, solo icona. Larghezza = altezza reale
   della navbar (--navbar-mobile-h, aggiornata da JS) per un cerchio perfetto */
.navbar-mobile-native .nav-search-detached{
    flex: 0 0 var(--navbar-mobile-h, 64px);
    width: var(--navbar-mobile-h, 64px);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.navbar-mobile-native .nav-search-detached .menu-item{
    width: 100%;
    height: 100%;
    margin: 0 !important;
    padding: 0;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}
.navbar-mobile-native .nav-search-detached .menu-item .menu-item__text{
    display: none;
}
.navbar-mobile-native .nav-search-detached .menu-item .menu-item__icon{
    font-size: 26px;
}
.navbar-mobile-native .nav-search-detached .menu-item.active{
    background: rgba(255, 255, 255, 0.14) !important;
}
/* alternanza icona outline/fill (le regole base sono scoping-ate su .menu) */
.navbar-mobile-native .nav-search-detached .menu-item-icon-active{
    display: none;
}
.navbar-mobile-native .nav-search-detached .menu-item.active .menu-item-icon{
    display: none;
}
.navbar-mobile-native .nav-search-detached .menu-item.active .menu-item-icon-active{
    display: inline-block;
}
.navbar-mobile-native .nav-search-detached .menu-item .menu-item__icon{
    transition: transform .18s ease;
}
.navbar-mobile-native .nav-search-detached .menu-item:active .menu-item__icon{
    transform: scale(.85);
}
.navbar-mobile-native .menu .menu-item{
    margin-right: 4px;
    padding: 6px 2px;
    border-radius: 999px;
}
/* icone e label: stessa taglia ovunque (pill e cerchio cerca) */
.navbar-mobile-native .menu .menu-item__icon{
    font-size: 25px;
    line-height: 1;
}
/* la pill visiva è l'indicatore liquido, non più il singolo item */
.navbar-mobile-native .menu .menu-item.active{
    background: transparent !important;
    box-shadow: none;
}
.navbar-mobile-native .menu .menu-active-pill{
    position: absolute;
    top: 6px;
    height: calc(100% - 12px);
    left: 0;
    width: 0;
    opacity: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.06),
        inset 1px 1.5px 0 -1px rgba(255, 255, 255, 0.25);
    transition: left .24s cubic-bezier(.4, 0, .2, 1), width .24s cubic-bezier(.4, 0, .2, 1);
    will-change: left, width;
    pointer-events: none;
}
.navbar-mobile-native .menu .menu-active-pill.no-anim{
    transition: none !important;
}
.navbar-mobile-native .menu .menu-item .menu-item__text{
    font-size: 12px;
    font-weight: 600;
    margin-top: 2px;
    line-height: 1.2;
}
/* la navbar flottante copre più spazio in basso: compenso i contenuti */
.pageMob{
    padding-bottom: calc(84px + env(safe-area-inset-bottom));
}

/* ============ pagine contenuto (video / collection / playlist) ============ */
/* full-bleed dall'alto (erano modal a tutto schermo): niente spazio header,
   solo la safe area della notch */
.pageMob-clear{
    padding-top: env(safe-area-inset-top);
}
/* bottone indietro flottante delle pagine contenuto (ex X delle modali):
   stesso vetro e stessa misura della freccia indietro nell'header
   (.header-back-liquid) e della close delle modali fullscreen */
.page-back-btn{
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(30, 30, 34, 0.55);
    backdrop-filter: blur(36px) saturate(160%);
    -webkit-backdrop-filter: blur(36px) saturate(160%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.08),
        inset 0 1px 0 -0.5px rgba(255, 255, 255, 0.18),
        0 6px 18px -8px rgba(0, 0, 0, 0.6);
    color: white !important;
    font-size: 21px;
    line-height: 1;
    opacity: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 999999;
    transition: transform .18s ease;
}
.page-back-btn i{
    line-height: 1;
}
.page-back-btn:active{
    transform: scale(.9);
}
.pageMob-collection > .page-back-btn,
.pageMob-playlistview > .page-back-btn,
.pageMob-video > .video-back-btn{
    position: fixed;
    top: calc(10px + env(safe-area-inset-top));
    left: 10px;
}

/* ==================== header: capsula cast+avatar ==================== */
/* logo e capsula allineati al centro verticale della riga header */
.header-mobile-native-nav{
    align-items: center;
}
.header-mobile-native-nav .mobile-logo-native{
    display: flex;
    align-items: center;
    justify-content: flex-start; /* logo sempre a sinistra */
}
.header-mobile-native-nav .mobile-logo-native-img{
    display: block;
    margin: 0;
}
.header-mobile-native-nav #mobile-logo-native-label{
    line-height: 1.2;
}
/* stesso materiale della navbar, in formato compatto */
.header-mobile-native-nav .header-actions-capsule{
    flex: 0 0 auto !important;
    display: flex;
    align-items: center;
    align-self: center;
    margin-left: auto;
    margin-right: 10px;
    border-radius: 999px;
    background: rgba(30, 30, 34, 0.55);
    backdrop-filter: blur(36px) saturate(160%);
    -webkit-backdrop-filter: blur(36px) saturate(160%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.08),
        inset 0 1px 0 -0.5px rgba(255, 255, 255, 0.18),
        0 6px 18px -8px rgba(0, 0, 0, 0.6);
    overflow: hidden;
    padding: 5px;
}
.header-actions-capsule .mobile-chromecast,
.header-actions-capsule .mobile-profile{
    flex: 0 0 auto !important;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 5px 14px;
    text-align: center;
    position: relative;
}
.header-actions-capsule .mobile-chromecast{
    opacity: 1;
}
.header-actions-capsule .mobile-chromecast i{
    font-size: 21px;
    opacity: .9;
}
/* hairline tra i due: sta sul cast, così sparisce se il cast è nascosto */
.header-actions-capsule .mobile-chromecast::after{
    content: '';
    position: absolute;
    right: 0;
    top: 22%;
    bottom: 22%;
    width: 1px;
    background: rgba(255, 255, 255, 0.12);
}
.header-actions-capsule .mobile-profile img{
    width: 30px !important;
    height: 30px !important;
}

/* ==================== search: campo moderno ==================== */
#searchMobile .headerSearchGlobalInputMobile{
    height: 48px;
    padding: 0 96px 0 46px !important;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 14px !important;
    color: #fff;
    font-size: 16px;
    box-shadow: none !important;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color .2s ease, border-color .2s ease;
}
#searchMobile .headerSearchGlobalInputMobile:focus{
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.22);
}
#searchMobile .headerSearchGlobalInputMobile::placeholder{
    color: rgba(255, 255, 255, 0.4);
}
#searchMobile .headerSearchIcon{
    left: 15px;
    opacity: .55;
}
#searchMobile .headerSearchMicrophoneIcon{
    right: 6px;
    background: rgba(255, 255, 255, 0.12);
    padding: 6px 11px;
    transition: background-color .2s ease, padding .2s ease;
}
#searchMobile .headerSearchMicrophoneIcon-hovered{
    padding: 9px 14px;
    background: rgba(255, 255, 255, 0.3);
}
#searchMobile .headerSearchRemoveIcon{
    right: 62px;
    opacity: .65;
}

/* ==================== settings: lista raggruppata stile iOS ==================== */
.profile-settings .container-box-flex,
#modal-body-generic .container-box-flex{
    align-items: center;
    background: rgba(255, 255, 255, 0.06);
    padding: 13px 14px !important;
    min-height: 52px;
    margin: 0 !important;
    transition: background-color .15s ease;
}
.profile-settings .container-box-flex:active,
#modal-body-generic .container-box-flex:active{
    background: rgba(255, 255, 255, 0.11);
}
/* separatore tra righe adiacenti dello stesso gruppo */
.profile-settings .container-box-flex + .container-box-flex,
#modal-body-generic .container-box-flex + .container-box-flex{
    border-top: 1px solid rgba(255, 255, 255, 0.07);
}
/* prima riga di un gruppo: angoli sopra */
.profile-settings :not(.container-box-flex) + .container-box-flex,
.profile-settings .container-box-flex:first-child,
#modal-body-generic :not(.container-box-flex) + .container-box-flex,
#modal-body-generic .container-box-flex:first-child{
    border-top-left-radius: 14px;
    border-top-right-radius: 14px;
}
/* ultima riga di un gruppo: angoli sotto */
.profile-settings .container-box-flex:not(:has(+ .container-box-flex)),
#modal-body-generic .container-box-flex:not(:has(+ .container-box-flex)){
    border-bottom-left-radius: 14px;
    border-bottom-right-radius: 14px;
}
/* intestazioni di sezione */
.profile-settings p.gray{
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .07em;
    opacity: .6;
    margin: 20px 4px 8px;
}
/* icona in chip quadrata arrotondata */
.profile-settings .settings-icon,
#modal-body-generic .settings-icon{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    margin-right: 12px;
    border-radius: 9px;
    background: rgba(255, 255, 255, 0.09);
    font-size: 16px;
    opacity: 1;
    flex-shrink: 0;
}
.profile-settings .left-element,
#modal-body-generic .left-element{
    display: flex;
    align-items: center;
}
.profile-settings .left-element label,
#modal-body-generic .left-element label{
    margin: 0;
    font-weight: inherit;
}
.profile-settings .right-element,
#modal-body-generic .right-element{
    display: flex;
    align-items: center;
    opacity: .5;
}

@media (prefers-reduced-motion: reduce){
    .modal.fade .modal-dialog,
    .modal.fade.in .modal-dialog,
    .modal-backdrop.fade,
    .pageMob-enter,
    .navbar-mobile-native .menu .menu-active-pill,
    .navbar-mobile-native .menu .menu-item .menu-item__icon,
    .navbar-mobile-native .menu .menu-item.active .menu-item__icon{
        transition: none !important;
        animation: none !important;
        transform: none !important;
    }
}
/* lista download: card compatte (stesso stile della pagina offline www) */
.list.list-downloaded .list-item{
    align-items: center;
    gap: 10px;
    padding: 8px;
    margin-bottom: 8px;
    border-radius: 10px;
    background: rgba(255,255,255,.07);
    border: 1px solid rgba(255,255,255,.08);
}
.list.list-downloaded .list-item:not(:last-child){
    border-bottom: 1px solid rgba(255,255,255,.08);
}
.list.list-downloaded .list-item__image{
    height: 54px;
}
.list.list-downloaded .list-item__image img{
    width: 96px;
    height: 54px;
    object-fit: cover;
    border-radius: 8px;
}
.list.list-downloaded .list-item__content{
    padding: 0 8px;
    min-width: 0;
}
.download-item-trash{
    border: 0;
    background: transparent;
    color: #9a9a9a;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    flex: none;
}

/* badge download sulla navbar: punto rosso fisso finché c'è un download attivo */
.navbar-mobile-native .menu .menu-item__icon{
    position: relative;
}
.download-nav-badge{
    position: absolute;
    top: -2px;
    right: -3px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ff3b30;
    pointer-events: none;
}

/* ============ bottoni indietro sempre fissi (modali fullscreen) ============ */
/* Vale per TUTTE le modali fullscreen: riconosciute dal dialog SENZA top
   inline. Le mezze modali (generic, sub, subscribe, comment: top inline)
   sono escluse e restano com'erano.
   Header sticky in cima allo scroll, height:0 = puro overlay, nessuno
   spazio aggiunto sopra il contenuto. Sticky e non fixed: nei WebView il
   fixed dentro lo scroll della modale (dialog con transform) si ancora al
   contenuto e scrolla via. */
.modal .modal-dialog:not([style*="top"]) .modal-content{
    overflow-x: visible !important; /* un overflow != visible romperebbe lo sticky */
    display: flow-root;             /* mantiene il contenimento dei margini che faceva l'overflow */
}
.modal .modal-dialog:not([style*="top"]) .modal-header{
    position: sticky;
    top: calc(10px + env(safe-area-inset-top));
    left: auto;
    width: auto;
    height: 0;
    padding: 0;
    margin: 0;
    border: 0;
    overflow: visible;
    z-index: 999999;
}
.modal .modal-dialog:not([style*="top"]) .modal-header .close{
    position: absolute;
    top: 0;
    left: 10px;
}
/* freccia indietro nel titolo header (ricerca per categoria/tag) */
#mobile-logo-native-label .header-back-liquid{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-right: 8px;
    vertical-align: middle;
    border-radius: 50%;
    background: rgba(30, 30, 34, 0.55);
    backdrop-filter: blur(36px) saturate(160%);
    -webkit-backdrop-filter: blur(36px) saturate(160%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.08),
        inset 0 1px 0 -0.5px rgba(255, 255, 255, 0.18),
        0 6px 18px -8px rgba(0, 0, 0, 0.6);
    transition: transform .18s ease;
}
#mobile-logo-native-label .header-back-liquid i{
    font-size: 18px;
    line-height: 1;
}
#mobile-logo-native-label .header-back-liquid:active{
    transform: scale(.9);
}

/* ==================== bottoni: pill stile iOS ==================== */
/* primary = colore company (iniettato da app.js), secondary/round = grigio
   traslucido tipo iOS. Round pieno come navbar e capsula header. Il colore
   del testo dei secondari è il colore company, iniettato da app.js quando
   leggibile sul fondo */
.button-primary,
.button-secondary,
.button-round{
    border: 0 !important;
    border-radius: 999px !important;
    font-weight: 600;
    transition: transform .18s ease, background-color .2s ease, filter .2s ease;
}
.button-primary,
.button-secondary{
    padding: 13px 24px;
    font-size: 17px;
}
.button-small{
    padding: 10px 18px;
    font-size: 14px;
}
/* secondari/round: stesso vetro di navbar e capsula header */
.button-secondary,
.button-round{
    background: rgba(30, 30, 34, 0.55) !important;
    backdrop-filter: blur(36px) saturate(160%);
    -webkit-backdrop-filter: blur(36px) saturate(160%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.08),
        inset 0 1px 0 -0.5px rgba(255, 255, 255, 0.18),
        0 6px 18px -8px rgba(0, 0, 0, 0.6);
}
/* primary: colore company pieno ma con bordo-luce e ombra da vetro */
.button-primary{
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.12),
        inset 0 1.5px 0 -0.5px rgba(255, 255, 255, 0.35),
        0 10px 24px -10px rgba(0, 0, 0, 0.55);
}
.button-primary:active,
.button-secondary:active,
.button-round:active{
    transform: scale(.96);
}
.button-secondary:active,
.button-round:active{
    background: rgba(255, 255, 255, 0.16) !important;
}
/* stato "hover" gestito da JS sul round (es. focus TV/desktop): resta pieno */
.button-round.button-round-hover{
    background: rgba(255, 255, 255, 1) !important;
    color: #000 !important;
}

/* Cast: il bottone tra le azioni del video e quello dell'header spariscono
   se il plugin Chromecast non c'è o se in rete non si vede nessun ricevitore
   (classi messe da cast.js su <html>). Con la sessione attiva il bottone
   resta acceso, come lo stato pieno dei round */
html.no-cast .mobile-chromecast,
html.no-cast .controlButtonCast,
html.no-cast-receiver .mobile-chromecast,
html.no-cast-receiver .controlButtonCast{
    display: none !important;
}
.controlButtonCast.cast-connected{
    background: rgba(255, 255, 255, 1) !important;
    color: #000 !important;
}

/* ---- Salvati: tab orizzontali delle playlist (web + app) ---- */
.playlist-tabs{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:4px 2px 14px;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
}
.playlist-tabs::-webkit-scrollbar{display:none;}
.playlist-tab{
    flex:0 0 auto;
    padding:9px 16px;
    border-radius:999px;
    background:rgba(128,128,128,.16);
    color:#fff;
    font-weight:600;
    font-size:14px;
    cursor:pointer;
    white-space:nowrap;
    border:1px solid transparent;
    transition:background .15s ease;
}
.playlist-tab.active{
    background:#fff;
    color:#000;
}
.playlist-tab-add{
    background:transparent;
    border:1px dashed rgba(255,255,255,.4);
}
.playlist-inline-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin:4px 2px 10px;
}
.playlist-inline-header h2{
    margin:0;
    font-size:20px;
}

/* stato vuoto playlist/preferiti: messaggio + CTA verso il catalogo */
.playlist-empty-state {
    text-align: center;
    padding: 56px 16px;
}
.playlist-empty-state i {
    font-size: 44px;
    opacity: .45;
    display: block;
    margin-bottom: 10px;
    color: white;
}
.playlist-empty-state p {
    opacity: .8;
    margin-bottom: 18px;
}
.playlist-empty-state .button-primary {
    width: auto;
    display: inline-block;
    padding: 12px 26px;
}

/* ============ pagina playlist condivisa (/playlist?id=X) ============ */
.plpage-hero {
    position: relative;
    overflow: hidden;
    border-radius: 16px;
    margin: 8px 12px 18px;
    padding: 26px 18px;
}
.plpage-backdrop {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    filter: blur(42px) saturate(1.25) brightness(.55);
    transform: scale(1.3);
}
.plpage-hero-inner {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
}
.plpage-cover {
    flex: 0 0 128px;
    width: 128px;
    height: 128px;
    border-radius: 12px;
    overflow: hidden;
    background: rgba(255, 255, 255, .08);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .45);
}
.plpage-cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.plpage-cover i {
    font-size: 44px;
    color: white;
    opacity: .6;
}
.plpage-meta { min-width: 0; }
.plpage-kicker {
    font-size: 12px;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: white;
    opacity: .65;
    margin: 0 0 4px;
}
.plpage-title {
    font-size: 24px;
    line-height: 1.15;
    margin: 0 0 8px;
}
.plpage-author {
    display: flex;
    align-items: center;
    gap: 8px;
    color: white;
    opacity: .85;
    font-size: 13.5px;
    margin-bottom: 14px;
}
.plpage-author img {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    object-fit: cover;
}
.plpage-dot { opacity: .5; }
.plpage-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.plpage-actions .button-primary {
    width: auto !important;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 11px 22px;
}
.plpage-contents { padding: 0 6px 40px; }

@media (min-width: 992px) {
    .plpage {
        max-width: 1100px;
        margin: 0 auto;
    }
    .plpage-hero { padding: 40px 34px; }
    .plpage-cover {
        flex-basis: 180px;
        width: 180px;
        height: 180px;
        border-radius: 14px;
    }
    .plpage-title { font-size: 36px; }
    .plpage-contents { padding: 0 10px 60px; }
}

/* ============ [rotate-fullscreen] pagina video in landscape ============
   Fullscreen pilotato dalla rotazione del device (vedi
   initVideoPageRotateFullscreen in live.js): la webview è già ruotata dal
   sistema, qui si toglie di mezzo TUTTO il resto (cromo dell'app e corpo
   della pagina video) e si fissa il player sull'intero viewport. La pagina
   video non va MAI mostrata in landscape con il suo layout: girare lo
   schermo significa solo "guarda il video a tutto schermo".
   Gli !important vincono sulle regole desktop di live.css, che su tablet
   in landscape (>=992px) riapplicherebbero lo stage 16:9. */
body.ty-rotate-fs{
    overflow: hidden;
}
body.ty-rotate-fs .navbar-mobile-native,
body.ty-rotate-fs .header-mobile-native,
body.ty-rotate-fs .notch-element-cover,
body.ty-rotate-fs .pageMob-video > .video-back-btn,
body.ty-rotate-fs .video-cinema-lighting,
body.ty-rotate-fs .video-side,
body.ty-rotate-fs .footerButtonVideoInfo,
body.ty-rotate-fs #box_livecollection_live,
body.ty-rotate-fs .video_det{
    display: none !important;
}
/* la pagina non deve riservare spazio a header/navbar spariti */
body.ty-rotate-fs .pageMob{
    padding: 0 !important;
}
body.ty-rotate-fs .playerDiv #video-container-big{
    position: fixed !important;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    margin: 0 !important;
    border-radius: 0 !important;
    background: #000;
    overflow: hidden;
    z-index: 99999999; /* sopra tutto: navbar e modali arrivano a 9999999 */
}
body.ty-rotate-fs .playerDiv #video-container-big video-player,
body.ty-rotate-fs .playerDiv #video-container-big video-skin,
body.ty-rotate-fs .playerDiv #video-container-big hlsjs-video,
body.ty-rotate-fs .playerDiv #video-container-big native-hls-video,
body.ty-rotate-fs .playerDiv #video-container-big video{
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
}
body.ty-rotate-fs .playerDiv #video-container-big video{ object-fit: contain; }
