/*
 * Veleno Mobile Hardening
 * Correzioni finali caricate dopo tutti i temi.
 * Mantiene contenuti e logica, neutralizzando vecchie regole responsive conflittuali.
 */
:root{
  --vm-gutter:clamp(10px,3.5vw,18px);
  --vm-safe-top:env(safe-area-inset-top,0px);
  --vm-safe-right:env(safe-area-inset-right,0px);
  --vm-safe-bottom:env(safe-area-inset-bottom,0px);
  --vm-safe-left:env(safe-area-inset-left,0px);
  --vm-vh:1vh;
}
html{width:100%;max-width:100%;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%;}
body{width:100%;max-width:100%;overflow-x:hidden;overflow-wrap:anywhere;word-break:normal;}
*,*::before,*::after{box-sizing:border-box;}
img,svg,canvas,video,audio,iframe,embed,object{max-width:100%;height:auto;}
iframe{width:100%;}
input,select,textarea,button{max-width:100%;font:inherit;}
pre{max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch;}
code,kbd,samp{overflow-wrap:anywhere;}
.container,.container-fluid{max-width:100%!important;}
.row{min-width:0;}
.row>[class*="col-"]{min-width:0;}
.flex,.d-flex,[style*="display:flex"],[style*="display: flex"]{min-width:0;}

/* Elementi con dimensioni inline: non possono superare il viewport */
[style*="width:"][style*="px"],[style*="width: "][style*="px"]{max-width:100%!important;}
[style*="min-width:"][style*="px"],[style*="min-width: "][style*="px"]{min-width:0!important;}

/* Tabelle: wrapper automatico aggiunto dal JS e fallback per quelle esistenti */
.vm-table-scroll,.table-responsive{display:block;width:100%;max-width:100%;overflow-x:auto!important;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;overscroll-behavior-inline:contain;}
.vm-table-scroll>table,.table-responsive>table{min-width:max-content;max-width:none;}
.vm-table-scroll::after{content:"Scorri orizzontalmente per vedere tutti i dati";display:none;padding:7px 10px;color:#b9aeb0;font-size:11px;letter-spacing:.03em;text-align:center;background:rgba(0,0,0,.35);}
.vm-table-scroll.vm-overflowing::after{display:block;}
table td,table th{overflow-wrap:normal;word-break:normal;}

/* Barre di azioni e gruppi: possono andare a capo senza uscire */
.btn-toolbar,.button-row,.actions,.action-buttons,.form-actions,.pager,.pagination,.nav-pills,.nav-tabs{max-width:100%;}
.btn-toolbar,.button-row,.actions,.action-buttons,.form-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;}
.btn-toolbar::before,.btn-toolbar::after{display:none;}
.input-group{max-width:100%;}
.input-group .form-control{min-width:0;}

/* Navbar: annulla le vecchie altezze da 142/176px e i layout rigidi */
@media (max-width:767px){
  body{padding-left:var(--vm-safe-left);padding-right:var(--vm-safe-right);}
  .navbar,.navbar-default,.dark .navbar,body.necro-apocalypse .navbar,body.necro-ready .navbar{
    min-height:58px!important;height:auto!important;padding:var(--vm-safe-top) 0 0!important;margin:0 0 14px!important;background-position:center top!important;background-size:cover!important;
  }
  .navbar .container,.navbar .container-fluid{display:block!important;width:100%!important;max-width:100%!important;padding-left:var(--vm-gutter)!important;padding-right:var(--vm-gutter)!important;}
  .navbar-header,body.necro-apocalypse .navbar-header,.navbar .navbar-header{
    position:relative!important;inset:auto!important;float:none!important;display:flex!important;align-items:center!important;justify-content:space-between!important;
    width:100%!important;min-width:0!important;max-width:none!important;height:58px!important;min-height:58px!important;padding:0!important;margin:0!important;overflow:visible!important;background:rgba(0,0,0,.42)!important;
  }
  .navbar-brand,.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{
    float:none!important;display:flex!important;align-items:center!important;min-width:0!important;max-width:calc(100% - 62px)!important;height:58px!important;min-height:58px!important;margin:0!important;padding:8px 6px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;font-size:clamp(15px,4.8vw,20px)!important;
  }
  .navbar-brand img{max-height:42px!important;width:auto!important;object-fit:contain;}
  .navbar-toggle{position:relative!important;float:none!important;flex:0 0 46px!important;display:block!important;width:46px!important;min-width:46px!important;height:44px!important;min-height:44px!important;margin:7px 0!important;padding:10px!important;z-index:10;}
  .navbar-collapse,.navbar-collapse.collapse,body.necro-apocalypse .navbar-collapse{
    position:static!important;display:none!important;float:none!important;width:100%!important;max-width:100%!important;height:auto!important;max-height:calc((var(--vm-vh,1vh) * 100) - 72px)!important;
    padding:8px 0 calc(12px + var(--vm-safe-bottom))!important;margin:0!important;overflow-x:hidden!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important;border:0!important;
  }
  .navbar-collapse.in,.navbar-collapse.collapsing{display:block!important;}
  .navbar-nav,.veleno-primary-menu,.veleno-auth-menu{float:none!important;display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important;}
  .navbar-nav>li{float:none!important;display:block!important;width:100%!important;max-width:100%!important;margin:0!important;}
  .navbar-nav>li>a,.navbar-nav>li>.menu-bg-btn{display:flex!important;align-items:center!important;width:100%!important;max-width:100%!important;min-height:48px!important;height:auto!important;margin:3px 0!important;padding:11px 13px!important;white-space:normal!important;line-height:1.25!important;overflow-wrap:anywhere!important;}
  .navbar-nav .menu-label{min-width:0;overflow-wrap:anywhere;}
  .navbar-nav .caret{margin-left:auto;flex:0 0 auto;}
  .navbar-nav .open .dropdown-menu,.navbar-nav .dropdown-menu,.dropdown-menu{
    position:static!important;inset:auto!important;float:none!important;width:100%!important;min-width:0!important;max-width:100%!important;margin:4px 0 8px!important;padding:5px!important;overflow:visible!important;transform:none!important;
  }
  .dropdown-menu>li>a{display:flex!important;align-items:center!important;min-height:44px!important;max-width:100%!important;padding:10px 12px!important;white-space:normal!important;overflow-wrap:anywhere!important;}
  .dropdown-submenu>.dropdown-menu,.veleno-nested-submenu>.dropdown-menu{position:static!important;margin-left:10px!important;width:calc(100% - 10px)!important;}

  /* Spaziature globali, senza margini negativi fuori schermo */
  main,#main,.main,.content,#content,.page-content,.container,.container-fluid{max-width:100%!important;}
  .container,.container-fluid{padding-left:var(--vm-gutter)!important;padding-right:var(--vm-gutter)!important;}
  .row{margin-left:-6px!important;margin-right:-6px!important;}
  .row>[class*="col-"]{float:none!important;width:100%!important;max-width:100%!important;padding-left:6px!important;padding-right:6px!important;}

  /* Hero, decorazioni e sfondi non devono creare overflow */
  [class*="hero"],[class*="stage"],[class*="poster"],[class*="page"],[class*="shell"]{max-width:100%!important;}
  .necro-rail-left,.necro-rail-right,.necro-jump,.necro-xjs-skin::before,.necro-xjs-skin::after,
  .necro-hero-prop,.necro-apocalypse-hero::before,.necro-apocalypse-hero::after{display:none!important;}
  .necro-apocalypse-hero,.veleno-cinema-poster,[class*="hero"]{min-height:0!important;height:auto!important;padding-left:14px!important;padding-right:14px!important;background-attachment:scroll!important;}
  .necro-hero-title{position:relative!important;inset:auto!important;width:auto!important;max-width:100%!important;margin:24px auto!important;font-size:clamp(30px,11vw,48px)!important;line-height:.95!important;overflow-wrap:anywhere;}

  /* Griglie definite nelle singole pagine */
  [style*="grid-template-columns"],.necro-apocalypse-tiles,.vd-donate-hero,.vd-support-box,.avatar-chat-layout,.avatarchat-layout{
    grid-template-columns:minmax(0,1fr)!important;
  }
  [class*="grid"],[class*="tiles"],[class*="cards"]{max-width:100%;}

  /* Form e controlli */
  .form-inline,.form-horizontal .form-group{display:block!important;}
  .form-inline .form-control,.form-inline .form-group,.form-inline label{display:block!important;width:100%!important;max-width:100%!important;margin:0 0 9px!important;}
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]),select,textarea{width:100%;min-width:0;}
  .input-group input{width:1%!important;min-width:0!important;}
  .input-group-btn input,.input-group-btn button{width:auto!important;}
  .modal{padding:0!important;}
  .modal-dialog{width:auto!important;max-width:calc(100vw - 16px)!important;margin:8px!important;}
  .modal-content{max-height:calc((var(--vm-vh,1vh) * 100) - 16px)!important;overflow:hidden;}
  .modal-body{max-height:calc((var(--vm-vh,1vh) * 100) - 140px)!important;overflow:auto!important;-webkit-overflow-scrolling:touch;}

  /* Testi e pulsanti */
  h1,h2,h3,h4,h5,h6,.panel-title,.card-title{max-width:100%;overflow-wrap:anywhere;word-break:normal;}
  .btn:not(.btn-xs),button:not(.navbar-toggle){white-space:normal;overflow-wrap:anywhere;}
  .btn-group:not(.btn-group-xs){width:100%;}
  .btn-group:not(.btn-group-xs)>.btn{min-width:0;}

  /* Chat, liste e pannelli con altezza fissa */
  .chat-container,.chat-messages,.message-list,[class*="chat-log"],[class*="messages"]{max-width:100%!important;}
  .avatar-chat-layout,.avatarchat-layout,[class*="chat-layout"]{display:block!important;}
  [class*="sidebar"]{width:100%!important;max-width:100%!important;min-width:0!important;}

  /* Footer e contenuti inferiori rispettano la safe area */
  footer,.footer{padding-bottom:calc(14px + var(--vm-safe-bottom))!important;}
}

@media (max-width:480px){
  :root{--vm-gutter:10px;}
  .panel-body,.card-body,.well,.modal-body{padding:13px!important;}
  .panel-heading,.card-header,.modal-header{padding:12px 13px!important;}
  .table>thead>tr>th,.table>tbody>tr>td,.table>tbody>tr>th{padding:9px 8px!important;font-size:13px;}
  .pagination{justify-content:center;}
  .pagination>li>a,.pagination>li>span{min-width:38px;padding:8px 9px;}
}

@media (orientation:landscape) and (max-height:520px) and (max-width:900px){
  .navbar-collapse,.navbar-collapse.collapse{max-height:calc((var(--vm-vh,1vh) * 100) - 60px)!important;}
  .modal-dialog{margin:4px!important;max-width:calc(100vw - 8px)!important;}
  .modal-content{max-height:calc((var(--vm-vh,1vh) * 100) - 8px)!important;}
}
