/* Compact registration workflow. */
#module-registration .registration-shell{padding-top:10px!important}
#module-registration .registration-head{padding:10px 16px 8px!important;align-items:center!important;min-height:58px}
#module-registration .registration-clean-title{font-size:30px;line-height:1;font-weight:950;letter-spacing:-.8px}
#module-registration #registrationStatus{display:none!important}
#module-registration .participant-source-strip{display:none!important}
.registration-clean-actions{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;position:relative}
.registration-tools-wrap{position:relative}
.registration-tools-toggle{min-width:48px;font-size:18px;line-height:1;padding:8px 12px!important}
.registration-tools-menu{position:absolute;left:0;right:auto;top:calc(100% + 6px);z-index:80;min-width:250px;padding:6px;background:#fff;border:1px solid #d7d7d2;box-shadow:0 14px 38px rgba(0,0,0,.16);display:none}
.registration-tools-menu:not(.open){display:none!important;visibility:hidden!important;pointer-events:none!important}
.registration-tools-menu.open{display:grid;visibility:visible;pointer-events:auto}
.registration-tools-menu button{border:0;background:#fff;text-align:left;padding:10px 11px;font-size:10px;font-weight:900;cursor:pointer;white-space:nowrap}
.registration-tools-menu button:hover{background:#f2f2ef}

.settings-participant-source{margin-top:12px}
.settings-participant-source-row{display:grid;grid-template-columns:220px minmax(320px,1fr) auto;gap:10px;align-items:center}
.settings-participant-source-row label{font-size:10px;font-weight:900;letter-spacing:.06em;color:var(--red)}
.settings-participant-source-row input{height:38px;border:1px solid #c9c9c4;background:#fff;padding:0 10px;font-size:11px;min-width:0}

#module-race.race-registration-gated .race-module-head,
#module-race.race-registration-gated #racePlanPreview,
#module-race.race-registration-gated #qualificationTabs,
#module-race.race-registration-gated #qualificationContent{
  opacity:.28!important;
  filter:grayscale(1);
  pointer-events:none!important;
  user-select:none;
}
.registration-race-gate{margin:10px 0 14px;padding:18px;border:1px solid #d6d6d1;background:#fff;display:flex;align-items:center;justify-content:center;gap:14px;position:relative;z-index:4}
.registration-race-gate span{font-size:15px;font-weight:900}

@media(max-width:900px){
  /* Never let a wide table/header turn the whole iPhone page into a horizontal canvas. */
  html,body{width:100%!important;max-width:100%!important;overflow-x:hidden!important}
  #app,.module-page{width:100%!important;max-width:100vw!important;min-width:0!important}

  /* The top navigation itself may scroll sideways, but the page must not. */
  .module-nav{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    width:100%!important;
    max-width:100vw!important;
    min-width:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
  }
  .module-nav::-webkit-scrollbar{display:none}

  /* Keep the app header inside the viewport. Actions can scroll inside their own row. */
  .v2-topbar{
    width:100%!important;
    max-width:100vw!important;
    min-width:0!important;
    overflow:hidden!important;
  }
  .v2-topbar .competition-title{display:none!important}
  .v2-topbar .top-actions{
    flex:1 1 auto!important;
    min-width:0!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
  }
  .v2-topbar .top-actions::-webkit-scrollbar{display:none}
  .v2-topbar .top-actions button[onclick*="window.print"]{display:none!important}

  /* Registration is a fixed mobile workspace: only the participant list scrolls. */
  html:has(#module-registration.active),
  body:has(#module-registration.active){height:100%;height:100dvh;overflow-y:hidden!important;overscroll-behavior:none}

  body:has(#module-registration.active) .v2-topbar{
    height:58px!important;
    min-height:58px!important;
    padding:6px 10px!important;
    gap:8px!important;
    position:relative!important;
    top:auto!important;
    flex-wrap:nowrap!important;
  }
  body:has(#module-registration.active) .v2-topbar .brand-logo{flex:0 0 auto!important;min-width:0!important}
  body:has(#module-registration.active) .v2-topbar .brand-logo img{width:118px!important;max-width:118px!important;height:auto!important}
  body:has(#module-registration.active) .v2-topbar .top-actions{
    margin-left:0!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:5px!important;
  }
  body:has(#module-registration.active) .v2-topbar .top-actions .btn{
    flex:0 0 auto!important;
    min-height:38px!important;
    padding:7px 10px!important;
    border-radius:6px!important;
    font-size:10px!important;
  }

  body:has(#module-registration.active) #app{
    height:calc(100dvh - 58px)!important;
    min-height:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  body:has(#module-registration.active) .module-nav{
    flex:0 0 48px!important;
    min-height:48px!important;
    height:48px!important;
    display:flex!important;
    flex-wrap:nowrap!important;
    align-items:stretch!important;
  }
  body:has(#module-registration.active) .module-nav .module-tab{
    flex:0 0 auto!important;
    min-height:48px!important;
    padding:0 12px!important;
    font-size:10px!important;
    white-space:nowrap!important;
  }

  body:has(#module-registration.active) #module-registration.active{
    flex:1 1 auto!important;
    min-height:0!important;
    height:auto!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  #module-registration .registration-shell{
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    min-height:0!important;
    padding:0!important;
    display:flex!important;
    flex-direction:column!important;
    overflow:hidden!important;
  }
  #module-registration .registration-head{
    flex:0 0 auto!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:0!important;
    padding:10px 12px 9px!important;
    margin:0!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:9px!important;
    overflow:visible!important;
  }
  #module-registration .registration-clean-title{
    font-size:27px!important;
    line-height:.95!important;
    letter-spacing:-.7px!important;
  }
  .registration-clean-actions{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    display:grid!important;
    grid-template-columns:44px minmax(105px,.9fr) minmax(150px,1.35fr)!important;
    align-items:stretch!important;
    justify-content:stretch!important;
    gap:6px!important;
    flex-wrap:nowrap!important;
  }
  .registration-clean-actions>.btn{
    min-width:0!important;
    width:100%!important;
    min-height:40px!important;
    padding:7px 7px!important;
    border-radius:6px!important;
    font-size:9.5px!important;
    line-height:1.05!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  .registration-tools-wrap{position:relative!important;width:44px!important;min-width:44px!important}
  .registration-tools-toggle{width:44px!important;min-width:44px!important;height:40px!important;padding:5px!important;font-size:17px!important}
  .registration-tools-menu{
    right:auto!important;
    left:0!important;
    top:calc(100% + 5px)!important;
    width:max-content!important;
    min-width:210px!important;
    max-width:calc(100vw - 24px)!important;
    padding:5px!important;
    border-radius:8px!important;
    box-shadow:0 10px 28px rgba(0,0,0,.2)!important;
    overflow:hidden!important;
    z-index:250!important;
  }
  .registration-tools-menu button{padding:10px!important;font-size:10px!important}

  #module-registration #participantTable{
    flex:1 1 auto!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:0!important;
    overflow:hidden!important;
    position:relative!important;
    contain:layout paint;
  }
  #module-registration #participantTable>.registration-table-v2{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    height:100%!important;
    max-height:100%!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    padding-bottom:48px;
  }
  #module-registration #participantTable>.registration-table-v2 table{margin:0!important}
  #module-registration #participantTable>.registration-table-v2 thead th{top:0!important;z-index:6!important}

  .settings-participant-source-row{grid-template-columns:1fr}
}
