/* ==========================================================
   v176.2 — Personal Team modal flow + mobile readability
   Loaded AFTER v172.2-editor.css so these UI corrections win.
   ========================================================== */

@media (max-width: 430px) {
  /* Saved Personal Team: one fitted, non-scrolling sheet above bottom nav. */
  #v176PersonalTeamModal {
    padding: 0 0 calc(78px + env(safe-area-inset-bottom)) !important;
    place-items: end stretch !important;
  }
  #v176PersonalTeamModal .v176-team-manager-card {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: calc(100dvh - 86px - env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
    padding: 7px 10px 8px !important;
    border-radius: 18px 18px 0 0 !important;
  }
  #v176PersonalTeamModal .sheet-handle {
    margin: 0 auto 3px !important;
  }
  #v176PersonalTeamModal .modal-head {
    position: static !important;
    padding: 1px 0 5px !important;
    min-height: 43px !important;
  }
  #v176PersonalTeamModal .modal-head strong {
    font-size: 15px !important;
    line-height: 1.05 !important;
  }
  #v176PersonalTeamModal .modal-head small {
    margin-top: 2px !important;
    font-size: 9px !important;
    line-height: 1.15 !important;
  }
  #v176PersonalTeamModal .modal-head button {
    min-width: 38px !important;
    min-height: 38px !important;
    font-size: 24px !important;
  }
  #v176PersonalTeamContent {
    overflow: hidden !important;
  }
  #v176PersonalTeamModal .v176-team-identity {
    grid-template-columns: minmax(0, 2fr) minmax(92px, .9fr) !important;
    gap: 7px !important;
  }
  #v176PersonalTeamModal .v176-team-identity label {
    gap: 2px !important;
  }
  #v176PersonalTeamModal .v176-team-identity label span {
    font-size: 8px !important;
  }
  #v176PersonalTeamModal .v176-team-identity input {
    height: 33px !important;
    min-height: 33px !important;
    padding: 0 8px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup {
    gap: 2px !important;
    margin-top: 5px !important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup > header {
    min-height: 29px !important;
    padding: 0 1px 2px !important;
    gap: 6px !important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup > header small {
    font-size: 7px !important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup > header strong {
    font-size: 11px !important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup > header > span {
    font-size: 7px !important;
  }
  #v176PersonalTeamModal .v176-team-player-head {
    grid-template-columns: 20px minmax(0, 1fr) 54px 58px !important;
    gap: 3px !important;
    padding: 0 4px !important;
    font-size: 6.5px !important;
  }
  #v176PersonalTeamModal .v176-team-player-row {
    grid-template-columns: 20px minmax(0, 1fr) 54px 58px !important;
    gap: 3px !important;
    padding: 1px 4px !important;
    min-height: 31px !important;
    border-radius: 7px !important;
  }
  #v176PersonalTeamModal .v176-team-player-row > b {
    font-size: 8px !important;
  }
  #v176PersonalTeamModal .v176-team-player-row input,
  #v176PersonalTeamModal .v176-team-player-row select {
    height: 27px !important;
    min-height: 27px !important;
    padding: 0 5px !important;
    border-radius: 6px !important;
    font-size: 10px !important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions {
    position: static !important;
    display: grid !important;
    grid-template-columns: .85fr 1.25fr 1.05fr !important;
    gap: 5px !important;
    margin-top: 5px !important;
    padding: 0 !important;
    background: transparent !important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions .danger {
    grid-column: auto !important;
    order: initial !important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions button {
    min-height: 38px !important;
    padding: 0 5px !important;
    font-size: 9px !important;
  }

  /* Unified Library: prioritize legibility over compact density. */
  .v175-library {
    gap: 16px !important;
    padding-bottom: 28px !important;
  }
  .v175-library-head p {
    font-size: 12px !important;
    line-height: 1.35 !important;
  }
  .v175-source-nav {
    gap: 6px !important;
    padding: 6px !important;
    border-radius: 16px !important;
  }
  .v175-source-nav button {
    min-height: 48px !important;
    gap: 7px !important;
    font-size: 14px !important;
  }
  .v175-source-nav button b {
    font-size: 14px !important;
  }
  .v175-source-nav button small {
    min-width: 25px !important;
    height: 25px !important;
    font-size: 10px !important;
  }
  .v175-library-summary {
    gap: 9px !important;
  }
  .v175-library-summary > div {
    padding: 13px 11px !important;
    border-radius: 14px !important;
  }
  .v175-library-summary small {
    font-size: 9px !important;
  }
  .v175-library-summary b {
    font-size: 27px !important;
    margin: 3px 0 !important;
  }
  .v175-library-summary span {
    font-size: 11px !important;
  }
  .v175-library-content {
    gap: 20px !important;
  }
  .v175-library-block {
    gap: 10px !important;
  }
  .v175-section-head {
    padding: 0 4px !important;
  }
  .v175-section-head small {
    font-size: 9px !important;
  }
  .v175-section-head strong {
    font-size: 20px !important;
    line-height: 1.1 !important;
  }
  .v175-section-head > span {
    font-size: 10px !important;
  }
  .v175-compact-list {
    gap: 9px !important;
  }
  .v175-compact-game {
    border-radius: 14px !important;
  }
  .v175-compact-open {
    gap: 10px !important;
    padding: 13px 12px !important;
  }
  .v175-compact-source {
    font-size: 9px !important;
    padding: 4px 7px !important;
  }
  .v175-compact-open > div strong {
    font-size: 15px !important;
  }
  .v175-compact-open > div small {
    font-size: 11px !important;
  }
  .v175-compact-open > b {
    font-size: 16px !important;
  }
  .v175-compact-open > em {
    font-size: 18px !important;
  }
  .v175-pin {
    font-size: 10px !important;
  }
  .v176-saved-team-subhead,
  .v176-team-season-subhead {
    padding: 2px 4px !important;
  }
  .v176-saved-team-subhead span,
  .v176-team-season-subhead span {
    font-size: 9px !important;
  }
  .v176-saved-team-subhead small {
    font-size: 10px !important;
  }
  .v176-saved-team-grid,
  .v175-team-season-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }
  .v176-saved-team-card,
  .v175-team-season-grid article {
    grid-template-columns: 48px minmax(0, 1fr) auto !important;
    gap: 11px !important;
    padding: 12px !important;
    border-radius: 14px !important;
  }
  .v175-team-mark {
    width: 46px !important;
    height: 46px !important;
    border-radius: 12px !important;
  }
  .v175-team-mark.personal {
    font-size: 21px !important;
  }
  .v176-saved-team-card small,
  .v175-team-season-grid article small {
    font-size: 9px !important;
  }
  .v176-saved-team-card strong,
  .v175-team-season-grid article strong {
    font-size: 15px !important;
  }
  .v176-saved-team-card em,
  .v175-team-season-grid article em {
    font-size: 11px !important;
    line-height: 1.3 !important;
  }
  .v176-saved-team-card button,
  .v175-team-season-grid article button {
    min-height: 42px !important;
    padding: 0 12px !important;
    font-size: 11px !important;
  }
  .v175-library-search {
    gap: 7px !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
  }
  .v175-library-search input {
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 12px !important;
    font-size: 16px !important;
    border-radius: 12px !important;
  }
  .v175-library-search button {
    min-height: 48px !important;
    padding: 0 12px !important;
    font-size: 11px !important;
    border-radius: 12px !important;
  }
  .v175-status-filters {
    gap: 7px !important;
    overflow-x: auto !important;
    padding-bottom: 2px !important;
  }
  .v175-status-filters button {
    flex: 0 0 auto !important;
    min-height: 42px !important;
    padding: 0 15px !important;
    font-size: 11px !important;
  }
  .v90-library .saved-games-grid {
    gap: 12px !important;
  }
  .v90-game-card-head {
    padding: 12px !important;
  }
  .v90-game-card-head em,
  .v90-game-card-head > b {
    font-size: 11px !important;
  }
  .v90-game-card .saved-status,
  .v90-game-card .saved-current {
    min-height: 27px !important;
    font-size: 10px !important;
  }
  .v90-game-matchup {
    grid-template-columns: minmax(0, 1fr) 88px minmax(0, 1fr) !important;
    padding: 15px 12px 11px !important;
  }
  .v90-game-matchup img {
    width: 42px !important;
    height: 42px !important;
  }
  .v90-game-matchup strong {
    font-size: 18px !important;
  }
  .v90-game-matchup small {
    font-size: 11px !important;
  }
  .v90-game-matchup .saved-score strong {
    font-size: 32px !important;
  }
  .v90-game-matchup .saved-score span {
    font-size: 11px !important;
  }
  .v90-game-details {
    padding: 0 12px 11px !important;
    gap: 10px !important;
  }
  .v90-game-details span,
  .v90-game-rhe span {
    font-size: 11px !important;
  }
  .v90-game-rhe {
    margin: 0 12px 11px !important;
    padding: 10px !important;
  }
  .v90-card-marks {
    padding: 0 12px 11px !important;
    gap: 7px !important;
  }
  .v90-card-marks button {
    min-height: 40px !important;
    padding: 0 11px !important;
    font-size: 11px !important;
  }
  .v90-game-card .saved-game-actions {
    padding: 11px 12px !important;
  }
  .v90-game-card .saved-game-actions button {
    min-height: 46px !important;
    font-size: 12px !important;
  }
  .v175-filter-empty strong,
  .v175-source-empty strong {
    font-size: 17px !important;
  }
  .v175-filter-empty p,
  .v175-source-empty p {
    font-size: 11px !important;
  }
  .v175-source-empty button {
    min-height: 44px !important;
    font-size: 12px !important;
  }
}


/* ==========================================================
   v176.4 — TRUE STANDALONE UTILITY MODALS
   Full app surface above the persistent bottom navigation.
   No underlying page/header or dead gap is exposed.
   ========================================================== */
@media (max-width:760px){
  :root{--v1764-nav-h:78px}

  /* Bottom navigation remains the global command layer. */
  body:not(.home-page) #mobileActionBar{
    z-index:300!important;
    pointer-events:auto!important;
  }

  /* Each utility is its own full modal surface. */
  #lineupManagerModal:not(.hidden),
  #v176PersonalTeamModal:not(.hidden){
    position:fixed!important;
    top:0!important;
    right:0!important;
    bottom:var(--v1764-nav-h,78px)!important;
    left:0!important;
    inset:0 0 var(--v1764-nav-h,78px) 0!important;
    padding:0!important;
    margin:0!important;
    display:block!important;
    overflow:hidden!important;
    background:rgba(0,0,0,.66)!important;
  }
  #lineupManagerModal:not(.hidden){z-index:180!important}
  #v176PersonalTeamModal:not(.hidden){z-index:220!important}

  #lineupManagerModal>.modal-card,
  #v176PersonalTeamModal>.modal-card{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    max-width:none!important;
    height:auto!important;
    max-height:none!important;
    min-height:0!important;
    margin:0!important;
    border-radius:20px 20px 0 0!important;
    overflow:hidden!important;
    box-sizing:border-box!important;
  }
  #lineupManagerModal .sheet-handle,
  #v176PersonalTeamModal .sheet-handle{display:none!important}

  /* Lineup is a complete modal; only its list content may scroll. */
  #lineupManagerModal>.v102-lineup-card{
    display:flex!important;
    flex-direction:column!important;
    padding:10px 12px 8px!important;
  }
  #lineupManagerModal .modal-head{
    position:static!important;
    flex:0 0 auto!important;
    padding:2px 0 7px!important;
    min-height:48px!important;
  }
  #lineupManagerContent{
    flex:1 1 auto!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
    padding-bottom:6px!important;
  }

  /* Saved Personal Team is a second modal stacked above Lineup. */
  #v176PersonalTeamModal>.v176-team-manager-card{
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    padding:7px 9px 7px!important;
  }
  #v176PersonalTeamModal .modal-head{
    position:static!important;
    min-height:42px!important;
    padding:0 0 4px!important;
  }
  #v176PersonalTeamModal .modal-head strong{font-size:14px!important;line-height:1.05!important}
  #v176PersonalTeamModal .modal-head small{font-size:8px!important;line-height:1.1!important;margin-top:1px!important}
  #v176PersonalTeamModal .modal-head button{min-width:36px!important;min-height:36px!important;font-size:23px!important}
  #v176PersonalTeamContent{
    min-height:0!important;
    overflow:hidden!important;
    display:grid!important;
    grid-template-rows:auto minmax(0,1fr) auto!important;
    gap:4px!important;
  }
  #v176PersonalTeamModal .v176-team-identity{
    grid-template-columns:minmax(0,2fr) minmax(86px,.9fr)!important;
    gap:6px!important;
  }
  #v176PersonalTeamModal .v176-team-identity label{gap:1px!important}
  #v176PersonalTeamModal .v176-team-identity label span{font-size:7px!important;line-height:1!important}
  #v176PersonalTeamModal .v176-team-identity input{
    height:30px!important;min-height:30px!important;padding:0 7px!important;
    border-radius:7px!important;font-size:11px!important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup{
    min-height:0!important;
    display:grid!important;
    grid-template-rows:auto auto repeat(9,minmax(0,1fr))!important;
    gap:2px!important;
    margin-top:1px!important;
    overflow:hidden!important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup>header{
    min-height:24px!important;padding:0 1px 1px!important;gap:4px!important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup>header small{font-size:6px!important}
  #v176PersonalTeamModal .v176-team-manager-lineup>header strong{font-size:10px!important}
  #v176PersonalTeamModal .v176-team-manager-lineup>header>span{font-size:6px!important}
  #v176PersonalTeamModal .v176-team-player-head,
  #v176PersonalTeamModal .v176-team-player-row{
    grid-template-columns:18px minmax(0,1fr) 50px 54px!important;
    gap:3px!important;
  }
  #v176PersonalTeamModal .v176-team-player-head{
    padding:0 3px!important;font-size:6px!important;line-height:1!important;
  }
  #v176PersonalTeamModal .v176-team-player-row{
    min-height:0!important;height:auto!important;padding:1px 3px!important;border-radius:6px!important;
  }
  #v176PersonalTeamModal .v176-team-player-row>b{font-size:7px!important}
  #v176PersonalTeamModal .v176-team-player-row input,
  #v176PersonalTeamModal .v176-team-player-row select{
    height:25px!important;min-height:25px!important;padding:0 4px!important;
    border-radius:5px!important;font-size:9px!important;line-height:1!important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions{
    position:static!important;
    display:grid!important;
    grid-template-columns:.8fr 1.25fr 1.05fr!important;
    gap:4px!important;
    margin:0!important;
    padding:3px 0 0!important;
    background:transparent!important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions .danger{
    grid-column:auto!important;order:initial!important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions button{
    height:36px!important;min-height:36px!important;padding:0 4px!important;font-size:8px!important;
  }
}

/* v176.4 stacking for child dialogs launched from utility modals. */
@media (max-width:760px){
  #playerModal:not(.hidden){z-index:240!important}
  #confirmModal:not(.hidden){z-index:260!important}
  #confirmModal.v1721-freeform-confirm:not(.hidden),
  #confirmModal.v1722-freeform-confirm:not(.hidden){z-index:1100!important}
}

/* ==========================================================
   v176.5 — ISOLATED UTILITY MODAL GEOMETRY
   These two surfaces no longer inherit the older v125 bottom-sheet sizing
   contract. The modal itself owns exactly the area above the persistent nav.
   ========================================================== */
@media (max-width:760px){
  :root{--v1765-nav-h:var(--v1764-nav-h,78px)}

  body:not(.home-page) #lineupManagerModal:not(.hidden),
  body:not(.home-page) #v176PersonalTeamModal:not(.hidden){
    position:fixed!important;
    inset:0 0 var(--v1765-nav-h) 0!important;
    width:auto!important;
    height:auto!important;
    padding:0!important;
    margin:0!important;
    display:block!important;
    overflow:hidden!important;
    place-items:initial!important;
    background:rgba(0,0,0,.66)!important;
    box-sizing:border-box!important;
  }
  body:not(.home-page) #lineupManagerModal:not(.hidden){z-index:180!important}
  body:not(.home-page) #v176PersonalTeamModal:not(.hidden){z-index:220!important}

  /* Kill both legacy grabbers. The pseudo grabber was becoming a grid row and
     stretching the Saved Team header into the giant blank area seen on iPhone. */
  #lineupManagerModal>.modal-card::before,
  #v176PersonalTeamModal>.modal-card::before,
  #lineupManagerModal .sheet-handle,
  #v176PersonalTeamModal .sheet-handle{
    content:none!important;
    display:none!important;
  }

  body:not(.home-page) #lineupManagerModal:not(.hidden)>.v102-lineup-card,
  body:not(.home-page) #v176PersonalTeamModal:not(.hidden)>.v176-team-manager-card{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    max-width:none!important;
    height:100%!important;
    min-height:100%!important;
    max-height:100%!important;
    margin:0!important;
    overflow:hidden!important;
    overscroll-behavior:contain!important;
    box-sizing:border-box!important;
    border-radius:20px 20px 0 0!important;
    border-bottom:0!important;
  }

  /* LINEUP: fixed chrome + one intentional scroll region. */
  body:not(.home-page) #lineupManagerModal:not(.hidden)>.v102-lineup-card{
    display:flex!important;
    flex-direction:column!important;
    padding:10px 12px 8px!important;
  }
  #lineupManagerModal .modal-head{
    position:static!important;
    flex:0 0 auto!important;
    min-height:52px!important;
    padding:3px 0 8px!important;
    margin:0!important;
    border-bottom:1px solid var(--ui-line,var(--line))!important;
  }
  #lineupManagerModal .modal-head strong{font-size:16px!important;line-height:1.1!important}
  #lineupManagerModal .modal-head small{font-size:11px!important;line-height:1.25!important;margin-top:3px!important}
  #lineupManagerModal .modal-head button{min-width:42px!important;min-height:42px!important;font-size:25px!important}
  #lineupManagerContent{
    flex:1 1 0!important;
    min-height:0!important;
    overflow-y:auto!important;
    overflow-x:hidden!important;
    padding:0 0 3px!important;
    margin:0!important;
    -webkit-overflow-scrolling:touch!important;
  }
  #lineupManagerModal .v102-side-tabs{margin:8px 0 9px!important;padding:4px!important}
  #lineupManagerModal .v102-side-tabs button{min-height:40px!important;font-size:14px!important}
  #lineupManagerModal .v176-team-template-bar{margin:0 0 9px!important;padding:9px 10px!important;min-height:0!important}
  #lineupManagerModal .v176-team-template-bar small{font-size:8px!important}
  #lineupManagerModal .v176-team-template-bar strong{font-size:12px!important}
  #lineupManagerModal .v176-team-template-bar span{font-size:8px!important;line-height:1.25!important}
  #lineupManagerModal .v176-team-template-bar button{min-height:36px!important;padding:0 9px!important;font-size:9px!important}
  #lineupManagerModal .v102-lineup-head{
    grid-template-columns:26px minmax(0,1fr) 76px!important;
    padding:0 9px 5px!important;
    font-size:9px!important;
  }
  #lineupManagerModal .v102-lineup-row{
    min-height:50px!important;
    grid-template-columns:26px minmax(0,1fr) 76px 12px!important;
    gap:7px!important;
    padding:6px 9px!important;
  }
  #lineupManagerModal .v102-lineup-row>b{font-size:12px!important}
  #lineupManagerModal .v102-lineup-row strong{font-size:13px!important}
  #lineupManagerModal .v102-lineup-row small{font-size:9px!important}
  #lineupManagerModal .v102-lineup-row em{font-size:10px!important}
  #lineupManagerModal .v102-manager-note{margin:8px 2px 2px!important;font-size:9px!important}

  /* SAVED TEAM: fixed 9-row form, no scrolling, no stretched header. */
  body:not(.home-page) #v176PersonalTeamModal:not(.hidden)>.v176-team-manager-card{
    display:grid!important;
    grid-template-rows:max-content minmax(0,1fr)!important;
    align-content:stretch!important;
    padding:8px 10px 8px!important;
  }
  #v176PersonalTeamModal .modal-head{
    position:static!important;
    min-height:50px!important;
    height:auto!important;
    padding:2px 0 7px!important;
    margin:0!important;
    border-bottom:1px solid var(--ui-line,var(--line))!important;
    align-self:start!important;
  }
  #v176PersonalTeamModal .modal-head strong{font-size:16px!important;line-height:1.1!important}
  #v176PersonalTeamModal .modal-head small{font-size:10px!important;line-height:1.2!important;margin-top:3px!important}
  #v176PersonalTeamModal .modal-head button{min-width:42px!important;min-height:42px!important;font-size:25px!important}
  #v176PersonalTeamContent{
    min-height:0!important;
    height:100%!important;
    overflow:hidden!important;
    display:grid!important;
    grid-template-rows:max-content minmax(0,1fr) max-content!important;
    gap:7px!important;
    align-content:stretch!important;
    padding-top:7px!important;
  }
  #v176PersonalTeamModal .v176-team-identity{
    grid-template-columns:minmax(0,2fr) minmax(96px,.9fr)!important;
    gap:8px!important;
  }
  #v176PersonalTeamModal .v176-team-identity label{gap:3px!important}
  #v176PersonalTeamModal .v176-team-identity label span{font-size:9px!important;line-height:1!important}
  #v176PersonalTeamModal .v176-team-identity input{
    height:36px!important;min-height:36px!important;padding:0 9px!important;
    border-radius:8px!important;font-size:14px!important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup{
    min-height:0!important;
    height:100%!important;
    display:grid!important;
    grid-template-rows:max-content max-content repeat(9,minmax(0,1fr))!important;
    gap:3px!important;
    margin:0!important;
    overflow:hidden!important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup>header{
    min-height:30px!important;height:auto!important;padding:0 1px 2px!important;gap:6px!important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup>header small{font-size:8px!important}
  #v176PersonalTeamModal .v176-team-manager-lineup>header strong{font-size:12px!important}
  #v176PersonalTeamModal .v176-team-manager-lineup>header>span{font-size:8px!important}
  #v176PersonalTeamModal .v176-team-player-head,
  #v176PersonalTeamModal .v176-team-player-row{
    grid-template-columns:22px minmax(0,1fr) 58px 64px!important;
    gap:4px!important;
  }
  #v176PersonalTeamModal .v176-team-player-head{
    padding:0 5px!important;font-size:8px!important;line-height:1!important;
  }
  #v176PersonalTeamModal .v176-team-player-row{
    min-height:0!important;height:auto!important;padding:2px 5px!important;border-radius:8px!important;
  }
  #v176PersonalTeamModal .v176-team-player-row>b{font-size:9px!important}
  #v176PersonalTeamModal .v176-team-player-row input,
  #v176PersonalTeamModal .v176-team-player-row select{
    height:31px!important;min-height:31px!important;padding:0 6px!important;
    border-radius:7px!important;font-size:11px!important;line-height:1!important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions{
    position:static!important;
    display:grid!important;
    grid-template-columns:.85fr 1.25fr 1.05fr!important;
    gap:6px!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions .danger{grid-column:auto!important;order:initial!important}
  #v176PersonalTeamModal .v176-team-manager-actions button{
    height:42px!important;min-height:42px!important;padding:0 6px!important;font-size:10px!important;
  }
}

@media (max-width:430px){
  /* Keep the saved-team toolbar horizontal on iPhone; the older v176 rule
     stacked it into two rows and unnecessarily consumed lineup height. */
  #lineupManagerModal .v176-team-template-bar{
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    gap:8px!important;
  }
  #lineupManagerModal .v176-team-template-bar>div:last-child{
    display:flex!important;
    grid-template-columns:none!important;
    gap:5px!important;
    align-items:center!important;
  }
  #lineupManagerModal .v102-manager-note{display:none!important}
}

@media (max-width:760px){
  #lineupManagerContent{
    display:flex!important;
    flex-direction:column!important;
  }
  #lineupManagerModal .v102-side-tabs,
  #lineupManagerModal .v176-team-template-bar,
  #lineupManagerModal .v102-lineup-head{flex:0 0 auto!important}
  #lineupManagerModal .v102-lineup-list{
    flex:1 1 0!important;
    min-height:0!important;
    display:grid!important;
    grid-template-rows:repeat(9,minmax(0,1fr))!important;
  }
  #lineupManagerModal .v102-lineup-row{height:100%!important;min-height:0!important}
}

#v176PersonalTeamModal .v176-team-manager-actions button.primary{
  background:#1677e8!important;
  color:#fff!important;
  border-color:#1677e8!important;
}

/* ==========================================================
   v176.6 — HARD FIT + BACKGROUND LOCK FOR TEAM UTILITIES
   Final override: both team utilities are fixed, non-scrolling surfaces.
   Saved Team uses flex chrome so a native-sheet pseudo element can never
   become a grid track and stretch the header again.
   ========================================================== */
@media (max-width:760px){
  html.v1766-utility-locked,
  body.v1766-utility-locked{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.v1766-utility-locked #appShell,
  body.v1766-utility-locked #main{
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }

  #lineupManagerModal:not(.hidden),
  #v176PersonalTeamModal:not(.hidden){
    position:fixed!important;
    inset:0 0 var(--v1765-nav-h,var(--v1764-nav-h,78px)) 0!important;
    width:auto!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    touch-action:none!important;
  }

  /* Never render the native bottom-sheet grabber on these full surfaces. */
  body #lineupManagerModal:not(.hidden)>.modal-card::before,
  body #v176PersonalTeamModal:not(.hidden)>.modal-card::before,
  body #lineupManagerModal:not(.hidden) .sheet-handle,
  body #v176PersonalTeamModal:not(.hidden) .sheet-handle{
    content:none!important;
    display:none!important;
    width:0!important;
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
  }

  #lineupManagerModal:not(.hidden)>.v102-lineup-card,
  #v176PersonalTeamModal:not(.hidden)>.v176-team-manager-card{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    min-height:0!important;
    max-height:none!important;
    margin:0!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    box-sizing:border-box!important;
  }

  /* LINEUP: absolutely no internal scrolling. Nine rows share the remainder. */
  #lineupManagerModal:not(.hidden)>.v102-lineup-card{
    display:flex!important;
    flex-direction:column!important;
    padding:9px 12px 7px!important;
  }
  #lineupManagerModal #lineupManagerContent{
    flex:1 1 0!important;
    min-height:0!important;
    height:auto!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    -webkit-overflow-scrolling:auto!important;
    display:flex!important;
    flex-direction:column!important;
    padding:0!important;
  }
  #lineupManagerModal .modal-head{
    flex:0 0 auto!important;
    min-height:49px!important;
    padding:2px 0 6px!important;
  }
  #lineupManagerModal .v102-side-tabs{
    flex:0 0 auto!important;
    margin:7px 0 7px!important;
    padding:4px!important;
  }
  #lineupManagerModal .v102-side-tabs button{min-height:38px!important}
  #lineupManagerModal .v176-team-template-bar{
    flex:0 0 auto!important;
    margin:0 0 7px!important;
    padding:7px 9px!important;
  }
  #lineupManagerModal .v176-team-template-bar button{
    min-height:33px!important;
    padding:0 8px!important;
  }
  #lineupManagerModal .v102-lineup-head{
    flex:0 0 auto!important;
    padding:0 9px 4px!important;
  }
  #lineupManagerModal .v102-lineup-list{
    flex:1 1 0!important;
    min-height:0!important;
    height:auto!important;
    overflow:hidden!important;
    display:grid!important;
    grid-template-rows:repeat(9,minmax(0,1fr))!important;
    align-content:stretch!important;
  }
  #lineupManagerModal .v102-lineup-row{
    height:100%!important;
    min-height:0!important;
    padding:4px 9px!important;
    gap:7px!important;
  }
  #lineupManagerModal .v102-lineup-row strong{font-size:13px!important;line-height:1.05!important}
  #lineupManagerModal .v102-lineup-row small{font-size:9px!important;line-height:1.05!important}
  #lineupManagerModal .v102-manager-note{display:none!important}

  /* SAVED TEAM: fixed header, fixed actions, fitted nine-row editor. */
  #v176PersonalTeamModal:not(.hidden)>.v176-team-manager-card{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    padding:8px 10px 7px!important;
  }
  #v176PersonalTeamModal .modal-head{
    flex:0 0 auto!important;
    position:static!important;
    width:100%!important;
    height:auto!important;
    min-height:49px!important;
    max-height:49px!important;
    padding:2px 0 6px!important;
    margin:0!important;
    align-self:auto!important;
  }
  #v176PersonalTeamModal .modal-head strong{font-size:16px!important;line-height:1.05!important}
  #v176PersonalTeamModal .modal-head small{font-size:9px!important;line-height:1.15!important;margin-top:2px!important}
  #v176PersonalTeamModal .modal-head button{min-width:40px!important;min-height:40px!important;font-size:24px!important}
  #v176PersonalTeamContent{
    flex:1 1 0!important;
    min-height:0!important;
    height:auto!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
    display:grid!important;
    grid-template-rows:max-content minmax(0,1fr) max-content!important;
    gap:6px!important;
    align-content:stretch!important;
    padding:6px 0 0!important;
  }
  #v176PersonalTeamModal .v176-team-identity{
    grid-template-columns:minmax(0,2fr) minmax(96px,.9fr)!important;
    gap:8px!important;
  }
  #v176PersonalTeamModal .v176-team-identity label{gap:2px!important}
  #v176PersonalTeamModal .v176-team-identity label span{font-size:8px!important;line-height:1!important}
  #v176PersonalTeamModal .v176-team-identity input{
    height:34px!important;
    min-height:34px!important;
    padding:0 9px!important;
    font-size:13px!important;
    border-radius:8px!important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup{
    min-height:0!important;
    height:auto!important;
    margin:0!important;
    overflow:hidden!important;
    display:grid!important;
    grid-template-rows:28px 12px repeat(9,minmax(0,1fr))!important;
    gap:3px!important;
    align-content:stretch!important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup>header{
    min-height:0!important;
    height:28px!important;
    padding:0 1px 2px!important;
    gap:6px!important;
  }
  #v176PersonalTeamModal .v176-team-manager-lineup>header small{font-size:7px!important}
  #v176PersonalTeamModal .v176-team-manager-lineup>header strong{font-size:11px!important;line-height:1.05!important}
  #v176PersonalTeamModal .v176-team-manager-lineup>header>span{font-size:7px!important}
  #v176PersonalTeamModal .v176-team-player-head,
  #v176PersonalTeamModal .v176-team-player-row{
    grid-template-columns:22px minmax(0,1fr) 58px 64px!important;
    gap:4px!important;
  }
  #v176PersonalTeamModal .v176-team-player-head{
    min-height:0!important;
    height:12px!important;
    padding:0 5px!important;
    font-size:7px!important;
    line-height:1!important;
  }
  #v176PersonalTeamModal .v176-team-player-row{
    min-height:0!important;
    height:100%!important;
    padding:2px 5px!important;
    border-radius:8px!important;
  }
  #v176PersonalTeamModal .v176-team-player-row>b{font-size:9px!important}
  #v176PersonalTeamModal .v176-team-player-row input,
  #v176PersonalTeamModal .v176-team-player-row select{
    height:100%!important;
    min-height:28px!important;
    max-height:32px!important;
    padding:0 6px!important;
    border-radius:7px!important;
    font-size:11px!important;
    line-height:1!important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions{
    flex:0 0 auto!important;
    position:static!important;
    display:grid!important;
    grid-template-columns:.85fr 1.3fr 1.1fr!important;
    gap:6px!important;
    margin:0!important;
    padding:0!important;
    background:transparent!important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions .danger{
    grid-column:auto!important;
    order:initial!important;
  }
  #v176PersonalTeamModal .v176-team-manager-actions button{
    height:40px!important;
    min-height:40px!important;
    padding:0 6px!important;
    font-size:10px!important;
  }
}

/* ==========================================================
   v176.7 — Personal New Game: explicit New Team / Saved Team
   Keeps the Matchup step compact enough to remain fitted on iPhone.
   ========================================================== */
#modeModal .v1767-personal-team-slot{
  align-content:end!important;
}
#modeModal .v1767-team-source-toggle{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:3px!important;
  width:100%!important;
  padding:3px!important;
  box-sizing:border-box!important;
  border:1px solid var(--line)!important;
  border-radius:10px!important;
  background:color-mix(in srgb,var(--panel2) 88%,var(--bg))!important;
}
#modeModal .v1767-team-source-toggle button{
  min-width:0!important;
  height:27px!important;
  padding:0 4px!important;
  border:0!important;
  border-radius:7px!important;
  background:transparent!important;
  color:var(--muted)!important;
  font-size:7.5px!important;
  line-height:1!important;
  font-weight:950!important;
  letter-spacing:-.01em!important;
  white-space:nowrap!important;
  box-shadow:none!important;
}
#modeModal .v1767-team-source-toggle button.selected{
  background:var(--accent)!important;
  color:#fff!important;
  box-shadow:0 2px 6px color-mix(in srgb,var(--accent) 24%,transparent)!important;
}
#modeModal .v1767-team-source-toggle button:disabled{
  opacity:.38!important;
}
#modeModal .v174-personal-matchup .v176-saved-team-select{
  height:38px!important;
  min-height:38px!important;
  margin:0!important;
  padding:0 23px 0 7px!important;
  border-radius:9px!important;
  font-size:8px!important;
  font-weight:900!important;
  text-align-last:center!important;
}
#modeModal .v174-personal-matchup .v176-saved-team-select.hidden,
#modeModal .v174-personal-matchup input.hidden{
  display:none!important;
}
#modeModal .v174-personal-matchup input{
  margin:0!important;
}
#modeModal #v174LineupNote{
  margin-top:7px!important;
  line-height:1.25!important;
}
@media(max-width:430px){
  #modeModal .v174-personal-matchup{gap:6px!important}
  #modeModal .v1767-team-source-toggle{gap:2px!important;padding:2px!important;border-radius:9px!important}
  #modeModal .v1767-team-source-toggle button{height:25px!important;font-size:6.8px!important;padding:0 2px!important}
  #modeModal .v174-personal-matchup .v176-saved-team-select{height:34px!important;min-height:34px!important;font-size:7.2px!important;padding-left:5px!important}
  #modeModal .v174-personal-matchup input{height:34px!important}
}
body.dark-mode #modeModal .v1767-team-source-toggle{
  background:#17191c!important;
  border-color:#3a3e45!important;
}
body.dark-mode #modeModal .v1767-team-source-toggle button:not(.selected){
  color:#b8bec7!important;
}

/* v177 — Default Scorebook freeze baseline.
   Intentionally no visual overrides. v176.7 is the approved Default geometry/UI.
   Alternate themes must inherit this geometry and may change identity styling only. */

/* ==========================================================
   v177.1 — SCORECARD BOTTOM FIT + TOUCH FOCUS CLEANUP
   The fixed navigation already reserves its own body clearance. Remove the
   additional main-level bottom pad that created a visible dead band after
   the final Pitching section on iPhone.
   ========================================================== */
@media(max-width:900px){
  body:not(.home-page) #main{
    padding-bottom:0!important;
  }
  body:not(.home-page) #main>.team-scorebook:last-child{
    margin-bottom:0!important;
  }
  body:not(.home-page) .team-defense-pos{
    -webkit-tap-highlight-color:transparent;
  }
  body:not(.home-page) .team-defense-pos:focus:not(:focus-visible){
    outline:0!important;
    box-shadow:0 3px 10px rgba(15,23,42,.08)!important;
  }
  body.theme-default.dark-mode:not(.home-page) .team-defense-pos:focus:not(:focus-visible){
    box-shadow:none!important;
  }
}
