/*
 * VELENO Premium Responsive Polish
 * Layer non distruttivo: preserva contenuti, logica e identita horror.
 * Desktop, tablet, mobile, touch, accessibilita e reduced motion.
 */
:root{
  --vp-bg:#050505;
  --vp-surface:rgba(12,10,11,.94);
  --vp-surface-soft:rgba(17,14,15,.82);
  --vp-surface-raised:rgba(24,17,19,.96);
  --vp-text:#f3eeee;
  --vp-muted:#b9aaad;
  --vp-dim:#8d7f82;
  --vp-blood:#c3132d;
  --vp-blood-bright:#ff334f;
  --vp-bone:#eadbc0;
  --vp-amber:#d4a45b;
  --vp-line:rgba(234,219,192,.16);
  --vp-line-hot:rgba(255,51,79,.44);
  --vp-shadow-sm:0 8px 24px rgba(0,0,0,.34);
  --vp-shadow-md:0 16px 45px rgba(0,0,0,.48),0 0 24px rgba(195,19,45,.09);
  --vp-shadow-hero:0 28px 80px rgba(0,0,0,.68),0 0 44px rgba(195,19,45,.18);
  --vp-radius-sm:8px;
  --vp-radius:14px;
  --vp-radius-lg:20px;
  --vp-space-1:6px;
  --vp-space-2:10px;
  --vp-space-3:16px;
  --vp-space-4:24px;
  --vp-space-5:32px;
  --vp-space-6:48px;
  --vp-content:1480px;
  --vp-reading:76ch;
  --vp-ease:cubic-bezier(.2,.75,.25,1);
}

html{scroll-behavior:smooth;background:var(--vp-bg);}
body{
  color:var(--vp-text);
  line-height:1.58;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body::after{
  content:"";
  position:fixed;
  inset:0;
  z-index:2147480000;
  pointer-events:none;
  opacity:.025;
  background:repeating-linear-gradient(0deg,rgba(255,255,255,.36) 0,rgba(255,255,255,.36) 1px,transparent 1px,transparent 4px);
}

::selection{background:rgba(195,19,45,.82);color:#fff;}
:focus{outline:none;}
:focus-visible{outline:2px solid var(--vp-blood-bright)!important;outline-offset:3px!important;box-shadow:0 0 0 5px rgba(255,51,79,.15)!important;}

body > .container,body > .container-fluid,main .container,main .container-fluid{
  width:min(100%,var(--vp-content));
  margin-inline:auto;
}
.container,.container-fluid{padding-left:clamp(14px,2.2vw,34px);padding-right:clamp(14px,2.2vw,34px);}
.row{margin-left:clamp(-12px,-1vw,-7px);margin-right:clamp(-12px,-1vw,-7px);}
.row>[class*="col-"]{padding-left:clamp(7px,1vw,12px);padding-right:clamp(7px,1vw,12px);}

h1,h2,h3,h4,h5,h6{color:var(--vp-text);line-height:1.15;text-wrap:balance;margin-top:0;}
h1{font-size:clamp(2rem,4.8vw,4.8rem);letter-spacing:.035em;}
h2{font-size:clamp(1.55rem,3vw,2.8rem);letter-spacing:.025em;}
h3{font-size:clamp(1.2rem,2vw,1.75rem);}
h4{font-size:clamp(1.05rem,1.5vw,1.3rem);}
p,li,td,th,label,input,select,textarea,button{font-size:clamp(14px,.28vw + 13px,16px);}
p{max-width:var(--vp-reading);}
small,.small,.text-muted{color:var(--vp-muted)!important;}
a{color:#f07788;text-underline-offset:3px;transition:color .22s var(--vp-ease),text-shadow .22s var(--vp-ease),opacity .22s var(--vp-ease);}
a:hover,a:focus{color:#ffb0bb;text-decoration:none;text-shadow:0 0 12px rgba(255,51,79,.34);}
hr{border-color:var(--vp-line);margin:var(--vp-space-4) 0;}

/* Superfici e gerarchia */
.panel,.card,.well,.jumbotron,.modal-content,.dropdown-menu,.list-group,.necro-widget,.veleno-sidebar-module{
  border:1px solid var(--vp-line)!important;
  border-radius:var(--vp-radius)!important;
  background:linear-gradient(145deg,var(--vp-surface-raised),var(--vp-surface))!important;
  box-shadow:var(--vp-shadow-md)!important;
  overflow:hidden;
}
.panel,.card,.well,.necro-widget,.veleno-sidebar-module{margin-bottom:clamp(18px,2vw,30px);}
.panel-body,.card-body,.well{padding:clamp(18px,2vw,30px)!important;}
.panel-heading,.card-header,.modal-header{
  position:relative;
  padding:clamp(14px,1.5vw,20px) clamp(18px,2vw,30px)!important;
  color:var(--vp-bone)!important;
  border:0!important;
  border-bottom:1px solid var(--vp-line)!important;
  background:linear-gradient(90deg,rgba(195,19,45,.18),rgba(20,12,14,.92) 38%,rgba(8,8,8,.95))!important;
  letter-spacing:.07em;
  text-transform:uppercase;
  font-weight:800;
}
.panel-heading::before,.card-header::before,.modal-header::before{
  content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--vp-blood-bright);box-shadow:0 0 18px rgba(255,51,79,.7);
}
.panel-footer,.card-footer,.modal-footer{padding:16px clamp(18px,2vw,30px)!important;border-top:1px solid var(--vp-line)!important;background:rgba(0,0,0,.2)!important;}

/* Hero e sezioni importanti */
.jumbotron,.register-hero,.settings-page-hero,.veleno-cinema-poster,[class*="hero"]{
  border-color:var(--vp-line-hot)!important;
  border-radius:var(--vp-radius-lg)!important;
  box-shadow:var(--vp-shadow-hero)!important;
}
.veleno-cinema-stage{margin:0 auto clamp(20px,3vw,42px);}
.veleno-cinema-poster{isolation:isolate;}
.veleno-cinema-title{font-size:clamp(1.8rem,4vw,4.6rem)!important;line-height:1!important;text-shadow:0 4px 18px #000,0 0 22px rgba(255,51,79,.26)!important;}
.veleno-cinema-trailer{font-size:clamp(.95rem,1.5vw,1.2rem)!important;color:var(--vp-bone)!important;max-width:58ch;}
.veleno-cinema-kicker,.veleno-cinema-tags{letter-spacing:.18em!important;}

/* Navbar: leggibile, fluida e touch friendly */
.navbar{margin-bottom:clamp(18px,2.5vw,36px)!important;border-radius:0!important;}
.navbar .container,.navbar .container-fluid{width:min(100%,var(--vp-content));}
.navbar-brand{height:auto!important;min-height:54px;display:flex!important;align-items:center;gap:10px;padding:12px 15px!important;font-weight:900;letter-spacing:.08em;}
.navbar-nav>li>a,.menu-bg-btn{transition:transform .24s var(--vp-ease),box-shadow .24s var(--vp-ease),border-color .24s var(--vp-ease),filter .24s var(--vp-ease)!important;}
.navbar-nav>li>a:hover,.navbar-nav>li>a:focus,.menu-bg-btn:hover,.menu-bg-btn:focus{transform:translateY(-2px);border-color:rgba(255,255,255,.24)!important;box-shadow:0 10px 24px rgba(0,0,0,.46),0 0 18px rgba(255,51,79,.18)!important;}
.navbar-toggle{min-width:46px;min-height:44px;border-radius:10px!important;border-color:var(--vp-line-hot)!important;margin-top:8px!important;}
.navbar-toggle .icon-bar{width:22px;height:2px;background:var(--vp-bone)!important;}
.veleno-cinema-menu-row{display:flex;align-items:flex-start;gap:12px;flex-wrap:wrap;}
.veleno-primary-menu{flex:1 1 760px;}
.veleno-auth-menu{flex:0 1 auto;}
.dropdown-menu{padding:8px!important;min-width:min(300px,calc(100vw - 28px));}
.dropdown-menu>li>a{border-radius:8px;padding:11px 13px!important;white-space:normal;}
.dropdown-menu>li>a:hover{background:rgba(195,19,45,.2)!important;}

/* Bottoni e controlli */
.btn,button,input[type="button"],input[type="submit"],input[type="reset"]{
  min-height:42px;
  border-radius:9px!important;
  padding:9px 16px!important;
  font-weight:800;
  letter-spacing:.025em;
  border:1px solid rgba(234,219,192,.22)!important;
  box-shadow:0 7px 18px rgba(0,0,0,.3);
  transition:transform .2s var(--vp-ease),box-shadow .2s var(--vp-ease),background .2s var(--vp-ease),border-color .2s var(--vp-ease)!important;
}
.btn:hover,button:hover,input[type="button"]:hover,input[type="submit"]:hover{transform:translateY(-1px);box-shadow:0 10px 25px rgba(0,0,0,.42),0 0 16px rgba(195,19,45,.16);}
.btn-primary,.btn-danger,input[type="submit"]{background:linear-gradient(180deg,#9e1025,#5c0714)!important;color:#fff!important;border-color:rgba(255,88,108,.58)!important;}
.btn-default,.btn-secondary{background:linear-gradient(180deg,#292326,#131113)!important;color:var(--vp-bone)!important;}
.btn-link{box-shadow:none!important;border-color:transparent!important;}

.form-control,input,select,textarea{
  color:var(--vp-text)!important;
  background:rgba(2,2,2,.72)!important;
  border:1px solid rgba(234,219,192,.2)!important;
  border-radius:9px!important;
  min-height:42px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025),0 4px 14px rgba(0,0,0,.16)!important;
  transition:border-color .2s var(--vp-ease),box-shadow .2s var(--vp-ease),background .2s var(--vp-ease)!important;
}
textarea.form-control,textarea{min-height:120px;resize:vertical;}
.form-control:focus,input:focus,select:focus,textarea:focus{border-color:rgba(255,51,79,.75)!important;background:rgba(8,3,4,.9)!important;box-shadow:0 0 0 3px rgba(255,51,79,.13),inset 0 1px 0 rgba(255,255,255,.03)!important;}
label{color:var(--vp-bone);font-weight:700;margin-bottom:7px;}
.input-group-addon{color:var(--vp-bone)!important;background:#171214!important;border-color:var(--vp-line)!important;}
.checkbox label,.radio label{min-height:32px;padding-top:4px;}

/* Tabelle: meno Bootstrap, piu dashboard */
.table-responsive{border:1px solid var(--vp-line)!important;border-radius:var(--vp-radius);overflow:auto;-webkit-overflow-scrolling:touch;box-shadow:var(--vp-shadow-sm);}
table,.table{width:100%;margin-bottom:0!important;background:rgba(5,5,5,.5);}
.table>thead>tr>th,.table>tbody>tr>th{color:var(--vp-bone)!important;background:rgba(195,19,45,.12)!important;border-bottom:1px solid var(--vp-line-hot)!important;text-transform:uppercase;letter-spacing:.06em;font-size:.82em;}
.table>thead>tr>th,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>td{padding:13px 14px!important;border-top:1px solid rgba(234,219,192,.09)!important;vertical-align:middle!important;}
.table-striped>tbody>tr:nth-of-type(odd){background:rgba(255,255,255,.018)!important;}
.table-hover>tbody>tr{transition:background .18s ease,transform .18s ease;}
.table-hover>tbody>tr:hover{background:rgba(195,19,45,.1)!important;}

/* Liste, badge, alert */
.list-group-item{color:var(--vp-text)!important;background:rgba(8,8,8,.55)!important;border-color:rgba(234,219,192,.1)!important;padding:13px 16px;}
.list-group-item:hover{background:rgba(195,19,45,.09)!important;}
.badge,.label{background:#3a171e!important;color:#ffdce1!important;border:1px solid rgba(255,51,79,.3);padding:5px 8px;border-radius:999px;}
.alert{border-radius:var(--vp-radius)!important;border:1px solid var(--vp-line)!important;background:rgba(18,14,15,.96)!important;color:var(--vp-text)!important;box-shadow:var(--vp-shadow-sm);}
.alert-danger,.alert-warning{border-left:4px solid var(--vp-blood-bright)!important;}
.alert-success,.text-success{color:#a9e6c3!important;}
.progress{height:10px;border-radius:999px;background:#151113;overflow:hidden;box-shadow:inset 0 2px 5px rgba(0,0,0,.5);}
.progress-bar{background:linear-gradient(90deg,#7c0a1d,var(--vp-blood-bright));}

/* Immagini e media */
.thumbnail,img.img-thumbnail{border-radius:12px!important;border:1px solid var(--vp-line)!important;background:#090909!important;padding:4px!important;box-shadow:var(--vp-shadow-sm);}
figure{margin:0 0 var(--vp-space-4);}
iframe,video{max-width:100%;border-radius:12px;border:1px solid var(--vp-line);}

/* Modali */
.modal{padding-right:0!important;}
.modal-dialog{width:min(760px,calc(100vw - 28px));margin:5vh auto;}
.modal-content{max-height:90vh;}
.modal-body{padding:clamp(18px,2.5vw,32px)!important;overflow:auto;}
.close{color:#fff!important;opacity:.8;text-shadow:none;}

/* Sidebar */
.veleno-sidebar-module,.necro-widget{background:linear-gradient(155deg,rgba(21,14,16,.96),rgba(5,5,5,.95))!important;}
.veleno-sidebar-module .card-body,.necro-widget .card-body{padding:clamp(14px,1.5vw,20px)!important;}

/* Piccole animazioni, senza disturbare */
@media (hover:hover) and (pointer:fine){
  .card,.panel,.well,.necro-widget,.veleno-sidebar-module{transition:transform .28s var(--vp-ease),box-shadow .28s var(--vp-ease),border-color .28s var(--vp-ease);}
  .card:hover,.panel:hover,.necro-widget:hover,.veleno-sidebar-module:hover{transform:translateY(-2px);border-color:rgba(255,51,79,.28)!important;box-shadow:0 20px 55px rgba(0,0,0,.54),0 0 28px rgba(195,19,45,.12)!important;}
}

/* Tablet */
@media (max-width:991px){
  :root{--vp-radius:12px;--vp-radius-lg:16px;}
  .container,.container-fluid{width:100%!important;}
  .veleno-cinema-menu-row{display:block;}
  .veleno-primary-menu,.veleno-auth-menu{float:none!important;width:100%;margin:0!important;}
  .navbar-nav>li{float:none;}
  .navbar-nav>li>a{min-height:48px;display:flex!important;align-items:center;gap:8px;}
  .navbar-right{margin-right:0!important;}
  .veleno-cinema-controls{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px!important;}
  .veleno-cinema-controls button{grid-column:1/-1;}
  .sidebar,[class*="sidebar"]{margin-top:24px;}
}

/* Mobile */
@media (max-width:767px){
  body::after{opacity:.015;}
  body{line-height:1.5;}
  .container,.container-fluid{padding-left:14px!important;padding-right:14px!important;}
  .row{margin-left:-7px!important;margin-right:-7px!important;}
  .row>[class*="col-"]{padding-left:7px!important;padding-right:7px!important;}
  h1{font-size:clamp(1.7rem,9vw,2.65rem);}
  h2{font-size:clamp(1.35rem,6.5vw,2rem);}
  .navbar-collapse{padding:10px 0 14px!important;border-top:1px solid var(--vp-line)!important;box-shadow:none!important;max-height:none!important;overflow:visible!important;}
  .navbar-header{padding:0 4px;}
  .navbar-brand{max-width:calc(100% - 66px);white-space:normal;line-height:1.15;font-size:16px;}
  .navbar-nav{margin:6px 0!important;}
  .navbar-nav>li>a,.menu-bg-btn{width:100%;min-height:50px!important;margin:4px 0!important;border-radius:10px!important;transform:none!important;}
  .dropdown-menu{position:static!important;float:none!important;width:100%!important;min-width:0!important;margin:6px 0 10px!important;box-shadow:inset 0 0 0 1px var(--vp-line)!important;background:rgba(7,4,5,.98)!important;}
  #login-form{padding:14px!important;}
  .veleno-cinema-stage{margin-bottom:16px;}
  .veleno-cinema-poster{border-radius:14px!important;}
  .veleno-cinema-copy{padding:18px 14px!important;}
  .veleno-cinema-titleline{align-items:flex-start!important;}
  .veleno-cinema-real-skull{width:44px!important;flex:0 0 44px;}
  .veleno-cinema-controls{grid-template-columns:1fr!important;}
  .veleno-cinema-controls label,.veleno-cinema-controls select,.veleno-cinema-controls button{width:100%!important;}
  .veleno-cinema-tags{display:flex;flex-wrap:wrap;gap:6px;}
  .panel-body,.card-body,.well{padding:17px!important;}
  .panel-heading,.card-header,.modal-header{padding:14px 17px!important;letter-spacing:.045em;}
  .btn,button,input[type="button"],input[type="submit"],input[type="reset"]{min-height:46px;}
  .btn-group:not(.btn-group-xs){display:flex;flex-wrap:wrap;gap:7px;}
  .btn-group:not(.btn-group-xs)>.btn{float:none;flex:1 1 auto;border-radius:9px!important;}
  .form-horizontal .control-label{text-align:left!important;padding-top:0!important;}
  .form-group{margin-bottom:18px;}
  .input-group{width:100%;}
  .table-responsive{margin-bottom:20px;}
  .table>thead>tr>th,.table>tbody>tr>th,.table>tbody>tr>td,.table>tfoot>tr>td{padding:11px 10px!important;}
  .modal-dialog{width:calc(100vw - 20px);margin:10px auto;}
  .modal-content{max-height:calc(100vh - 20px);}
  .modal-body{padding:17px!important;}
  .pagination{display:flex;flex-wrap:wrap;gap:5px;}
  .pagination>li>a,.pagination>li>span{float:none;display:block;border-radius:7px!important;margin:0;min-width:40px;text-align:center;}
  pre,code{white-space:pre-wrap;overflow-wrap:anywhere;}
}

/* Telefoni piccoli */
@media (max-width:420px){
  .container,.container-fluid{padding-left:10px!important;padding-right:10px!important;}
  .panel-body,.card-body,.well{padding:14px!important;}
  .panel-heading,.card-header{padding:13px 14px!important;}
  .veleno-cinema-copy{padding:15px 10px!important;}
  .veleno-cinema-real-skull{display:none!important;}
  .btn:not(.btn-xs),button:not(.navbar-toggle){width:100%;}
  .input-group-btn .btn{width:auto;}
  .dropdown-menu{min-width:0!important;}
}

/* Touch: target comodi e nessun hover appiccicoso */
@media (pointer:coarse){
  a,button,.btn,input,select,textarea{touch-action:manipulation;}
  .navbar-nav>li>a,.dropdown-menu>li>a,.list-group-item{min-height:46px;}
}

/* Accessibilita e prestazioni */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
  #veleno-cinema-overlay .vco-fog,#veleno-cinema-overlay .vco-grain,#veleno-cinema-overlay .vco-scanlines{animation:none!important;}
}
@media (prefers-contrast:more){
  :root{--vp-line:rgba(255,255,255,.34);--vp-muted:#ded4d6;}
  .panel,.card,.well,.modal-content,.dropdown-menu{border-width:2px!important;}
}
@media print{
  body::after,#veleno-cinema-overlay,#veleno-horror-selector{display:none!important;}
  .panel,.card,.well{box-shadow:none!important;border:1px solid #777!important;}
}
