/* Shared layout constraints, loaded after page-specific styles. */
html{ -webkit-text-size-adjust:100%;text-size-adjust:100% }
main,section,article,aside,fieldset,.card,.grid>*,.admin-layout>*,.rules-layout>*,.teams-layout>*,.details-grid>*,.grid-extra>*{min-width:0}
input,select,textarea{min-width:0;max-width:100%}
textarea{resize:vertical}
iframe,video{max-width:100%}
.card,.page-intro,.view-intro,.pill,.bm-name{overflow-wrap:anywhere}
.table-wrap{max-width:100%;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
.table th,.table td{overflow-wrap:anywhere}
.table .num{white-space:nowrap}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.slots{grid-template-columns:repeat(3,minmax(0,1fr))}
.team-media,.team-media__name,.slot__media,.slot__text{min-width:0}
.team-media__name,.slot__name{white-space:normal;overflow-wrap:anywhere}
.slot__img,.coin,.bm-icon,.team-media img{flex-shrink:0}
.app-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible;gap:8px}
#admin-main-nav{grid-template-columns:repeat(7,minmax(0,1fr))}
.app-nav .nav-item{min-width:0;padding:10px 4px}
.app-nav .nav-text{white-space:normal;overflow:visible;overflow-wrap:anywhere}
.header-actions-desktop{min-width:0;justify-content:flex-end}
.details-wrap{min-width:0}
.details-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.details-subnav .tab,.sub-nav .tab{min-width:0;white-space:normal}
.bm-row{grid-template-columns:minmax(0,1fr) auto}
.toto-results .table{min-width:0;table-layout:fixed}
.toto-results .table th:first-child{width:46%}
.toto-result-fraction{min-width:0}
.toto-result-fraction strong{overflow-wrap:anywhere}
.toto-results .table th,.toto-results .table td{padding:12px}
.toto-results .table th{white-space:normal}
.toto-results .toto-points{min-width:0}
.toto-results .table tfoot th:first-child{width:auto}
@media(max-width:980px){
  #admin-main-nav{grid-template-columns:repeat(4,minmax(0,1fr))}
  .details-grid,.grid-extra,.rules-layout,.admin-layout,.teams-layout{grid-template-columns:minmax(0,1fr)}
  .header-desktop{flex-wrap:wrap}
  .header-actions-desktop{flex-wrap:wrap;max-width:100%}
}
@media(max-width:600px){
  .container{padding-inline:12px;margin-block:16px}
  .app-header,.app-footer{padding:8px 0}
  .header-mobile{flex-direction:row;justify-content:space-between;flex-wrap:wrap;gap:8px;padding-block:4px}
  .header-mobile .brand{min-width:0;gap:6px;max-width:calc(100% - 54px)}
  .brand--mobile .brand__logo{height:40px;width:auto}
  .brand--mobile .brand__wordmark{height:auto;max-height:25px;width:min(164px,60vw);min-width:0;object-fit:contain}
  .mobile-menu{flex-basis:100%;max-height:65dvh;overflow-y:auto}
  .card{padding:12px}
  .grid-2,.grid-3,.grid-4,.slots,.split{grid-template-columns:minmax(0,1fr)}
  .admin-grid .grid[style*="1fr 1fr"]{grid-template-columns:minmax(0,1fr)!important}
  .form-row{grid-template-columns:minmax(0,1fr)}
  .app-nav{gap:4px;padding:6px}
  .app-nav .nav-icon{width:36px;height:36px}
  .app-nav .nav-text{font-size:10px;line-height:1.3}
  .app-nav .nav-item{min-height:66px}
  .btn{max-width:100%;min-height:44px;padding:10px 12px;white-space:normal}
  input,select,textarea{font-size:16px}
  .table td,.table th{padding:8px 6px;font-size:14px}
  .table .team-media{gap:6px}.team-media img{max-width:36px}
  #tableExtra thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  #tableExtra,#tableExtra tbody{display:block}
  #tableExtra tbody tr{display:grid;grid-template-columns:80px minmax(0,1fr);padding:12px 0;border-bottom:1px solid var(--line)}
  #tableExtra tbody td{display:block;border:0;min-width:0;white-space:normal}
  #tableExtra tbody td:first-child{grid-column:1/-1}
  #tableExtra tbody td:nth-child(2)::before{content:'Numero';display:block;font-size:11px;color:var(--muted)}
  #tableExtra tbody td:nth-child(3)::before{content:'Frazione';display:block;font-size:11px;color:var(--muted)}
  .details-wrap{padding:8px}
  .details-grid{gap:8px}
  .details-subnav .tab{padding:10px 4px;font-size:12px}
  .details-head,.lb-title,.section-title{flex-wrap:wrap;gap:8px}
  .bm-row{padding:10px 6px;gap:8px}
  .bm-points{min-width:64px}
  .view-toolbar label{min-width:0}
  .admin-grid .btn.admin-icon-button,.view-dialog .btn.admin-icon-button{width:44px;min-width:44px;height:44px}
  .toto-toolbar{align-items:stretch}
  .toto-toolbar .actions{display:flex;flex-wrap:wrap}
  .toto-toolbar .actions .btn{flex:1 1 120px}
  .toto-board{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .toto-board--readonly{grid-template-columns:minmax(0,1fr)}
  .toto-slot-actions button{width:36px;min-height:44px}
  .toto-results{overflow:visible;padding:12px}
  .toto-results .table-wrap{overflow:visible}
  .toto-results .table{display:block;width:100%;background:transparent}
  .toto-results .table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .toto-results .table tbody,.toto-results .table tfoot{display:block}
  .toto-results .table .toto-result-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 8px;padding:12px;margin-bottom:10px;border:1px solid #2a3344;border-radius:12px;background:var(--surface)}
  .toto-results .table .toto-result-row td{display:block;padding:0;border:0;text-align:left;white-space:normal;min-width:0}
  .toto-results .toto-fraction-cell{grid-column:1/-1}
  .toto-results [data-label]::before{content:attr(data-label);display:block;margin-bottom:5px;font-size:11px;color:var(--muted);font-weight:400}
  .toto-results .toto-points{justify-content:flex-start;font-size:15px}
  .toto-results .toto-result-fraction{gap:10px}
  .toto-results .toto-result-fraction img{width:32px;height:40px}
  .toto-results .table .toto-bonus-row,.toto-results .table tfoot tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:12px 0}
  .toto-results .table .toto-bonus-row td,.toto-results .table tfoot th{display:block;width:auto;padding:0;border:0;white-space:normal}
  .toto-results .toto-total{align-self:flex-start}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}
