:root{--verde:#009246;--rosso:#CE2B37;--bianco:#F0F8FF;--dark:#030d18;--dark2:#061628;--dark3:#0a2035;--card:#0d2845;--gold:#FFD700;--celeste:#00b4e0;--celeste2:#0082b3;--celeste3:#64d8f7;--text-muted:#7aa8cc;--radius:12px}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Nunito',sans-serif;background:linear-gradient(160deg,#030d18 0%,#061e35 40%,#04152a 70%,#030d18 100%);background-attachment:fixed;color:var(--bianco);overflow-x:hidden;min-height:100vh}
nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:linear-gradient(180deg,rgba(3,13,24,.98),rgba(3,13,24,.88));backdrop-filter:blur(16px);border-bottom:1px solid rgba(0,180,224,.2);padding:0;height:64px;display:flex;align-items:center}
.nav-top{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%;padding:0 2rem}
nav::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--verde) 0%,var(--verde) 33.3%,#fff 33.3%,#fff 66.6%,var(--rosso) 66.6%)}
.logo{font-family:'Bebas Neue',sans-serif;font-size:3.8rem;letter-spacing:4px;background:linear-gradient(90deg,#ff0000,#ff7700,#ffff00,#00ff00,#00ffff,#0077ff,#ff00ff,#ff0000);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;cursor:pointer;filter:drop-shadow(0 0 18px rgba(255,100,255,.5));animation:rgb-logo 3s linear infinite;transition:filter .3s}
.logo:hover{filter:drop-shadow(0 0 32px rgba(255,100,255,.85)) drop-shadow(0 0 60px rgba(0,200,255,.5))}
@keyframes rgb-logo{0%{background-position:0% center}100%{background-position:200% center}}
.nav-links{display:flex;gap:.3rem;align-items:center}
.nav-btn{background:none;border:none;font-family:'Nunito',sans-serif;font-size:.9rem;font-weight:700;padding:.4rem 1rem;border-radius:6px;cursor:pointer;transition:all .2s;position:relative;background:linear-gradient(90deg,#ff0000,#ff6600,#ffff00,#00ff44,#00ffff,#0044ff,#aa00ff,#ff00aa,#ff0000);background-size:300% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:rgb-logo 3s linear infinite;opacity:.75;filter:drop-shadow(0 0 6px rgba(180,100,255,.35))}
.nav-btn:hover{opacity:1;filter:drop-shadow(0 0 12px rgba(0,200,255,.7)) drop-shadow(0 0 22px rgba(255,0,150,.5));transform:translateY(-1px)}
.nav-btn.active{
  opacity:1;
  transform:translateY(-1px) scale(1.1);
  font-size:1.0rem;
  position:relative;
  border-radius:22px;
  padding:.45rem 1.15rem;
  /* Transparent interior, animated RGB border via box-shadow layers */
  background:none;
  border:none;
  outline:none;
  /* RGB animated text (inherited from .nav-btn but brighter) */
  -webkit-text-fill-color:transparent;
  background-image:linear-gradient(90deg,#ff0000,#ff6600,#ffff00,#00ff44,#00ffff,#0044ff,#aa00ff,#ff00aa,#ff0000);
  background-size:300% auto;
  -webkit-background-clip:text;
  background-clip:text;
  animation:rgb-logo 2s linear infinite, navActiveBorderGlow 2s linear infinite;
  /* Inset ring effect to simulate transparent border */
  filter:drop-shadow(0 0 0 0);
}
.nav-btn.active::after{
  content:'';
  position:absolute;
  inset:-2px;
  border-radius:24px;
  padding:2px;
  background:linear-gradient(90deg,#ff0040,#ff6000,#ffcc00,#00ff80,#00ccff,#8800ff,#ff0080,#ff0040);
  background-size:300% auto;
  animation:rgb-logo 2s linear infinite;
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor;
  mask-composite:exclude;
  pointer-events:none;
}
@keyframes navActiveBorderGlow {
  0%,100%{filter:drop-shadow(0 0 6px rgba(255,0,64,.8)) drop-shadow(0 0 14px rgba(255,0,64,.4))}
  33%{filter:drop-shadow(0 0 6px rgba(255,140,0,.9)) drop-shadow(0 0 14px rgba(255,80,0,.4))}
  66%{filter:drop-shadow(0 0 6px rgba(0,200,255,.9)) drop-shadow(0 0 14px rgba(0,100,255,.4))}
}
.nav-actions{display:flex;gap:.6rem;align-items:center}

.btn-login{background:transparent;border:1.5px solid rgba(0,180,224,.35);color:var(--celeste3);font-family:'Nunito',sans-serif;font-weight:700;font-size:.85rem;padding:.4rem 1.1rem;border-radius:20px;cursor:pointer;transition:all .2s}
.btn-login:hover{border-color:var(--celeste);background:rgba(0,180,224,.1)}
.btn-admin{background:linear-gradient(135deg,var(--celeste2),var(--celeste));color:#fff;font-family:'Nunito',sans-serif;font-weight:700;font-size:.85rem;padding:.4rem 1.1rem;border-radius:20px;border:none;cursor:pointer;transition:all .2s;box-shadow:0 2px 12px rgba(0,180,224,.35)}
.btn-admin:hover{transform:scale(1.04)}
main{padding-top:64px;min-height:100vh}
.hero{position:relative;height:520px;background:linear-gradient(160deg,#030d18 0%,#062040 50%,#041525 100%);display:flex;align-items:center;justify-content:center;padding:2.5rem 2rem;overflow:hidden;text-align:center}
.hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(0,180,224,.18) 0%,transparent 65%),radial-gradient(ellipse at 80% 20%,rgba(100,216,247,.08) 0%,transparent 50%)}
.hero-stripe{position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--verde) 0%,var(--verde) 33%,var(--bianco) 33%,var(--bianco) 66%,var(--rosso) 66%,var(--rosso) 100%)}
.hero-bg-poster{position:absolute;right:0;top:0;bottom:0;width:60%;background:linear-gradient(90deg,#030d18 0%,transparent 35%),url('https://images.unsplash.com/photo-1536440136628-849c177e76a1?w=900&q=80') center/cover no-repeat;opacity:.45}
.hero-content{position:relative;z-index:2;max-width:560px;width:100%;text-align:center;margin:0 auto}
.hero-badge{display:inline-block;background:var(--rosso);color:#fff;font-size:.7rem;font-weight:900;letter-spacing:1.5px;padding:.25rem .7rem;border-radius:4px;text-transform:uppercase;margin-bottom:.8rem}
.hero h1{font-family:'Bebas Neue',sans-serif;font-size:4rem;line-height:1;margin-bottom:.8rem;text-shadow:0 2px 20px rgba(0,0,0,.8)}
.hero p{font-size:.95rem;color:#c8dff0;line-height:1.6;margin-bottom:1.4rem;max-width:420px;margin-left:auto;margin-right:auto}
.hero-meta{display:flex;gap:1rem;align-items:center;justify-content:center;font-size:.8rem;color:#9bbdd4;margin-bottom:1.2rem}
.hero-rating{color:var(--gold);font-weight:700}
.btn-play{background:linear-gradient(135deg,var(--celeste2),var(--celeste));color:#fff;border:none;font-family:'Nunito',sans-serif;font-weight:900;font-size:1rem;padding:.75rem 2rem;border-radius:50px;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:all .25s;box-shadow:0 4px 20px rgba(0,180,224,.4)}
.btn-play:hover{transform:translateY(-2px);box-shadow:0 6px 28px rgba(0,180,224,.55)}
.page{display:none}.page.active{display:block}
.section-row{padding:2rem 2.5rem;width:100%;box-sizing:border-box}
.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem}
.section-title{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:1px;display:flex;align-items:center;gap:.6rem;background:linear-gradient(90deg,#ff0000,#ff6600,#ffff00,#00ff44,#00ffff,#0044ff,#aa00ff,#ff00aa,#ff0000);background-size:300% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:rgb-logo 3s linear infinite;filter:drop-shadow(0 0 8px rgba(180,100,255,.4))}
.section-title::before{content:'';display:inline-block;width:4px;height:1.4rem;border-radius:2px;flex-shrink:0;-webkit-text-fill-color:unset;background:linear-gradient(180deg,#ff0055,#00ffcc)!important}
.cat-film .section-title::before{background:linear-gradient(180deg,#ff0055,#ff6600)!important}
.cat-serie .section-title::before{background:linear-gradient(180deg,#00ffcc,#0044ff)!important}
.cat-anime .section-title::before{background:linear-gradient(180deg,#ffff00,#ff6600)!important}
.cat-kdrama .section-title::before{background:linear-gradient(180deg,#ff00aa,#7700ff)!important}
.see-all{font-size:.8rem;color:var(--celeste);cursor:pointer;font-weight:600;transition:color .2s;background:none;border:none}
.see-all:hover{color:var(--celeste3)}
.cards-row{display:flex;gap:1rem;overflow-x:auto;padding-bottom:.8rem;scroll-snap-type:x mandatory;padding-right:2.5rem;-webkit-overflow-scrolling:touch}
.cards-row::-webkit-scrollbar{height:4px}
.cards-row::-webkit-scrollbar-thumb{background:rgba(0,180,224,.3);border-radius:2px}
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1.2rem}
.card{flex-shrink:0;width:160px;scroll-snap-align:start;background:var(--card);border-radius:var(--radius);overflow:hidden;cursor:pointer;transition:transform .25s,box-shadow .25s,border-color .25s;position:relative;border:1px solid transparent}
.cards-grid .card,.series-grid .card{width:auto}
.card:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 12px 40px rgba(0,180,224,.2);border-color:rgba(0,180,224,.3)}
.card-poster{width:100%;aspect-ratio:2/3;background:linear-gradient(135deg,#1a1a2e,#16213e);display:flex;align-items:center;justify-content:center;font-size:3rem;position:relative;overflow:hidden}
.card-poster img{width:100%;height:100%;object-fit:cover}
.poster-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3rem}
.card-overlay{position:absolute;inset:0;background:linear-gradient(transparent 50%,rgba(0,0,0,.92) 100%);opacity:0;transition:opacity .25s;display:flex;align-items:flex-end;justify-content:center;padding-bottom:1rem}
.card:hover .card-overlay{opacity:1}
.card-play-btn{background:var(--celeste);border:none;color:#fff;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.1rem;cursor:pointer;transition:transform .2s;box-shadow:0 4px 16px rgba(0,180,224,.5)}
.card-badge{position:absolute;top:8px;left:8px;background:var(--rosso);color:#fff;font-size:.6rem;font-weight:900;letter-spacing:1px;padding:2px 6px;border-radius:4px;text-transform:uppercase}
.card-info{padding:.6rem .7rem .8rem}
.card-title{font-weight:700;font-size:.82rem;line-height:1.3;margin-bottom:.2rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card-meta{font-size:.7rem;color:var(--text-muted)}
.ep-selector{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;padding-top:1rem;border-top:1px solid rgba(255,255,255,.08)}
.ep-btn{background:rgba(0,180,224,.1);border:1px solid rgba(0,180,224,.25);color:var(--celeste3);font-family:'Nunito',sans-serif;font-size:.78rem;font-weight:700;padding:.3rem .75rem;border-radius:6px;cursor:pointer;transition:all .18s}
.ep-btn:hover,.ep-btn.active-ep{background:var(--celeste);color:#fff;border-color:var(--celeste);box-shadow:0 2px 10px rgba(0,180,224,.4)}
.season-header{font-family:'Bebas Neue',sans-serif;font-size:1rem;letter-spacing:1px;color:var(--celeste3);margin-bottom:.4rem}
.category-header{padding:2rem 2.5rem 1.5rem;border-bottom:1px solid rgba(0,180,224,.1);display:flex;align-items:center;gap:1rem;background:linear-gradient(180deg,rgba(0,180,224,.04) 0%,transparent 100%)}
.category-header h2{font-family:'Bebas Neue',sans-serif;font-size:2.5rem;letter-spacing:2px;background:linear-gradient(90deg,#ff0000,#ff6600,#ffff00,#00ff44,#00ffff,#0044ff,#aa00ff,#ff00aa,#ff0000);background-size:300% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:rgb-logo 3s linear infinite;filter:drop-shadow(0 0 10px rgba(180,100,255,.5))}
.cat-icon{font-size:2rem}
.modal-overlay{display:none;position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.9);backdrop-filter:blur(12px);align-items:flex-start;justify-content:center;padding:1rem;overflow-y:auto}
.modal-overlay.open{display:flex}
.modal-box{background:var(--dark2);border-radius:16px;overflow:hidden;width:100%;max-width:860px;border:1px solid rgba(0,180,224,.2);box-shadow:0 0 60px rgba(0,180,224,.15);animation:modalIn .3s ease;margin:auto}
@keyframes modalIn{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
.modal-player{display:none;width:100%;aspect-ratio:16/9;min-height:260px;background:linear-gradient(135deg,#0a0f1a 0%,#1a1a2e 50%,#16213e 100%);position:relative;overflow:hidden;border-radius:0}
.modal-player::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(0,180,224,.15) 0%,transparent 70%);pointer-events:none}
.modal-player iframe{width:100%;height:100%;border:none;position:relative;z-index:2}
.modal-player-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;background:linear-gradient(135deg,rgba(0,146,70,.08) 0%,rgba(0,180,224,.08) 50%,rgba(206,43,55,.08) 100%);position:relative}
.modal-player-placeholder::before{content:'';position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%2300b4e0' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");opacity:.4}
.player-icon{font-size:5rem;color:var(--celeste3);opacity:.3;filter:drop-shadow(0 4px 20px rgba(0,180,224,.4))}
.player-message{color:var(--celeste3);font-size:1.1rem;font-weight:600;letter-spacing:.5px;text-align:center;max-width:400px;line-height:1.6;z-index:1}
.modal-body{padding:1.2rem}
/* Layout mobile: poster piccolo + titolo affiancati, poi tutto il resto sotto */
.modal-top{display:flex;flex-direction:column;gap:0;margin-bottom:0}
.modal-hero{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1rem;padding:1.2rem;background:linear-gradient(135deg,rgba(0,180,224,.06),rgba(0,0,0,0));border-radius:12px}
.modal-poster{flex-shrink:0;width:80px;height:120px;border-radius:8px;overflow:hidden;background:var(--dark3);border:1px solid rgba(0,180,224,.2)}
.modal-poster img{width:100%;height:100%;object-fit:cover}
.modal-title-block{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.modal-info h2{font-family:'Bebas Neue',sans-serif;font-size:1.6rem;letter-spacing:1px;margin-bottom:.4rem;line-height:1.1;background:linear-gradient(90deg,var(--bianco) 60%,var(--celeste3) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.modal-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-bottom:.5rem}
.tag{background:rgba(255,255,255,.07);font-size:.68rem;padding:.2rem .5rem;border-radius:4px;color:#bbb}
.tag.green{background:rgba(0,146,70,.2);color:#4dba7f}
.tag.blue{background:rgba(0,180,224,.2);color:var(--celeste3)}
.modal-stats{display:flex;gap:.8rem;flex-wrap:wrap;margin-bottom:.8rem;font-size:.75rem;color:var(--text-muted);padding:0 .2rem}
.modal-stats div{background:rgba(255,255,255,.04);padding:.4rem .7rem;border-radius:8px;border:1px solid rgba(255,255,255,.06);text-align:center}
.modal-stats div strong{color:var(--bianco);display:block;font-size:.82rem;font-weight:700}
.modal-desc{font-size:.86rem;line-height:1.7;color:#bbb;padding:0 .2rem;margin-bottom:1rem}
/* Rating badge nel modal accanto al poster */
.modal-rating-badge{margin-top:.6rem;background:rgba(0,180,224,.08);border:1px solid rgba(0,180,224,.2);border-radius:10px;padding:.5rem .7rem;display:inline-flex;flex-direction:column;align-items:center;gap:.15rem}
.modal-rating-stars{color:#f0a500;font-size:.95rem;letter-spacing:1px}
.modal-rating-value{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;color:var(--celeste3);line-height:1}
.modal-rating-count{font-size:.63rem;color:#777}
/* Commenti nel modal */
.modal-comments-wrap{margin-top:1rem;border-top:1px solid rgba(255,255,255,.07);padding-top:.9rem}
.modal-comments-title{font-size:.78rem;font-weight:700;color:var(--celeste3);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.65rem}
.modal-cmtform{display:flex;gap:.5rem;margin-bottom:.8rem;align-items:flex-start}
.modal-cmtform textarea{flex:1;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:var(--bianco);padding:.5rem .7rem;border-radius:8px;font-family:'Nunito',sans-serif;font-size:.8rem;resize:none;min-height:52px;transition:border-color .2s}
.modal-cmtform textarea:focus{outline:none;border-color:var(--celeste)}
.modal-cmtform button{background:var(--celeste2);border:none;color:#fff;padding:.4rem .75rem;border-radius:8px;cursor:pointer;font-size:.78rem;font-weight:700;white-space:nowrap;margin-top:2px}
.modal-cmt-list{display:flex;flex-direction:column;gap:.5rem;max-height:200px;overflow-y:auto}
.modal-cmt-list .comment-item{padding:.5rem .6rem}
.modal-actions{display:flex;gap:.6rem;flex-wrap:wrap;padding:.2rem;margin-top:0}
.modal-actions button{flex:1;min-width:130px;justify-content:center;font-size:.82rem;padding:.55rem .8rem}
/* Desktop */
@media(min-width:600px){
  .modal-body{padding:1.8rem}
  .modal-hero{gap:1.5rem;padding:0;background:none;margin-bottom:1.2rem}
  .modal-poster{width:130px;height:195px}
  .modal-title-block{justify-content:flex-start}
  .modal-info h2{font-size:2rem}
  .modal-stats{gap:1rem;font-size:.78rem}
  .modal-desc{font-size:.88rem}
  .modal-actions button{flex:0 0 auto;min-width:auto;font-size:.88rem;padding:.6rem 1.3rem}
}
.btn-green{background:linear-gradient(135deg,var(--verde),#007a3d);color:#fff;border:none;font-family:'Nunito',sans-serif;font-weight:700;font-size:.9rem;padding:.6rem 1.5rem;border-radius:50px;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s;box-shadow:0 4px 16px rgba(0,146,70,.3)}
.btn-green:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,146,70,.45)}
.btn-outline{background:transparent;border:2px solid rgba(255,255,255,.2);color:var(--bianco);font-family:'Nunito',sans-serif;font-weight:700;font-size:.9rem;padding:.6rem 1.5rem;border-radius:50px;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s}
.btn-outline:hover{border-color:var(--celeste);color:var(--celeste3);background:rgba(0,180,224,.08)}
.btn-blue{background:linear-gradient(135deg,var(--celeste2),var(--celeste));color:#fff;border:none;font-family:'Nunito',sans-serif;font-weight:700;font-size:.9rem;padding:.6rem 1.5rem;border-radius:50px;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s;box-shadow:0 4px 16px rgba(0,180,224,.3)}
.btn-blue:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,180,224,.45)}
.btn-red{background:linear-gradient(135deg,var(--rosso),#a02030);color:#fff;border:none;font-family:'Nunito',sans-serif;font-weight:700;font-size:.9rem;padding:.6rem 1.5rem;border-radius:50px;cursor:pointer;display:inline-flex;align-items:center;gap:.5rem;transition:all .2s}
.btn-logout{background:transparent;border:1.5px solid rgba(206,43,55,.4);color:var(--rosso);font-family:'Nunito',sans-serif;font-weight:700;font-size:.85rem;padding:.4rem 1.1rem;border-radius:20px;cursor:pointer;transition:all .2s}
.btn-logout:hover{background:var(--rosso);color:#fff;border-color:var(--rosso)}
.close-modal{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,.08);border:none;color:#fff;width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.3rem;display:flex;align-items:center;justify-content:center;transition:all .2s}
.close-modal:hover{background:rgba(255,255,255,.15);transform:rotate(90deg)}
.admin-page-cont{padding:2rem}
.admin-header{padding:2rem 2rem 1rem;border-bottom:1px solid rgba(0,180,224,.1);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.admin-header h2{font-family:'Bebas Neue',sans-serif;font-size:2.5rem;letter-spacing:2px;background:linear-gradient(90deg,var(--celeste3),var(--celeste));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.admin-tabs{display:flex;gap:.5rem;padding:0 2rem;margin-top:1rem;border-bottom:1px solid rgba(255,255,255,.05);flex-wrap:wrap}
.admin-tab{background:none;border:none;color:#888;font-family:'Nunito',sans-serif;font-weight:700;font-size:.85rem;padding:.7rem 1.2rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}
.admin-tab:hover{color:var(--celeste3)}
.admin-tab.active{color:var(--celeste3);border-bottom-color:var(--celeste)}
.admin-section{display:none;padding:2rem}
.admin-section.active{display:block}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem;margin-bottom:1.5rem}
.form-group{margin-bottom:1rem}
.form-group label{display:block;font-size:.82rem;font-weight:600;color:var(--text-muted);margin-bottom:.4rem;text-transform:uppercase;letter-spacing:.5px}
.form-group input,.form-group select,.form-group textarea{width:100%;background:var(--dark3);border:1px solid rgba(255,255,255,.1);color:var(--bianco);padding:.7rem;border-radius:8px;font-family:'Nunito',sans-serif;font-size:.9rem;transition:all .2s}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--celeste);box-shadow:0 0 0 3px rgba(0,180,224,.1)}
.form-group textarea{resize:vertical;min-height:100px}
.form-row{display:flex;gap:.5rem;align-items:flex-end}
.btn-add-field{background:rgba(0,180,224,.1);border:1px solid rgba(0,180,224,.25);color:var(--celeste3);font-family:'Nunito',sans-serif;font-weight:700;font-size:.82rem;padding:.5rem 1rem;border-radius:6px;cursor:pointer;transition:all .2s}
.btn-add-field:hover{background:rgba(0,180,224,.2);border-color:var(--celeste)}
.btn-submit{background:linear-gradient(135deg,var(--celeste2),var(--celeste));color:#fff;border:none;font-family:'Nunito',sans-serif;font-weight:700;font-size:.9rem;padding:.7rem 1.8rem;border-radius:50px;cursor:pointer;transition:all .2s;box-shadow:0 4px 16px rgba(0,180,224,.3)}
.btn-submit:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,180,224,.45)}
.content-list{display:flex;flex-direction:column;gap:.8rem}
.content-list-item{background:var(--dark3);padding:1rem;border-radius:8px;display:grid;grid-template-columns:60px 1fr 120px 80px 150px;gap:1rem;align-items:center;border:1px solid rgba(255,255,255,.05);transition:all .2s}
.content-list-item:hover{border-color:rgba(0,180,224,.2);background:rgba(0,180,224,.03)}
.content-thumb{width:60px;height:90px;border-radius:4px;overflow:hidden;background:var(--card);display:flex;align-items:center;justify-content:center;font-size:1.5rem}
.content-thumb img{width:100%;height:100%;object-fit:cover}
.item-title{font-weight:700;font-size:.9rem;margin-bottom:.2rem}
.item-meta{font-size:.75rem;color:var(--text-muted)}
.cat-badge{display:inline-block;font-size:.7rem;padding:.2rem .5rem;border-radius:4px;font-weight:700;text-transform:uppercase}
.cat-film-b{background:rgba(0,146,70,.2);color:#4dba7f}
.cat-serie-b{background:rgba(0,180,224,.2);color:var(--celeste3)}
.cat-anime-b{background:rgba(255,215,0,.2);color:var(--gold)}
.cat-kdrama-b{background:rgba(233,30,140,.2);color:#e91e8c}
.btn-delete{background:rgba(206,43,55,.15);border:1px solid rgba(206,43,55,.3);color:var(--rosso);font-size:.75rem;font-weight:700;padding:.4rem .8rem;border-radius:6px;cursor:pointer;transition:all .2s}
.btn-delete:hover{background:var(--rosso);color:#fff;border-color:var(--rosso)}
.collab-item{background:var(--dark3);padding:1rem;border-radius:8px;display:flex;align-items:center;gap:1rem;margin-bottom:.8rem;border:1px solid rgba(255,255,255,.05)}
.collab-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--celeste2),var(--celeste));display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.2rem;color:#fff}
.empty-state{text-align:center;padding:3rem 2rem;color:#666}
.empty-icon{font-size:3rem;display:block;margin-bottom:1rem;opacity:.4}
.auth-modal{display:none;position:fixed;inset:0;z-index:2000;background:rgba(0,0,0,.88);backdrop-filter:blur(10px);align-items:flex-start;justify-content:center;padding:1rem;overflow-y:auto}
.auth-modal.open{display:flex}
.auth-box{background:var(--dark2);border-radius:16px;width:100%;max-width:450px;padding:2.5rem;position:relative;border:1px solid rgba(0,180,224,.2);animation:modalIn .3s ease;margin:auto}
.auth-stripe{position:absolute;top:0;left:0;right:0;height:4px;border-radius:16px 16px 0 0;background:linear-gradient(90deg,var(--verde),var(--celeste),var(--rosso))}
.auth-box h2{font-family:'Bebas Neue',sans-serif;font-size:2rem;letter-spacing:1px;margin-bottom:1.5rem;text-align:center;background:linear-gradient(90deg,var(--celeste3),var(--celeste));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.auth-logo-mini{font-family:'Bebas Neue',sans-serif;font-size:1.5rem;text-align:center;margin-bottom:1rem;background:linear-gradient(90deg,var(--verde),var(--celeste3),var(--rosso));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.auth-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;background:var(--dark3);padding:.3rem;border-radius:8px}
.auth-tab{flex:1;background:none;border:none;color:#888;font-family:'Nunito',sans-serif;font-weight:700;font-size:.9rem;padding:.6rem;border-radius:6px;cursor:pointer;transition:all .2s}
.auth-tab.active{background:var(--celeste);color:#fff}
.modal-close{position:absolute;top:1rem;right:1rem;background:rgba(255,255,255,.08);border:none;color:#fff;width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:1.2rem;display:flex;align-items:center;justify-content:center;transition:all .2s}
.modal-close:hover{background:rgba(255,255,255,.15);transform:rotate(90deg)}
.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,var(--celeste2),var(--celeste));color:#fff;padding:1rem 1.5rem;border-radius:50px;box-shadow:0 8px 32px rgba(0,0,0,.5);z-index:9999;font-weight:600;font-size:.9rem;display:none;animation:toastIn .3s ease;border:1px solid rgba(0,180,224,.3)}
.toast.show{display:block}
/* ═══════════════════════════════════════
   CHAT COMMUNITY - FLOATING WINDOW
═══════════════════════════════════════ */
#chat-bubble{position:fixed;bottom:2rem;right:2rem;z-index:4000;width:54px;height:54px;border-radius:50%;background:linear-gradient(135deg,var(--celeste2),var(--celeste));border:none;color:#fff;font-size:1.4rem;cursor:pointer;box-shadow:0 4px 24px rgba(0,180,224,.5);transition:all .25s;display:flex;align-items:center;justify-content:center}
#chat-bubble:hover{transform:scale(1.1);box-shadow:0 6px 32px rgba(0,180,224,.7)}
#chat-bubble .chat-badge{position:absolute;top:-4px;right:-4px;background:var(--rosso);color:#fff;border-radius:50%;font-size:.6rem;font-weight:900;width:18px;height:18px;display:none;align-items:center;justify-content:center}
#chat-bubble .chat-badge.show{display:flex}

#chat-window{
  position:fixed;
  bottom:6rem;
  right:2rem;
  width:360px;
  height:480px;
  min-width:280px;
  min-height:300px;
  max-width:90vw;
  max-height:80vh;
  z-index:4000;
  display:none;
  flex-direction:column;
  border-radius:16px;
  overflow:hidden;
  border:1px solid rgba(0,180,224,.25);
  box-shadow:0 20px 60px rgba(0,0,0,.6),0 0 0 1px rgba(0,180,224,.1);
  animation:chatIn .25s ease;
  background:var(--dark2);
  resize:both;
}
#chat-window.open{display:flex}
@keyframes chatIn{from{opacity:0;transform:scale(.92) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}

.chat-header{
  background:linear-gradient(135deg,rgba(0,130,179,.95),rgba(0,180,224,.85));
  padding:.75rem 1rem;
  display:flex;
  align-items:center;
  gap:.6rem;
  cursor:grab;
  user-select:none;
  flex-shrink:0;
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(255,255,255,.1);
}
.chat-header:active{cursor:grabbing}
.chat-header-icon{font-size:1.2rem}
.chat-header-title{font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:1px;flex:1}
.chat-header-online{font-size:.72rem;color:rgba(255,255,255,.7);display:flex;align-items:center;gap:.3rem}
.chat-online-dot{width:7px;height:7px;border-radius:50%;background:#4dba7f;box-shadow:0 0 6px #4dba7f;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.chat-header-actions{display:flex;gap:.3rem}
.chat-hbtn{background:rgba(255,255,255,.15);border:none;color:#fff;width:26px;height:26px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.85rem;transition:background .15s}
.chat-hbtn:hover{background:rgba(255,255,255,.3)}

.chat-tabs{display:flex;background:rgba(0,0,0,.3);flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.06)}
.chat-tab{flex:1;background:none;border:none;color:#888;font-family:'Nunito',sans-serif;font-weight:700;font-size:.75rem;padding:.5rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}
.chat-tab.active{color:var(--celeste3);border-bottom-color:var(--celeste)}

.chat-body{flex:1;overflow-y:auto;padding:.8rem;display:flex;flex-direction:column;gap:.5rem;scroll-behavior:smooth}
.chat-body::-webkit-scrollbar{width:4px}
.chat-body::-webkit-scrollbar-thumb{background:rgba(0,180,224,.3);border-radius:2px}

.chat-msg{display:flex;gap:.5rem;align-items:flex-end;animation:msgIn .2s ease}
.chat-msg.own{flex-direction:row-reverse}
@keyframes msgIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.chat-msg-avatar{font-size:1.4rem;flex-shrink:0;margin-bottom:.1rem}
.chat-msg-bubble{max-width:75%;padding:.5rem .75rem;border-radius:12px;font-size:.82rem;line-height:1.45;position:relative;word-break:break-word}
.chat-msg:not(.own) .chat-msg-bubble{background:var(--dark3);border-bottom-left-radius:4px;border:1px solid rgba(255,255,255,.06)}
.chat-msg.own .chat-msg-bubble{background:linear-gradient(135deg,var(--celeste2),var(--celeste));border-bottom-right-radius:4px;color:#fff}
.chat-msg-user{font-size:.68rem;font-weight:700;color:var(--celeste3);margin-bottom:.15rem}
.chat-msg.own .chat-msg-user{text-align:right;color:rgba(255,255,255,.8)}
.chat-msg-time{font-size:.62rem;color:#555;margin-top:.2rem;text-align:right}
.chat-msg.own .chat-msg-time{color:rgba(255,255,255,.5)}
.chat-system-msg{text-align:center;font-size:.72rem;color:#555;padding:.3rem;font-style:italic}

.chat-footer{padding:.6rem;background:rgba(0,0,0,.25);border-top:1px solid rgba(255,255,255,.06);flex-shrink:0;position:relative}
.chat-input-row{display:flex;gap:.5rem;align-items:center}
.chat-input-wrap{flex:1;position:relative;display:flex;align-items:center}
.chat-input{width:100%;background:var(--dark3);border:1px solid rgba(255,255,255,.1);color:var(--bianco);padding:.5rem 2.2rem .5rem .75rem;border-radius:20px;font-family:'Nunito',sans-serif;font-size:.85rem;outline:none;transition:border-color .2s}
.chat-input:focus{border-color:var(--celeste)}
.chat-emoji-btn{position:absolute;right:.5rem;background:none;border:none;font-size:1.1rem;cursor:pointer;padding:0;line-height:1;opacity:.6;transition:opacity .2s,transform .2s}
.chat-emoji-btn:hover{opacity:1;transform:scale(1.2)}
.chat-send-btn{background:linear-gradient(135deg,var(--celeste2),var(--celeste));border:none;color:#fff;width:34px;height:34px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .2s;flex-shrink:0}
.chat-send-btn:hover{transform:scale(1.1);box-shadow:0 4px 12px rgba(0,180,224,.5)}
.emoji-picker{position:absolute;bottom:calc(100% + .5rem);right:0;left:0;background:var(--dark2);border:1px solid rgba(0,180,224,.2);border-radius:12px;padding:.6rem;display:none;flex-wrap:wrap;gap:.3rem;box-shadow:0 8px 32px rgba(0,0,0,.5);z-index:100;animation:chatIn .15s ease}
.emoji-picker.open{display:flex}
.emoji-opt{background:none;border:none;font-size:1.3rem;cursor:pointer;padding:.2rem .25rem;border-radius:6px;transition:transform .15s,background .15s;line-height:1}
.emoji-opt:hover{transform:scale(1.25);background:rgba(0,180,224,.1)}
.chat-login-notice{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:.8rem;color:#666;font-size:.85rem;text-align:center;padding:1rem}
.chat-resize-hint{position:absolute;bottom:0;right:0;width:16px;height:16px;cursor:se-resize;opacity:.3}
.chat-resize-hint::after{content:'⟂';color:var(--celeste3);font-size:.7rem;position:absolute;bottom:2px;right:2px}

@keyframes toastIn{from{opacity:0;transform:translate(-50%,20px)}to{opacity:1;transform:translate(-50%,0)}}

/* USER PANEL */
.user-panel-overlay{display:none;position:fixed;inset:0;z-index:2500;background:rgba(0,0,0,.88);backdrop-filter:blur(10px);align-items:flex-start;justify-content:center;padding:1rem;overflow-y:auto}
.user-panel-overlay.open{display:flex}
.user-panel-box{background:var(--dark2);border-radius:16px;width:100%;max-width:520px;padding:0;position:relative;border:1px solid rgba(0,180,224,.2);animation:modalIn .3s ease;margin:auto;overflow:hidden}
.user-panel-header{background:linear-gradient(135deg,rgba(0,180,224,.12),rgba(0,146,70,.08));padding:2rem;text-align:center;border-bottom:1px solid rgba(255,255,255,.07);position:relative}
.user-panel-avatar{font-size:4rem;margin-bottom:.5rem;cursor:pointer;transition:transform .2s;display:inline-block}
.user-panel-avatar:hover{transform:scale(1.1)}
.user-panel-name{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:1px;background:linear-gradient(90deg,var(--bianco),var(--celeste3));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.user-panel-email{font-size:.8rem;color:var(--text-muted);margin-top:.2rem}
.user-panel-since{font-size:.75rem;color:#555;margin-top:.3rem}
.user-panel-tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.06)}
.user-panel-tab{flex:1;background:none;border:none;color:#888;font-family:'Nunito',sans-serif;font-weight:700;font-size:.82rem;padding:.8rem;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s}
.user-panel-tab:hover{color:var(--celeste3)}
.user-panel-tab.active{color:var(--celeste3);border-bottom-color:var(--celeste)}
.user-panel-section{display:none;padding:1.5rem}
.user-panel-section.active{display:block}
.avatar-picker{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}
.avatar-opt{font-size:1.8rem;cursor:pointer;padding:.3rem;border-radius:8px;border:2px solid transparent;transition:all .2s}
.avatar-opt:hover{background:rgba(0,180,224,.1);border-color:rgba(0,180,224,.3)}
.avatar-opt.selected{background:rgba(0,180,224,.15);border-color:var(--celeste)}

/* FULLSCREEN PLAYER PAGE */
#player-page{display:none;position:fixed;inset:0;z-index:3000;background:#000;flex-direction:column;overflow-y:auto}
#player-page.open{display:flex}
#player-back-btn{position:absolute;top:1rem;left:1rem;z-index:3100;background:rgba(0,0,0,.7);border:2px solid rgba(255,255,255,.25);color:#fff;font-family:'Nunito',sans-serif;font-weight:800;font-size:1rem;padding:.5rem 1.1rem .5rem .8rem;border-radius:50px;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all .25s;backdrop-filter:blur(8px)}
#player-back-btn:hover{background:rgba(0,180,224,.35);border-color:var(--celeste);color:var(--celeste3);transform:translateX(-3px)}
#player-back-btn .back-arrow{font-size:1.3rem;line-height:1}
#player-iframe-wrap{width:100%;aspect-ratio:16/9;flex-shrink:0;position:relative}
#player-iframe-wrap iframe{width:100%;height:100%;border:none;display:block}

/* SEZIONE VOTI E COMMENTI */
#player-bottom{background:var(--dark2);padding:1.5rem 2rem 3rem;flex:1}
.player-film-title{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:1px;margin-bottom:1.2rem;color:var(--bianco)}
.rating-section{background:var(--dark3);border-radius:12px;padding:1.2rem;margin-bottom:1.5rem;border:1px solid rgba(0,180,224,.1)}
.rating-section h4{font-size:.9rem;font-weight:700;color:var(--celeste3);margin-bottom:.8rem;text-transform:uppercase;letter-spacing:.5px}
.stars-display{display:flex;gap:.2rem;margin-bottom:.5rem}
.star{font-size:2rem;cursor:pointer;transition:transform .15s;filter:grayscale(1);opacity:.4}
.star.active,.star.hover{filter:none;opacity:1;transform:scale(1.1)}
.rating-avg{font-size:.85rem;color:var(--text-muted);margin-top:.4rem}
.comments-section{background:var(--dark3);border-radius:12px;padding:1.2rem;border:1px solid rgba(0,180,224,.1)}
.comments-section h4{font-size:.9rem;font-weight:700;color:var(--celeste3);margin-bottom:1rem;text-transform:uppercase;letter-spacing:.5px}
.comment-form{display:flex;gap:.6rem;margin-bottom:1.2rem;align-items:flex-start}
.comment-avatar{font-size:1.8rem;flex-shrink:0;margin-top:.2rem}
.comment-input{flex:1;background:var(--dark2);border:1px solid rgba(255,255,255,.1);color:var(--bianco);padding:.7rem;border-radius:8px;font-family:'Nunito',sans-serif;font-size:.88rem;resize:none;min-height:70px;transition:border-color .2s}
.comment-input:focus{outline:none;border-color:var(--celeste)}
.comment-send{background:linear-gradient(135deg,var(--celeste2),var(--celeste));border:none;color:#fff;font-family:'Nunito',sans-serif;font-weight:700;font-size:.85rem;padding:.6rem 1.2rem;border-radius:8px;cursor:pointer;transition:all .2s;align-self:flex-end}
.comment-send:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,180,224,.4)}
.comment-list{display:flex;flex-direction:column;gap:.8rem;max-height:400px;overflow-y:auto}
.comment-item{display:flex;gap:.8rem;align-items:flex-start;padding:.8rem;background:var(--dark2);border-radius:8px;border:1px solid rgba(255,255,255,.04)}
.comment-body{flex:1}
.comment-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem;flex-wrap:wrap}
.comment-user{font-weight:700;font-size:.85rem;color:var(--celeste3)}
.comment-stars{font-size:.75rem;color:var(--gold)}
.comment-date{font-size:.72rem;color:#555;margin-left:auto}
.comment-text{font-size:.85rem;color:#ccc;line-height:1.5}
.comment-delete{background:none;border:none;color:#555;cursor:pointer;font-size:.8rem;padding:.1rem .3rem;border-radius:4px;transition:color .2s}
.comment-delete:hover{color:var(--rosso)}
.no-comments{text-align:center;color:#555;font-size:.85rem;padding:1.5rem}

/* ─── ADMIN FOLDER INTERFACE ─── */
.admin-folder{border:1px solid rgba(0,180,224,.15);border-radius:12px;overflow:hidden;margin-bottom:.7rem;background:rgba(6,22,40,.5);transition:border-color .2s}
.admin-folder:hover{border-color:rgba(0,180,224,.3)}
.admin-folder-header{display:flex;align-items:center;gap:.8rem;padding:.85rem 1.1rem;cursor:pointer;background:rgba(0,180,224,.05);transition:background .2s;user-select:none}
.admin-folder-header:hover{background:rgba(0,180,224,.1)}
.admin-folder-icon{font-size:1.2rem;flex-shrink:0}
.admin-folder-name{flex:1;font-family:'Bebas Neue',sans-serif;font-size:1.1rem;letter-spacing:1px;color:#a8cfe4}
.admin-folder-count{background:rgba(0,180,224,.2);color:#7dd3fc;font-size:.72rem;font-weight:800;padding:.2rem .55rem;border-radius:10px;letter-spacing:.02em}
.admin-folder-arrow{color:#445;font-size:.75rem;transition:transform .25s;flex-shrink:0}
.admin-folder.open .admin-folder-arrow{transform:rotate(90deg);color:#00b4e0}
.admin-folder-body{display:none;border-top:1px solid rgba(0,180,224,.08)}
.admin-folder.open .admin-folder-body{display:block}
.admin-folder-items{padding:.5rem}

/* ─── FILM GENRE SECTIONS ─── */
.film-genre-tabs{display:flex;gap:.4rem;flex-wrap:wrap;padding:1rem 2.5rem .5rem;border-bottom:1px solid rgba(0,180,224,.08)}
.film-genre-tab{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);color:#889;border-radius:20px;padding:.35rem 1rem;font-size:.82rem;font-weight:700;cursor:pointer;transition:all .2s;font-family:'Nunito',sans-serif}
.film-genre-tab:hover{background:rgba(0,180,224,.1);border-color:rgba(0,180,224,.3);color:#7dd3fc}
.film-genre-tab.active{background:rgba(255,0,64,.18);border-color:rgba(255,0,64,.5);color:#ff6b8a;box-shadow:0 0 10px rgba(255,0,64,.3)}
.film-genre-section{margin-bottom:2rem}
.film-genre-section .section-header{padding:0 0 .8rem}
.film-genre-hidden{display:none}

/* ─── COMMENTI NEL PLAYER ─── */
.pm-comments-section{margin-top:2rem;border-top:1px solid rgba(255,255,255,.07);padding-top:1.5rem}
.pm-comments-title{font-size:.8rem;font-weight:800;color:#607080;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.pm-comments-title span{background:rgba(0,180,224,.15);color:#7dd3fc;font-size:.7rem;padding:.15rem .5rem;border-radius:8px}
.pm-comment-form{display:flex;gap:.6rem;align-items:flex-start;margin-bottom:1.2rem;background:rgba(255,255,255,.03);border-radius:10px;padding:.8rem;border:1px solid rgba(255,255,255,.06)}
.pm-comment-form textarea{flex:1;background:rgba(0,0,0,.3);border:1px solid rgba(255,255,255,.1);color:#dde;padding:.6rem .8rem;border-radius:8px;font-family:'Nunito',sans-serif;font-size:.85rem;resize:none;min-height:60px;transition:border-color .2s}
.pm-comment-form textarea:focus{outline:none;border-color:rgba(0,180,224,.5)}
.pm-comment-submit{background:linear-gradient(135deg,#0082b3,#00b4e0);border:none;color:#fff;font-family:'Nunito',sans-serif;font-weight:700;font-size:.82rem;padding:.6rem 1.1rem;border-radius:8px;cursor:pointer;transition:all .2s;align-self:flex-end;white-space:nowrap}
.pm-comment-submit:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(0,180,224,.4)}
.pm-comment-login-note{font-size:.8rem;color:#445;padding:.7rem;background:rgba(255,255,255,.03);border-radius:8px;border:1px dashed rgba(255,255,255,.08);text-align:center}
.pm-comment-login-note a{color:#7dd3fc;cursor:pointer;text-decoration:underline}
.pm-comment-list{display:flex;flex-direction:column;gap:.6rem;max-height:350px;overflow-y:auto}
.pm-comment-list::-webkit-scrollbar{width:3px}
.pm-comment-list::-webkit-scrollbar-thumb{background:rgba(0,180,224,.3);border-radius:3px}
.pm-comment-item{display:flex;gap:.7rem;align-items:flex-start;padding:.7rem .8rem;background:rgba(255,255,255,.025);border-radius:8px;border:1px solid rgba(255,255,255,.05);transition:border-color .2s}
.pm-comment-item:hover{border-color:rgba(0,180,224,.15)}
.pm-comment-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,#0082b3,#7700ff);display:flex;align-items:center;justify-content:center;font-weight:900;font-size:.85rem;color:#fff;flex-shrink:0}
.pm-comment-body{flex:1;min-width:0}
.pm-comment-header{display:flex;align-items:center;gap:.5rem;margin-bottom:.3rem;flex-wrap:wrap}
.pm-comment-user{font-weight:700;font-size:.82rem;color:#7dd3fc}
.pm-comment-date{font-size:.7rem;color:#445;margin-left:auto}
.pm-comment-text{font-size:.83rem;color:#b8c8d8;line-height:1.55}
.pm-comment-delete{background:none;border:none;color:#445;cursor:pointer;font-size:.75rem;padding:.1rem .3rem;border-radius:4px;transition:color .2s;margin-left:.3rem}
.pm-comment-delete:hover{color:#e74c3c}
.pm-comment-empty{text-align:center;color:#445;font-size:.82rem;padding:1.5rem;border:1px dashed rgba(255,255,255,.06);border-radius:8px}

.search-panel{position:fixed;top:64px;right:0;width:100%;max-width:400px;height:calc(100vh - 64px);background:var(--dark2);border-left:1px solid rgba(0,180,224,.15);transform:translateX(100%);transition:transform .3s ease;z-index:999;padding:2rem;overflow-y:auto}
.search-panel.open{transform:translateX(0)}
.search-panel h3{font-family:'Bebas Neue',sans-serif;font-size:1.8rem;letter-spacing:1px;margin-bottom:1rem;color:var(--celeste3)}
.search-input{width:100%;background:var(--dark3);border:1px solid rgba(255,255,255,.1);color:var(--bianco);padding:.8rem;border-radius:8px;font-family:'Nunito',sans-serif;font-size:.9rem;margin-bottom:1.5rem}
.search-input:focus{outline:none;border-color:var(--celeste)}
.genre-chip{display:inline-block;background:var(--dark3);border:1px solid rgba(255,255,255,.1);color:#888;padding:.4rem .8rem;border-radius:20px;font-size:.8rem;font-weight:600;margin:.3rem;cursor:pointer;transition:all .2s}
.genre-chip:hover,.genre-chip.active{background:var(--celeste);color:#fff;border-color:var(--celeste)}
@media(max-width:768px){
nav{height:auto}
main{padding-top:96px}
.nav-top{flex-wrap:wrap;padding:.4rem .8rem .3rem;height:auto;gap:.3rem;align-content:flex-start;justify-content:flex-start;align-items:center}
.logo{line-height:1;order:1;flex:1}.onirix-logo-wrap .onx-wordmark,.onirix-logo-wrap .onx-gr,.onirix-logo-wrap .onx-gb{font-size:clamp(18px,5vw,26px)!important}.onirix-logo-wrap .onx-portal{width:42px!important;height:42px!important}.onirix-logo-wrap .onx-r1{width:42px!important;height:42px!important}.onirix-logo-wrap .onx-r2{width:33px!important;height:33px!important}.onirix-logo-wrap .onx-r3{width:25px!important;height:25px!important}
.nav-actions{order:2;flex-shrink:0;gap:.4rem}
.nav-links{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:.2rem;gap:.2rem}
.nav-links::-webkit-scrollbar{display:none}
.nav-btn{font-size:.8rem;padding:.3rem .7rem;white-space:nowrap;flex-shrink:0}
.nav-btn:first-child{font-size:.85rem !important;padding:.35rem .9rem !important;}
.btn-login,.btn-admin{font-size:.78rem;padding:.35rem .9rem}
.hero{height:400px;padding:2rem 1.5rem;text-align:center}
.hero h1{font-size:2.5rem}
.section-row{padding:1.5rem 1rem}
.cards-row{gap:.7rem}
.card{width:140px}
.search-panel{max-width:100%}
.content-list-item{grid-template-columns:50px 1fr;gap:.8rem}
.content-list-item>div:nth-child(3),.content-list-item>div:nth-child(4){display:none}
}
.export-box{background:var(--dark3);padding:1.5rem;border-radius:8px;margin-top:1rem;border:1px solid rgba(0,180,224,.15)}
.export-box h4{font-family:'Bebas Neue',sans-serif;font-size:1.2rem;letter-spacing:1px;color:var(--celeste3);margin-bottom:1rem}
.export-code{background:var(--dark);color:var(--celeste3);padding:1rem;border-radius:6px;font-family:monospace;font-size:.75rem;max-height:300px;overflow-y:auto;white-space:pre-wrap;word-break:break-all;border:1px solid rgba(0,180,224,.2);margin-bottom:1rem}
</style>
<style>
@keyframes fadeIn {
  from { opacity: 0; transform: translate(-50%, 10px); }
  to { opacity: 1; transform: translate(-50%, 0); }
}
@keyframes fadeOut {
  from { opacity: 1; transform: translate(-50%, 0); }
  to { opacity: 0; transform: translate(-50%, 10px); }
}

/* EYE TOGGLE PASSWORD */
.pass-wrapper {
  position: relative;
  display: flex;
  align-items: center;
}
.pass-wrapper input {
  width: 100%;
  padding-right: 2.5rem !important;
}
.eye-btn {
  position: absolute;
  right: .6rem;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--text-muted);
  font-size: 1.1rem;
  padding: 0;
  display: flex;
  align-items: center;
  transition: color .2s;
  z-index: 2;
}
.eye-btn:hover {
  color: var(--celeste3);
}

/* GLOBAL LOADER */
#global-loader {
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9999;
  background: rgba(3, 13, 24, 0.95);
  backdrop-filter: blur(8px);
  display: none;
  align-items: center;
  justify-content: center;
}
#global-loader.show {
  display: flex;
}
.loader-content {
  text-align: center;
}
.loader-spinner {
  width: 50px;
  height: 50px;
  border: 4px solid rgba(0, 180, 224, 0.2);
  border-top-color: var(--celeste);
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
  margin: 0 auto 1rem;
}
.loader-text {
  color: var(--celeste3);
  font-size: 1rem;
  font-weight: 600;
  letter-spacing: 0.5px;
}
@keyframes spin {
  to { transform: rotate(360deg); }
}

/* ── IPTV PAGE ── */
.nav-btn-iptv{background:linear-gradient(90deg,#ff0055,#7700ff,#00ffcc)!important;background-size:200% auto!important;-webkit-background-clip:text!important;-webkit-text-fill-color:transparent!important;background-clip:text!important;animation:rgb-logo 2s linear infinite!important;opacity:.85;font-weight:700!important}
.nav-btn-iptv:hover,.nav-btn-iptv.active{opacity:1!important;filter:drop-shadow(0 0 10px rgba(0,255,200,.5))!important}
.iptv-page-grid{padding:1.5rem 2rem;display:flex;flex-direction:column;gap:2rem}
.iptv-group{}
.iptv-group-title{font-family:'Bebas Neue',sans-serif;font-size:1.4rem;letter-spacing:1px;background:linear-gradient(90deg,#ff0055,#7700ff,#00ffcc);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:rgb-logo 3s linear infinite;margin-bottom:.8rem;display:flex;align-items:center;gap:.6rem}
.iptv-count{font-size:.75rem;background:rgba(0,180,224,.2);color:var(--celeste3);padding:.1rem .5rem;border-radius:10px;-webkit-text-fill-color:var(--celeste3);font-family:'Nunito',sans-serif;font-weight:700}
.iptv-channels-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:.7rem}
.iptv-card{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:.7rem .5rem;display:flex;flex-direction:column;align-items:center;gap:.4rem;cursor:pointer;transition:all .2s;text-align:center}
.iptv-card:hover{background:rgba(0,180,224,.08);border-color:rgba(0,180,224,.3);transform:translateY(-2px)}
.iptv-logo{width:52px;height:52px;border-radius:8px;overflow:hidden;background:rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center;font-size:1.5rem;flex-shrink:0}
.iptv-logo img{width:100%;height:100%;object-fit:contain}
.iptv-logo-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:1.5rem}
.iptv-title{font-size:.72rem;font-weight:600;color:#ccc;line-height:1.2;max-width:90px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.iptv-country{font-size:.9rem}
@media(max-width:600px){
  .iptv-channels-row{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}
  .iptv-page-grid{padding:1rem}
}

/* ═══════════════════════════════════════════════════════
   IPTV v3 — Sezioni per paese + Next Channel Button
   ═══════════════════════════════════════════════════════ */

/* ── Sezione collassabile ───────────────────────────── */
.iptv-section {
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.07);
  border-radius: 14px;
  overflow: hidden;
  transition: border-color .2s;
}
.iptv-section:hover {
  border-color: rgba(0,180,224,.2);
}

.iptv-section-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: .9rem 1.3rem;
  cursor: pointer;
  user-select: none;
  transition: background .18s;
}
.iptv-section-header:hover {
  background: rgba(0,180,224,.06);
}

.iptv-section-flag {
  font-size: 2.2rem;
  line-height: 1;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.5));
}

.iptv-section-info {
  flex: 1;
  min-width: 0;
}
.iptv-section-name {
  display: block;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.3rem;
  letter-spacing: .08em;
  background: linear-gradient(90deg,#fff 60%,#64d8f7);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.1;
}
.iptv-section-count {
  display: block;
  font-size: .72rem;
  color: #888;
  margin-top: .1rem;
  font-weight: 600;
}

.iptv-section-arrow {
  font-size: .85rem;
  color: #666;
  transition: transform .25s, color .2s;
  flex-shrink: 0;
}
.iptv-section-arrow.open {
  transform: rotate(180deg);
  color: var(--celeste3);
}

/* ── Body sezione con canali ────────────────────────── */
.iptv-section-body {
  border-top: 1px solid rgba(255,255,255,.05);
  padding: 1rem 1.3rem 1.3rem;
}

/* Override griglia canali dentro sezione */
.iptv-section-body .iptv-channels-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
  gap: .6rem;
}

/* ── Page grid spacing ──────────────────────────────── */
.iptv-page-grid {
  padding: 1.5rem 2rem !important;
  display: flex;
  flex-direction: column;
  gap: 1rem !important;
}

/* ── Tasto Prossimo Canale a scomparsa ──────────────── */
.iptv-next-wrap {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 99999;
  display: flex;
  align-items: center;
  gap: .5rem;
  background: rgba(10,16,30,.88);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(0,180,224,.35);
  border-radius: 40px;
  padding: .55rem 1rem;
  box-shadow: 0 4px 24px rgba(0,0,0,.6), 0 0 16px rgba(0,180,224,.2);
  opacity: 0;
  transform: translateY(12px);
  transition: opacity .35s, transform .35s;
  pointer-events: none;
}
.iptv-next-wrap.visible {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

.iptv-nav-btn {
  background: linear-gradient(135deg, rgba(119,0,255,.25), rgba(0,180,224,.25));
  color: #fff;
  border: 1px solid rgba(0,180,224,.4);
  border-radius: 20px;
  padding: .35rem .9rem;
  font-size: .82rem;
  font-weight: 700;
  font-family: 'Nunito', sans-serif;
  cursor: pointer;
  transition: background .18s, transform .15s;
  white-space: nowrap;
}
.iptv-nav-btn:hover {
  background: linear-gradient(135deg, rgba(119,0,255,.5), rgba(0,180,224,.5));
  transform: scale(1.05);
}
.iptv-nav-next {
  background: linear-gradient(135deg, rgba(0,180,224,.3), rgba(0,255,160,.2));
  border-color: rgba(0,255,160,.4);
}
.iptv-nav-next:hover {
  background: linear-gradient(135deg, rgba(0,180,224,.55), rgba(0,255,160,.45));
}
.iptv-nav-info {
  font-size: .75rem;
  color: #aaa;
  font-weight: 700;
  letter-spacing: .04em;
  padding: 0 .2rem;
  white-space: nowrap;
}


/* ═══════════════════════════════════════════════════════
   TV ITALIA AUTO-AGGIORNABILE — Sezione dedicata
   ═══════════════════════════════════════════════════════ */

.auto-it-block {
  background: linear-gradient(135deg, rgba(0,90,180,.08) 0%, rgba(119,0,255,.06) 100%);
  border: 1px solid rgba(0,150,255,.25);
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 0 30px rgba(0,150,255,.07);
  margin-bottom: .5rem;
}

.auto-it-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.1rem 1.4rem;
  background: linear-gradient(90deg, rgba(0,90,220,.12), rgba(119,0,255,.08));
  border-bottom: 1px solid rgba(0,150,255,.15);
}

.auto-it-flag {
  font-size: 2.4rem;
  filter: drop-shadow(0 2px 8px rgba(0,100,255,.4));
  flex-shrink: 0;
}

.auto-it-info { flex: 1; min-width: 0; }

.auto-it-title {
  display: block;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 1.4rem;
  letter-spacing: .1em;
  background: linear-gradient(90deg, #fff 50%, #64c8ff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  line-height: 1.1;
}

.auto-it-subtitle {
  display: block;
  font-size: .72rem;
  color: #6699cc;
  font-weight: 600;
  margin-top: .15rem;
  letter-spacing: .04em;
}

.auto-it-live-badge {
  background: linear-gradient(135deg, #00cc66, #00aaff);
  color: #fff;
  font-size: .72rem;
  font-weight: 800;
  padding: .3rem .75rem;
  border-radius: 20px;
  letter-spacing: .06em;
  animation: auto-it-pulse 2s ease-in-out infinite;
  flex-shrink: 0;
}
@keyframes auto-it-pulse {
  0%,100% { box-shadow: 0 0 0 0 rgba(0,200,100,.4); }
  50%      { box-shadow: 0 0 0 6px rgba(0,200,100,.0); }
}

.auto-it-subs {
  display: flex;
  flex-direction: column;
}

.auto-it-sub {
  border-top: 1px solid rgba(255,255,255,.05);
}
.auto-it-sub:first-child { border-top: none; }

.auto-it-sub-header {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .8rem 1.4rem;
  cursor: pointer;
  user-select: none;
  transition: background .18s;
}
.auto-it-sub-header:hover {
  background: rgba(0,150,255,.07);
}

.auto-it-sub-icon {
  font-size: 1.6rem;
  flex-shrink: 0;
  filter: drop-shadow(0 1px 4px rgba(0,0,0,.4));
}

.auto-it-sub-info { flex: 1; min-width: 0; }

.auto-it-sub-name {
  display: block;
  font-weight: 700;
  font-size: .95rem;
  color: #dde8ff;
}
.auto-it-sub-desc {
  display: block;
  font-size: .7rem;
  color: #6688aa;
  margin-top: .1rem;
}

.auto-it-src-badge {
  color: #fff;
  font-size: .65rem;
  font-weight: 800;
  padding: .18rem .55rem;
  border-radius: 10px;
  letter-spacing: .05em;
  flex-shrink: 0;
  opacity: .85;
}

.auto-it-count-badge {
  background: rgba(0,180,224,.2);
  color: var(--celeste3, #64d8f7);
  font-size: .75rem;
  font-weight: 800;
  padding: .15rem .55rem;
  border-radius: 12px;
  flex-shrink: 0;
  margin-right: .2rem;
}

.auto-it-sub-body {
  padding: .8rem 1.3rem 1.1rem;
  border-top: 1px solid rgba(0,150,255,.1);
  background: rgba(0,0,0,.12);
}

.auto-it-loading {
  display: flex;
  align-items: center;
  gap: .75rem;
  padding: 1.2rem;
  color: #6699cc;
  font-size: .88rem;
}

.auto-it-spinner {
  width: 20px;
  height: 20px;
  border: 2.5px solid rgba(0,180,224,.2);
  border-top-color: #00b4e0;
  border-radius: 50%;
  animation: spin .8s linear infinite;
  flex-shrink: 0;
}

.auto-it-empty {
  padding: 1rem;
  color: #556677;
  font-size: .85rem;
  text-align: center;
}

@media (max-width: 600px) {
  .auto-it-header { padding: .85rem 1rem; gap: .75rem; }
  .auto-it-flag { font-size: 1.9rem; }
  .auto-it-title { font-size: 1.15rem; }
  .auto-it-sub-header { padding: .7rem .85rem; gap: .6rem; }
  .auto-it-sub-body { padding: .65rem .8rem .9rem; }
}

/* ── Mobile ─────────────────────────────────────────── */
@media (max-width: 600px) {
  .iptv-page-grid { padding: .8rem !important; }
  .iptv-section-header { padding: .75rem 1rem; gap: .75rem; }
  .iptv-section-flag { font-size: 1.8rem; }
  .iptv-section-name { font-size: 1.1rem; }
  .iptv-section-body { padding: .75rem .8rem 1rem; }
  .iptv-section-body .iptv-channels-row { grid-template-columns: repeat(auto-fill, minmax(75px, 1fr)); gap: .5rem; }
  .iptv-next-wrap { bottom: 1rem; right: 1rem; padding: .45rem .7rem; }
  .iptv-nav-btn { padding: .3rem .65rem; font-size: .78rem; }
}

/* Admin hero editor fields */
.admin-field-group{display:flex;flex-direction:column;gap:.4rem}
.admin-label{font-size:.78rem;font-weight:700;color:#607080;text-transform:uppercase;letter-spacing:.05em}
.admin-input{padding:.75rem;border-radius:8px;border:1px solid rgba(0,180,224,.25);background:var(--dark3,#0a2035);color:#fff;font-family:'Nunito',sans-serif;font-size:.88rem;width:100%;box-sizing:border-box;resize:vertical}
.admin-input:focus{outline:none;border-color:rgba(0,180,224,.6);box-shadow:0 0 0 3px rgba(0,180,224,.1)}


/* ═══════════════════════════════════════════
   PERFORMANCE OPTIMIZATIONS — aggiunta pura
   Non sovrascrive nulla, solo migliora
   ═══════════════════════════════════════════ */

/* Elimina 300ms tap delay su mobile */
button, a, [role="button"], .card, .nav-btn, .iptv-card,
.chat-tab, .admin-tab, .auth-tab, .film-genre-tab,
.ep-btn, .genre-chip, .see-all, .iptv-section-header,
.auto-it-sub-header, .admin-folder-header {
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

/* GPU hint per elementi con transform */
.card { will-change: transform; }
.modal-box { will-change: transform; }
.search-panel { will-change: transform; }

/* Scroll ottimizzato */
.cards-row {
  overscroll-behavior-x: contain;
}
.chat-body, .modal-overlay, .comment-list,
.pm-comment-list, .modal-cmt-list {
  overscroll-behavior: contain;
}

/* Previene zoom automatico iOS sugli input (richiede min 16px) */
@media (max-width: 768px) {
  input, textarea, select {
    font-size: 16px !important;
  }
}

/* Scrollbar globale sottile */
* {
  scrollbar-width: thin;
  scrollbar-color: rgba(0,180,224,.25) transparent;
}
*::-webkit-scrollbar { width: 4px; height: 4px; }
*::-webkit-scrollbar-track { background: transparent; }
*::-webkit-scrollbar-thumb {
  background: rgba(0,180,224,.25);
  border-radius: 4px;
}

/* Chat full-width su mobile come drawer dal basso */
@media (max-width: 600px) {
  #chat-window {
    width: 100vw !important;
    max-width: 100vw !important;
    right: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    border-radius: 16px 16px 0 0 !important;
    resize: none !important;
    height: 70vh !important;
    max-height: 70vh !important;
  }
}

/* Card più piccole su schermi molto piccoli */
@media (max-width: 380px) {
  .card { width: 120px; }
  .section-row { padding: 1.2rem .7rem; }
  .hero { height: 320px; }
  .hero h1 { font-size: 2rem; }
}

/* Focus da tastiera visibile */
:focus-visible {
  outline: 2px solid rgba(0,180,224,.7);
  outline-offset: 2px;
}
button:focus:not(:focus-visible),
a:focus:not(:focus-visible) {
  outline: none;
}

/* Risparmio CPU su dispositivi con prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.1ms !important;
  }
}
